summaryrefslogtreecommitdiff
path: root/packages/core/src/telemetry/metrics.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/telemetry/metrics.ts')
-rw-r--r--packages/core/src/telemetry/metrics.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/packages/core/src/telemetry/metrics.ts b/packages/core/src/telemetry/metrics.ts
index a0996410..c1125086 100644
--- a/packages/core/src/telemetry/metrics.ts
+++ b/packages/core/src/telemetry/metrics.ts
@@ -21,6 +21,7 @@ import {
METRIC_TOKEN_USAGE,
METRIC_SESSION_COUNT,
METRIC_FILE_OPERATION_COUNT,
+ EVENT_CHAT_COMPRESSION,
} from './constants.js';
import { Config } from '../config/config.js';
import { DiffStat } from '../tools/tools.js';
@@ -38,6 +39,7 @@ let apiRequestCounter: Counter | undefined;
let apiRequestLatencyHistogram: Histogram | undefined;
let tokenUsageCounter: Counter | undefined;
let fileOperationCounter: Counter | undefined;
+let chatCompressionCounter: Counter | undefined;
let isMetricsInitialized = false;
function getCommonAttributes(config: Config): Attributes {
@@ -88,6 +90,10 @@ export function initializeMetrics(config: Config): void {
description: 'Counts file operations (create, read, update).',
valueType: ValueType.INT,
});
+ chatCompressionCounter = meter.createCounter(EVENT_CHAT_COMPRESSION, {
+ description: 'Counts chat compression events.',
+ valueType: ValueType.INT,
+ });
const sessionCounter = meter.createCounter(METRIC_SESSION_COUNT, {
description: 'Count of CLI sessions started.',
valueType: ValueType.INT,
@@ -96,6 +102,17 @@ export function initializeMetrics(config: Config): void {
isMetricsInitialized = true;
}
+export function recordChatCompressionMetrics(
+ config: Config,
+ args: { tokens_before: number; tokens_after: number },
+) {
+ if (!chatCompressionCounter || !isMetricsInitialized) return;
+ chatCompressionCounter.add(1, {
+ ...getCommonAttributes(config),
+ ...args,
+ });
+}
+
export function recordToolCallMetrics(
config: Config,
functionName: string,