diff --git a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts index ec2120ba2d..4cc19e4f7b 100644 --- a/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts +++ b/packages/core/src/telemetry/clearcut-logger/clearcut-logger.ts @@ -557,10 +557,6 @@ export class ClearcutLogger { gemini_cli_key: EventMetadataKey.GEMINI_CLI_API_RESPONSE_DURATION_MS, value: JSON.stringify(event.duration_ms), }, - { - gemini_cli_key: EventMetadataKey.GEMINI_CLI_API_ERROR_MESSAGE, - value: JSON.stringify(event.error), - }, { gemini_cli_key: EventMetadataKey.GEMINI_CLI_API_RESPONSE_INPUT_TOKEN_COUNT, diff --git a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts index 4a15d6e294..25ea046283 100644 --- a/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts +++ b/packages/core/src/telemetry/clearcut-logger/event-metadata-key.ts @@ -6,6 +6,8 @@ // Defines valid event metadata keys for Clearcut logging. export enum EventMetadataKey { + // Deleted enums: 24 + GEMINI_CLI_KEY_UNKNOWN = 0, // ========================================================================== @@ -100,9 +102,6 @@ export enum EventMetadataKey { // Logs the duration of the API call in milliseconds. GEMINI_CLI_API_RESPONSE_DURATION_MS = 23, - // Logs the error message of the API call, if any. - GEMINI_CLI_API_ERROR_MESSAGE = 24, - // Logs the input token count of the API call. GEMINI_CLI_API_RESPONSE_INPUT_TOKEN_COUNT = 25, diff --git a/packages/core/src/telemetry/loggers.test.ts b/packages/core/src/telemetry/loggers.test.ts index 77c9f219e9..1cee336d99 100644 --- a/packages/core/src/telemetry/loggers.test.ts +++ b/packages/core/src/telemetry/loggers.test.ts @@ -320,7 +320,6 @@ describe('loggers', () => { response_text: 'test-response', prompt_id: 'prompt-id-1', auth_type: 'oauth-personal', - error: undefined, }, }); @@ -329,7 +328,6 @@ describe('loggers', () => { 'test-model', 100, 200, - undefined, ); expect(mockMetrics.recordTokenUsageMetrics).toHaveBeenCalledWith( @@ -345,45 +343,6 @@ describe('loggers', () => { 'event.timestamp': '2025-01-01T00:00:00.000Z', }); }); - - it('should log an API response with an error', () => { - const usageData: GenerateContentResponseUsageMetadata = { - promptTokenCount: 17, - candidatesTokenCount: 50, - cachedContentTokenCount: 10, - thoughtsTokenCount: 5, - toolUsePromptTokenCount: 2, - }; - const event = new ApiResponseEvent( - 'test-model', - 100, - 'prompt-id-1', - AuthType.USE_GEMINI, - usageData, - 'test-response', - 'test-error', - ); - - logApiResponse(mockConfig, event); - - expect(mockLogger.emit).toHaveBeenCalledWith({ - body: 'API response from test-model. Status: 200. Duration: 100ms.', - attributes: { - 'session.id': 'test-session-id', - 'user.email': 'test-user@example.com', - ...event, - 'event.name': EVENT_API_RESPONSE, - 'event.timestamp': '2025-01-01T00:00:00.000Z', - 'error.message': 'test-error', - }, - }); - - expect(mockUiEvent.addEvent).toHaveBeenCalledWith({ - ...event, - 'event.name': EVENT_API_RESPONSE, - 'event.timestamp': '2025-01-01T00:00:00.000Z', - }); - }); }); describe('logApiRequest', () => { diff --git a/packages/core/src/telemetry/loggers.ts b/packages/core/src/telemetry/loggers.ts index 6b8e503fa7..aecd331d85 100644 --- a/packages/core/src/telemetry/loggers.ts +++ b/packages/core/src/telemetry/loggers.ts @@ -376,9 +376,7 @@ export function logApiResponse(config: Config, event: ApiResponseEvent): void { if (event.response_text) { attributes['response_text'] = event.response_text; } - if (event.error) { - attributes['error.message'] = event.error; - } else if (event.status_code) { + if (event.status_code) { if (typeof event.status_code === 'number') { attributes[SemanticAttributes.HTTP_STATUS_CODE] = event.status_code; } @@ -395,7 +393,6 @@ export function logApiResponse(config: Config, event: ApiResponseEvent): void { event.model, event.duration_ms, event.status_code, - event.error, ); recordTokenUsageMetrics( config, diff --git a/packages/core/src/telemetry/metrics.ts b/packages/core/src/telemetry/metrics.ts index 385ee076f7..a51f74cee9 100644 --- a/packages/core/src/telemetry/metrics.ts +++ b/packages/core/src/telemetry/metrics.ts @@ -174,7 +174,6 @@ export function recordApiResponseMetrics( model: string, durationMs: number, statusCode?: number | string, - error?: string, ): void { if ( !apiRequestCounter || @@ -185,7 +184,7 @@ export function recordApiResponseMetrics( const metricAttributes: Attributes = { ...getCommonAttributes(config), model, - status_code: statusCode ?? (error ? 'error' : 'ok'), + status_code: statusCode ?? 'ok', }; apiRequestCounter.add(1, metricAttributes); apiRequestLatencyHistogram.record(durationMs, { diff --git a/packages/core/src/telemetry/types.ts b/packages/core/src/telemetry/types.ts index 8d24d71c11..e22cc37288 100644 --- a/packages/core/src/telemetry/types.ts +++ b/packages/core/src/telemetry/types.ts @@ -236,7 +236,6 @@ export class ApiResponseEvent implements BaseTelemetryEvent { model: string; status_code?: number | string; duration_ms: number; - error?: string; input_token_count: number; output_token_count: number; cached_content_token_count: number; @@ -254,7 +253,6 @@ export class ApiResponseEvent implements BaseTelemetryEvent { auth_type?: string, usage_data?: GenerateContentResponseUsageMetadata, response_text?: string, - error?: string, ) { this['event.name'] = 'api_response'; this['event.timestamp'] = new Date().toISOString(); @@ -268,7 +266,6 @@ export class ApiResponseEvent implements BaseTelemetryEvent { this.tool_token_count = usage_data?.toolUsePromptTokenCount ?? 0; this.total_token_count = usage_data?.totalTokenCount ?? 0; this.response_text = response_text; - this.error = error; this.prompt_id = prompt_id; this.auth_type = auth_type; }