refactor: Centralize session ID generation and propagation

This commit is contained in:
jerop
2025-06-11 04:46:39 +00:00
committed by Jerop Kipruto
parent 95fdc66e7d
commit d1e23b7c71
20 changed files with 96 additions and 71 deletions

View File

@@ -4,10 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
import { randomUUID } from 'crypto';
export const SERVICE_NAME = 'gemini-cli';
export const sessionId = randomUUID();
export const EVENT_USER_PROMPT = 'gemini_code.user_prompt';
export const EVENT_TOOL_CALL = 'gemini_code.tool_call';

View File

@@ -28,4 +28,3 @@ export {
} from './types.js';
export { SpanStatusCode, ValueType } from '@opentelemetry/api';
export { SemanticAttributes } from '@opentelemetry/semantic-conventions';
export { sessionId } from './constants.js';

View File

@@ -26,7 +26,7 @@ import {
} from '@opentelemetry/sdk-metrics';
import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
import { Config } from '../config/config.js';
import { SERVICE_NAME, sessionId } from './constants.js';
import { SERVICE_NAME } from './constants.js';
import { initializeMetrics } from './metrics.js';
import { logCliConfiguration } from './loggers.js';
@@ -68,7 +68,7 @@ export function initializeTelemetry(config: Config): void {
const resource = new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: SERVICE_NAME,
[SemanticResourceAttributes.SERVICE_VERSION]: process.version,
'session.id': sessionId,
'session.id': config.getSessionId(),
});
const otlpEndpoint = config.getTelemetryOtlpEndpoint();