diff --git a/docs/telemetry.md b/docs/telemetry.md index 794975b7..7129da36 100644 --- a/docs/telemetry.md +++ b/docs/telemetry.md @@ -177,9 +177,10 @@ Logs are timestamped records of specific events. The following events are logged - `gemini_cli.user_prompt`: This event occurs when a user submits a prompt. - **Attributes**: - - `prompt_length` - - `prompt` (this attribute is excluded if `log_prompts_enabled` is configured to be `false`) - - `auth_type` + - `prompt_length` (int) + - `prompt_id` (string) + - `prompt` (string, this attribute is excluded if `log_prompts_enabled` is configured to be `false`) + - `auth_type` (string) - `gemini_cli.tool_call`: This event occurs for each function call. - **Attributes**: diff --git a/packages/core/src/telemetry/loggers.test.ts b/packages/core/src/telemetry/loggers.test.ts index eba9ca3b..3852fe56 100644 --- a/packages/core/src/telemetry/loggers.test.ts +++ b/packages/core/src/telemetry/loggers.test.ts @@ -208,6 +208,8 @@ describe('loggers', () => { 'event.timestamp': '2025-01-01T00:00:00.000Z', prompt_length: 11, prompt: 'test-prompt', + prompt_id: 'prompt-id-8', + auth_type: 'vertex-ai', }, }); }); @@ -222,8 +224,9 @@ describe('loggers', () => { } as unknown as Config; const event = new UserPromptEvent( 11, - 'test-prompt', + 'prompt-id-9', AuthType.CLOUD_SHELL, + 'test-prompt', ); logUserPrompt(mockConfig, event); @@ -236,6 +239,8 @@ describe('loggers', () => { 'event.name': EVENT_USER_PROMPT, 'event.timestamp': '2025-01-01T00:00:00.000Z', prompt_length: 11, + prompt_id: 'prompt-id-9', + auth_type: 'cloud-shell', }, }); }); diff --git a/packages/core/src/telemetry/loggers.ts b/packages/core/src/telemetry/loggers.ts index 764bba31..560cbe9c 100644 --- a/packages/core/src/telemetry/loggers.ts +++ b/packages/core/src/telemetry/loggers.ts @@ -122,8 +122,13 @@ export function logUserPrompt(config: Config, event: UserPromptEvent): void { 'event.name': EVENT_USER_PROMPT, 'event.timestamp': new Date().toISOString(), prompt_length: event.prompt_length, + prompt_id: event.prompt_id, }; + if (event.auth_type) { + attributes['auth_type'] = event.auth_type; + } + if (shouldLogUserPrompts(config)) { attributes['prompt'] = event.prompt; }