diff options
| author | Jerop Kipruto <[email protected]> | 2025-06-13 03:44:17 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-13 03:44:17 -0400 |
| commit | b20c8389f3f483f3972c254ec97fff4004b7c75f (patch) | |
| tree | 2afe57f8f7232e3ba7c9dde4cdfd3ee510bb994a /packages/core/src/telemetry/loggers.test.ts | |
| parent | 8bb6eca91548330f03feeedfa36372edf8aca1c6 (diff) | |
Handle telemetry in non-interactive mode (#1002)
Changes:
- Ensure proper shutdown in non-interactive mode
- Ensures the initial user prompt is logged in non-interactive mode
- Improve telemetry for streaming - handle chunks and input token count is now alongside other token counts in response
To test:
- Follow instructions in https://github.com/google-gemini/gemini-cli/blob/main/docs/core/telemetry.md#google-cloud
- Run CLI in non-interactive mode and observe logs/metrics in GCP Logs Explorer and Metrics Explorer
#750
Diffstat (limited to 'packages/core/src/telemetry/loggers.test.ts')
| -rw-r--r-- | packages/core/src/telemetry/loggers.test.ts | 36 |
1 files changed, 4 insertions, 32 deletions
diff --git a/packages/core/src/telemetry/loggers.test.ts b/packages/core/src/telemetry/loggers.test.ts index 092d70f0..58ea3a10 100644 --- a/packages/core/src/telemetry/loggers.test.ts +++ b/packages/core/src/telemetry/loggers.test.ts @@ -113,7 +113,7 @@ describe('loggers', () => { logUserPrompt(mockConfig, event); expect(mockLogger.emit).toHaveBeenCalledWith({ - body: 'User prompt. Length: 11', + body: 'User prompt. Length: 11.', attributes: { 'session.id': 'test-session-id', 'event.name': EVENT_USER_PROMPT, @@ -137,7 +137,7 @@ describe('loggers', () => { logUserPrompt(mockConfig, event); expect(mockLogger.emit).toHaveBeenCalledWith({ - body: 'User prompt. Length: 11', + body: 'User prompt. Length: 11.', attributes: { 'session.id': 'test-session-id', 'event.name': EVENT_USER_PROMPT, @@ -250,70 +250,42 @@ describe('loggers', () => { getSessionId: () => 'test-session-id', } as Config; - const mockMetrics = { - recordTokenUsageMetrics: vi.fn(), - }; - - beforeEach(() => { - vi.spyOn(metrics, 'recordTokenUsageMetrics').mockImplementation( - mockMetrics.recordTokenUsageMetrics, - ); - }); - it('should log an API request with request_text', () => { const event = { model: 'test-model', - input_token_count: 123, request_text: 'This is a test request', }; logApiRequest(mockConfig, event); expect(mockLogger.emit).toHaveBeenCalledWith({ - body: 'API request to test-model. Tokens: 123.', + body: 'API request to test-model.', attributes: { 'session.id': 'test-session-id', 'event.name': EVENT_API_REQUEST, 'event.timestamp': '2025-01-01T00:00:00.000Z', model: 'test-model', - input_token_count: 123, request_text: 'This is a test request', }, }); - - expect(mockMetrics.recordTokenUsageMetrics).toHaveBeenCalledWith( - mockConfig, - 'test-model', - 123, - 'input', - ); }); it('should log an API request without request_text', () => { const event = { model: 'test-model', - input_token_count: 456, }; logApiRequest(mockConfig, event); expect(mockLogger.emit).toHaveBeenCalledWith({ - body: 'API request to test-model. Tokens: 456.', + body: 'API request to test-model.', attributes: { 'session.id': 'test-session-id', 'event.name': EVENT_API_REQUEST, 'event.timestamp': '2025-01-01T00:00:00.000Z', model: 'test-model', - input_token_count: 456, }, }); - - expect(mockMetrics.recordTokenUsageMetrics).toHaveBeenCalledWith( - mockConfig, - 'test-model', - 456, - 'input', - ); }); }); |
