diff options
| author | Bryan Morgan <[email protected]> | 2025-07-03 16:54:35 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-03 20:54:35 +0000 |
| commit | 654f8aeb614c3e5129f33d93aa9cfa06d347e3a0 (patch) | |
| tree | 74cb69c5b282d245e275ea1fd8e8c8434bf2a4c1 /packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | |
| parent | ab63a5f183ca6f787971219190db326043f6a502 (diff) | |
Fixed Google User Id pass to Clearcut (#3147)
Diffstat (limited to 'packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts')
| -rw-r--r-- | packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index dc319170..73c82f23 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -18,7 +18,7 @@ import { import { EventMetadataKey } from './event-metadata-key.js'; import { Config } from '../../config/config.js'; import { getInstallationId } from '../../utils/user_id.js'; -import { getObfuscatedGoogleAccountId } from '../../utils/user_id.js'; +import { getGoogleAccountId } from '../../utils/user_id.js'; const start_session_event_name = 'start_session'; const new_prompt_event_name = 'new_prompt'; @@ -70,7 +70,6 @@ export class ClearcutLogger { console_type: 'GEMINI_CLI', application: 102, event_name: name, - obfuscated_google_account_id: getObfuscatedGoogleAccountId(), client_install_id: getInstallationId(), event_metadata: [data] as object[], }; @@ -81,22 +80,33 @@ export class ClearcutLogger { return; } - this.flushToClearcut(); + // Fire and forget - don't await + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } - flushToClearcut(): Promise<LogResponse> { + async flushToClearcut(): Promise<LogResponse> { if (this.config?.getDebugMode()) { console.log('Flushing log events to Clearcut.'); } const eventsToSend = [...this.events]; this.events.length = 0; + const googleAccountId = await getGoogleAccountId(); + return new Promise<Buffer>((resolve, reject) => { const request = [ { log_source_name: 'CONCORD', request_time_ms: Date.now(), log_event: eventsToSend, + // Add UserInfo with the raw Gaia ID + user_info: googleAccountId + ? { + UserID: googleAccountId, + } + : undefined, }, ]; const body = JSON.stringify(request); @@ -244,7 +254,9 @@ export class ClearcutLogger { ]; this.enqueueLogEvent(this.createLogEvent(start_session_event_name, data)); // Flush start event immediately - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing start session event to Clearcut:', error); + }); } logNewPromptEvent(event: UserPromptEvent): void { @@ -256,7 +268,9 @@ export class ClearcutLogger { ]; this.enqueueLogEvent(this.createLogEvent(new_prompt_event_name, data)); - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } logToolCallEvent(event: ToolCallEvent): void { @@ -288,7 +302,9 @@ export class ClearcutLogger { ]; this.enqueueLogEvent(this.createLogEvent(tool_call_event_name, data)); - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } logApiRequestEvent(event: ApiRequestEvent): void { @@ -300,7 +316,9 @@ export class ClearcutLogger { ]; this.enqueueLogEvent(this.createLogEvent(api_request_event_name, data)); - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } logApiResponseEvent(event: ApiResponseEvent): void { @@ -349,7 +367,9 @@ export class ClearcutLogger { ]; this.enqueueLogEvent(this.createLogEvent(api_response_event_name, data)); - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } logApiErrorEvent(event: ApiErrorEvent): void { @@ -373,7 +393,9 @@ export class ClearcutLogger { ]; this.enqueueLogEvent(this.createLogEvent(api_error_event_name, data)); - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } logEndSessionEvent(event: EndSessionEvent): void { @@ -386,7 +408,9 @@ export class ClearcutLogger { this.enqueueLogEvent(this.createLogEvent(end_session_event_name, data)); // Flush immediately on session end. - this.flushToClearcut(); + this.flushToClearcut().catch((error) => { + console.debug('Error flushing to Clearcut:', error); + }); } shutdown() { |
