summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/loggers.ts
diff options
context:
space:
mode:
authorRichie Foreman <[email protected]>2025-08-18 15:59:13 -0400
committerGitHub <[email protected]>2025-08-18 19:59:13 +0000
commit71f706cf29cf70a888ee65117b21ad31042207f8 (patch)
tree3decbcebdcd7ef4db88db11d9a7a07790406ded2 /packages/core/src/telemetry/loggers.ts
parent1a0cc68e29672e3f9a2dce6ad267c1bcb428a434 (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.ts28
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,