diff options
| author | Richie Foreman <[email protected]> | 2025-08-18 15:59:13 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-18 19:59:13 +0000 |
| commit | 71f706cf29cf70a888ee65117b21ad31042207f8 (patch) | |
| tree | 3decbcebdcd7ef4db88db11d9a7a07790406ded2 /packages/core/src/telemetry/loggers.ts | |
| parent | 1a0cc68e29672e3f9a2dce6ad267c1bcb428a434 (diff) | |
feat(client/compression): Log telemetry when compressing chat context. (#6195)
Diffstat (limited to 'packages/core/src/telemetry/loggers.ts')
| -rw-r--r-- | packages/core/src/telemetry/loggers.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/core/src/telemetry/loggers.ts b/packages/core/src/telemetry/loggers.ts index afc92807..bfa98b32 100644 --- a/packages/core/src/telemetry/loggers.ts +++ b/packages/core/src/telemetry/loggers.ts @@ -19,6 +19,7 @@ import { EVENT_NEXT_SPEAKER_CHECK, SERVICE_NAME, EVENT_SLASH_COMMAND, + EVENT_CHAT_COMPRESSION, } from './constants.js'; import { ApiErrorEvent, @@ -33,12 +34,14 @@ import { LoopDetectedEvent, SlashCommandEvent, KittySequenceOverflowEvent, + ChatCompressionEvent, } from './types.js'; import { recordApiErrorMetrics, recordTokenUsageMetrics, recordApiResponseMetrics, recordToolCallMetrics, + recordChatCompressionMetrics, } from './metrics.js'; import { isTelemetrySdkInitialized } from './sdk.js'; import { uiTelemetryService, UiEvent } from './uiTelemetry.js'; @@ -380,6 +383,31 @@ export function logIdeConnection( logger.emit(logRecord); } +export function logChatCompression( + config: Config, + event: ChatCompressionEvent, +): void { + ClearcutLogger.getInstance(config)?.logChatCompressionEvent(event); + + const attributes: LogAttributes = { + ...getCommonAttributes(config), + ...event, + 'event.name': EVENT_CHAT_COMPRESSION, + }; + + const logger = logs.getLogger(SERVICE_NAME); + const logRecord: LogRecord = { + body: `Chat compression (Saved ${event.tokens_before - event.tokens_after} tokens)`, + attributes, + }; + logger.emit(logRecord); + + recordChatCompressionMetrics(config, { + tokens_before: event.tokens_before, + tokens_after: event.tokens_after, + }); +} + export function logKittySequenceOverflow( config: Config, event: KittySequenceOverflowEvent, |
