feat: add telemetry for output format usage (#8223)

This commit is contained in:
Jerop Kipruto
2025-09-11 22:42:10 +09:00
committed by GitHub
parent 78744cfbca
commit 8f4321b1ca
4 changed files with 8 additions and 0 deletions

View File

@@ -176,6 +176,7 @@ Logs are timestamped records of specific events. The following events are logged
- `file_filtering_respect_git_ignore` (boolean)
- `debug_mode` (boolean)
- `mcp_servers` (string)
- `output_format` (string: "text" or "json")
- `gemini_cli.user_prompt`: This event occurs when a user submits a prompt.
- **Attributes**:

View File

@@ -18,6 +18,7 @@ import {
ToolErrorType,
ToolRegistry,
} from '../index.js';
import { OutputFormat } from '../output/types.js';
import { logs } from '@opentelemetry/api-logs';
import { SemanticAttributes } from '@opentelemetry/semantic-conventions';
import type { Config } from '../config/config.js';
@@ -157,6 +158,7 @@ describe('loggers', () => {
getQuestion: () => 'test-question',
getTargetDir: () => 'target-dir',
getProxy: () => 'http://test.proxy.com:8080',
getOutputFormat: () => OutputFormat.JSON,
} as unknown as Config;
const startSessionEvent = new StartSessionEvent(mockConfig);
@@ -183,6 +185,7 @@ describe('loggers', () => {
mcp_servers_count: 1,
mcp_tools: undefined,
mcp_tools_count: undefined,
output_format: 'json',
},
});
});

View File

@@ -106,6 +106,7 @@ export function logCliConfiguration(
mcp_servers_count: event.mcp_servers_count,
mcp_tools: event.mcp_tools,
mcp_tools_count: event.mcp_tools_count,
output_format: event.output_format,
};
const logger = logs.getLogger(SERVICE_NAME);

View File

@@ -18,6 +18,7 @@ import {
import type { FileOperation } from './metrics.js';
export { ToolCallDecision };
import type { ToolRegistry } from '../tools/tool-registry.js';
import type { OutputFormat } from '../output/types.js';
export interface BaseTelemetryEvent {
'event.name': string;
@@ -45,6 +46,7 @@ export class StartSessionEvent implements BaseTelemetryEvent {
mcp_servers_count: number;
mcp_tools_count?: number;
mcp_tools?: string;
output_format: OutputFormat;
constructor(config: Config, toolRegistry?: ToolRegistry) {
const generatorConfig = config.getContentGeneratorConfig();
@@ -74,6 +76,7 @@ export class StartSessionEvent implements BaseTelemetryEvent {
this.file_filtering_respect_git_ignore =
config.getFileFilteringRespectGitIgnore();
this.mcp_servers_count = mcpServers ? Object.keys(mcpServers).length : 0;
this.output_format = config.getOutputFormat();
if (toolRegistry) {
const mcpTools = toolRegistry
.getAllTools()