diff options
Diffstat (limited to 'packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts')
| -rw-r--r-- | packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index 50f2fffa..edf1d952 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -85,12 +85,15 @@ export class ClearcutLogger { if (this.config?.getDebugMode()) { console.log('Flushing log events to Clearcut.'); } + const eventsToSend = [...this.events]; + this.events.length = 0; + return new Promise<Buffer>((resolve, reject) => { const request = [ { log_source_name: 'CONCORD', request_time_ms: Date.now(), - log_event: this.events, + log_event: eventsToSend, }, ]; const body = JSON.stringify(request); @@ -114,12 +117,13 @@ export class ClearcutLogger { if (this.config?.getDebugMode()) { console.log('Clearcut POST request error: ', e); } + // Add the events back to the front of the queue to be retried. + this.events.unshift(...eventsToSend); reject(e); }); req.end(body); }).then((buf: Buffer) => { try { - this.events.length = 0; this.last_flush_time = Date.now(); return this.decodeLogResponse(buf) || {}; } catch (error: unknown) { |
