Skip to content

Commit 110923e

Browse files
fix: Metrics Export Error log (#2425)
* fix: Metrics Export Error log * fix: Metrics Export Error log * fix: Metrics Export Error log * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent 8efd29e commit 110923e

File tree

2 files changed

+15
-14
lines changed

2 files changed

+15
-14
lines changed

‎src/metrics/spanner-metrics-exporter.ts‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export class CloudMonitoringMetricsExporter implements PushMetricExporter {
3131
private _projectId: string | void | Promise<string | void>;
3232
private _lastExported: Date = new Date(0);
3333
private readonly _client: MetricServiceClient;
34+
private _metricsExportFailureLogged = false;
3435

3536
constructor({auth}: ExporterOptions) {
3637
this._client = new MetricServiceClient({auth: auth});
@@ -65,7 +66,6 @@ export class CloudMonitoringMetricsExporter implements PushMetricExporter {
6566

6667
this._lastExported = now;
6768
this._exportAsync(metrics).then(resultCallback, err => {
68-
console.error(err.message);
6969
resultCallback({code: ExportResultCode.FAILED, error: err});
7070
});
7171
}
@@ -104,18 +104,22 @@ export class CloudMonitoringMetricsExporter implements PushMetricExporter {
104104
async batchedTimeSeries => this._sendTimeSeries(batchedTimeSeries),
105105
),
106106
).catch(e => {
107-
const error = e as {code: number};
108-
if (error.code === status.PERMISSION_DENIED) {
109-
console.warn(
110-
`Need monitoring metric writer permission on project ${this._projectId}. Follow https://cloud.google.com/spanner/docs/view-manage-client-side-metrics#access-client-side-metrics to set up permissions`,
111-
);
107+
if (!this._metricsExportFailureLogged) {
108+
const error = e as {code: number};
109+
let msg = 'Send TimeSeries failed:';
110+
if (error.code === status.PERMISSION_DENIED) {
111+
msg += ` Need monitoring metric writer permission on project ${this._projectId}. Follow https://cloud.google.com/spanner/docs/view-manage-client-side-metrics#access-client-side-metrics to set up permissions`;
112+
}
113+
console.warn(msg);
114+
this._metricsExportFailureLogged = true;
112115
}
113-
const err = asError(e);
114-
err.message = `Send TimeSeries failed: ${err.message}`;
115-
failure = {sendFailed: true, error: err};
116-
console.error(`ERROR: ${err.message}`);
116+
failure = {sendFailed: true, error: asError(e)};
117117
});
118118

119+
if (!failure.sendFailed && this._metricsExportFailureLogged) {
120+
this._metricsExportFailureLogged = false;
121+
}
122+
119123
return failure.sendFailed
120124
? {
121125
code: ExportResultCode.FAILED,

‎test/metrics/spanner-metrics-exporter.ts‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,7 @@ describe('Export', () => {
226226

227227
const callbackResult = resultCallbackSpy.getCall(0).args[0];
228228
assert.strictEqual(callbackResult.code, ExportResultCode.FAILED);
229-
assert.strictEqual(
230-
callbackResult.error.message,
231-
'Send TimeSeries failed: Network error',
232-
);
229+
assert.strictEqual(callbackResult.error.message, 'Network error');
233230

234231
assert(sendTimeSeriesStub.calledOnce);
235232
});

0 commit comments

Comments
 (0)