feat(telemetry): add keychain availability and token storage metrics (#18971)

This commit is contained in:
Abhi
2026-02-18 00:11:38 +09:00
committed by GitHub
parent bbf6800778
commit bf9ca33c18
13 changed files with 388 additions and 8 deletions
+38
View File
@@ -57,6 +57,8 @@ import type {
LlmLoopCheckEvent,
PlanExecutionEvent,
ToolOutputMaskingEvent,
KeychainAvailabilityEvent,
TokenStorageInitializationEvent,
} from './types.js';
import {
recordApiErrorMetrics,
@@ -76,6 +78,8 @@ import {
recordLinesChanged,
recordHookCallMetrics,
recordPlanExecution,
recordKeychainAvailability,
recordTokenStorageInitialization,
} from './metrics.js';
import { bufferTelemetryEvent } from './sdk.js';
import type { UiEvent } from './uiTelemetry.js';
@@ -805,3 +809,37 @@ export function logStartupStats(
});
});
}
export function logKeychainAvailability(
config: Config,
event: KeychainAvailabilityEvent,
): void {
ClearcutLogger.getInstance(config)?.logKeychainAvailabilityEvent(event);
bufferTelemetryEvent(() => {
const logger = logs.getLogger(SERVICE_NAME);
const logRecord: LogRecord = {
body: event.toLogBody(),
attributes: event.toOpenTelemetryAttributes(config),
};
logger.emit(logRecord);
recordKeychainAvailability(config, event);
});
}
export function logTokenStorageInitialization(
config: Config,
event: TokenStorageInitializationEvent,
): void {
ClearcutLogger.getInstance(config)?.logTokenStorageInitializationEvent(event);
bufferTelemetryEvent(() => {
const logger = logs.getLogger(SERVICE_NAME);
const logRecord: LogRecord = {
body: event.toLogBody(),
attributes: event.toOpenTelemetryAttributes(config),
};
logger.emit(logRecord);
recordTokenStorageInitialization(config, event);
});
}