summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
diff options
context:
space:
mode:
authormatt korwel <[email protected]>2025-07-09 21:51:37 -0700
committerGitHub <[email protected]>2025-07-09 21:51:37 -0700
commit58607b92dfe76dd657338b5433d0fd33800f9272 (patch)
tree4a07182ca01f20074a5544db5caf5a198cabae6c /packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
parentb7f8e1360fc13c077c24c98fe9d85e0734195000 (diff)
Revert "fix: Use Email for Clearcut Logging and Refactor User Info Fetching" (#3744)
Diffstat (limited to 'packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts')
-rw-r--r--packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts33
1 files changed, 15 insertions, 18 deletions
diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
index 1b1cec04..a64a9795 100644
--- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
+++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts
@@ -17,10 +17,8 @@ import {
} from '../types.js';
import { EventMetadataKey } from './event-metadata-key.js';
import { Config } from '../../config/config.js';
-import {
- getInstallationId,
- getGoogleAccountEmail,
-} from '../../utils/user_id.js';
+import { getInstallationId } 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';
@@ -68,23 +66,13 @@ export class ClearcutLogger {
}
createLogEvent(name: string, data: object): object {
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- const logEvent: any = {
+ return {
console_type: 'GEMINI_CLI',
application: 102,
event_name: name,
+ client_install_id: getInstallationId(),
event_metadata: [data] as object[],
};
-
- const email = getGoogleAccountEmail();
- // Should log either email or install ID, not both. See go/cloudmill-1p-oss-instrumentation#define-sessionable-id
- if (email) {
- logEvent.client_email = email;
- } else {
- logEvent.client_install_id = getInstallationId();
- }
-
- return logEvent;
}
flushIfNeeded(): void {
@@ -92,24 +80,33 @@ export class ClearcutLogger {
return;
}
+ // 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);
@@ -258,7 +255,7 @@ export class ClearcutLogger {
this.enqueueLogEvent(this.createLogEvent(start_session_event_name, data));
// Flush start event immediately
this.flushToClearcut().catch((error) => {
- console.debug('Error flushing to Clearcut:', error);
+ console.debug('Error flushing start session event to Clearcut:', error);
});
}