mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
Enable clearcut logging by default (#1309)
Clearcut logging can now be disabled via disableDataCollection in user settings
This commit is contained in:
@@ -117,7 +117,6 @@ export interface ConfigParameters {
|
||||
fileDiscoveryService?: FileDiscoveryService;
|
||||
bugCommand?: BugCommandSettings;
|
||||
model: string;
|
||||
disableDataCollection?: boolean;
|
||||
extensionContextFilePaths?: string[];
|
||||
}
|
||||
|
||||
@@ -155,7 +154,6 @@ export class Config {
|
||||
private readonly cwd: string;
|
||||
private readonly bugCommand: BugCommandSettings | undefined;
|
||||
private readonly model: string;
|
||||
private readonly disableDataCollection: boolean;
|
||||
private readonly extensionContextFilePaths: string[];
|
||||
|
||||
constructor(params: ConfigParameters) {
|
||||
@@ -183,6 +181,7 @@ export class Config {
|
||||
target: params.telemetry?.target ?? DEFAULT_TELEMETRY_TARGET,
|
||||
otlpEndpoint: params.telemetry?.otlpEndpoint ?? DEFAULT_OTLP_ENDPOINT,
|
||||
logPrompts: params.telemetry?.logPrompts ?? true,
|
||||
disableDataCollection: params.telemetry?.disableDataCollection ?? false,
|
||||
};
|
||||
|
||||
this.fileFiltering = {
|
||||
@@ -196,8 +195,6 @@ export class Config {
|
||||
this.fileDiscoveryService = params.fileDiscoveryService ?? null;
|
||||
this.bugCommand = params.bugCommand;
|
||||
this.model = params.model;
|
||||
this.disableDataCollection =
|
||||
params.telemetry?.disableDataCollection ?? true;
|
||||
this.extensionContextFilePaths = params.extensionContextFilePaths ?? [];
|
||||
|
||||
if (params.contextFileName) {
|
||||
@@ -208,10 +205,12 @@ export class Config {
|
||||
initializeTelemetry(this);
|
||||
}
|
||||
|
||||
if (!this.disableDataCollection) {
|
||||
ClearcutLogger.getInstance(this)?.enqueueLogEvent(
|
||||
if (!this.getDisableDataCollection()) {
|
||||
ClearcutLogger.getInstance(this)?.logStartSessionEvent(
|
||||
new StartSessionEvent(this),
|
||||
);
|
||||
} else {
|
||||
console.log('Data collection is disabled.');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -387,7 +386,7 @@ export class Config {
|
||||
}
|
||||
|
||||
getDisableDataCollection(): boolean {
|
||||
return this.disableDataCollection;
|
||||
return this.telemetrySettings.disableDataCollection ?? false;
|
||||
}
|
||||
|
||||
getExtensionContextFilePaths(): string[] {
|
||||
|
||||
@@ -64,7 +64,7 @@ export class ClearcutLogger {
|
||||
]);
|
||||
}
|
||||
|
||||
createLogEvent(name: string, data: Map<EventMetadataKey, string>): object {
|
||||
createLogEvent(name: string, data: object): object {
|
||||
return {
|
||||
Application: 'GEMINI_CLI',
|
||||
event_name: name,
|
||||
@@ -83,6 +83,7 @@ export class ClearcutLogger {
|
||||
}
|
||||
|
||||
flushToClearcut(): Promise<LogResponse> {
|
||||
console.log('Flushing log events to Clearcut.');
|
||||
return new Promise<Buffer>((resolve, reject) => {
|
||||
const request = [
|
||||
{
|
||||
@@ -92,6 +93,7 @@ export class ClearcutLogger {
|
||||
},
|
||||
];
|
||||
const body = JSON.stringify(request);
|
||||
console.log('Clearcut POST request body:', body);
|
||||
const options = {
|
||||
hostname: 'play.googleapis.com',
|
||||
path: '/log',
|
||||
@@ -106,6 +108,7 @@ export class ClearcutLogger {
|
||||
});
|
||||
});
|
||||
req.on('error', (e) => {
|
||||
console.log('Clearcut POST request error: ', e);
|
||||
reject(e);
|
||||
});
|
||||
req.end(body);
|
||||
@@ -152,58 +155,81 @@ export class ClearcutLogger {
|
||||
// message is corrupted.
|
||||
return undefined;
|
||||
}
|
||||
return {
|
||||
|
||||
const returnVal = {
|
||||
nextRequestWaitMs: Number(ms),
|
||||
};
|
||||
console.log('Clearcut response: ', returnVal);
|
||||
return returnVal;
|
||||
}
|
||||
|
||||
logStartSessionEvent(event: StartSessionEvent): void {
|
||||
const data: Map<EventMetadataKey, string> = new Map();
|
||||
|
||||
data.set(EventMetadataKey.GEMINI_CLI_START_SESSION_MODEL, event.model);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_EMBEDDING_MODEL,
|
||||
event.embedding_model,
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_SANDBOX,
|
||||
event.sandbox_enabled.toString(),
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_CORE_TOOLS,
|
||||
event.core_tools_enabled,
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_APPROVAL_MODE,
|
||||
event.approval_mode,
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_API_KEY_ENABLED,
|
||||
event.api_key_enabled.toString(),
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_VERTEX_API_ENABLED,
|
||||
event.vertex_ai_enabled.toString(),
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_DEBUG_MODE_ENABLED,
|
||||
event.debug_enabled.toString(),
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_MCP_SERVERS,
|
||||
event.mcp_servers,
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_TELEMETRY_ENABLED,
|
||||
event.telemetry_enabled.toString(),
|
||||
);
|
||||
data.set(
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_TELEMETRY_LOG_USER_PROMPTS_ENABLED,
|
||||
event.telemetry_log_user_prompts_enabled.toString(),
|
||||
);
|
||||
|
||||
const data = [
|
||||
{
|
||||
EventMetadataKey: EventMetadataKey.GEMINI_CLI_START_SESSION_MODEL,
|
||||
value: event.model,
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_EMBEDDING_MODEL,
|
||||
value: event.embedding_model,
|
||||
},
|
||||
{
|
||||
EventMetadataKey: EventMetadataKey.GEMINI_CLI_START_SESSION_SANDBOX,
|
||||
value: event.sandbox_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey: EventMetadataKey.GEMINI_CLI_START_SESSION_CORE_TOOLS,
|
||||
value: event.core_tools_enabled,
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_APPROVAL_MODE,
|
||||
value: event.approval_mode,
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_API_KEY_ENABLED,
|
||||
value: event.api_key_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_VERTEX_API_ENABLED,
|
||||
value: event.vertex_ai_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_DEBUG_MODE_ENABLED,
|
||||
value: event.debug_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_VERTEX_API_ENABLED,
|
||||
value: event.vertex_ai_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey: EventMetadataKey.GEMINI_CLI_START_SESSION_MCP_SERVERS,
|
||||
value: event.mcp_servers,
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_VERTEX_API_ENABLED,
|
||||
value: event.vertex_ai_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_TELEMETRY_ENABLED,
|
||||
value: event.telemetry_enabled.toString(),
|
||||
},
|
||||
{
|
||||
EventMetadataKey:
|
||||
EventMetadataKey.GEMINI_CLI_START_SESSION_TELEMETRY_LOG_USER_PROMPTS_ENABLED,
|
||||
value: event.telemetry_log_user_prompts_enabled.toString(),
|
||||
},
|
||||
];
|
||||
this.enqueueLogEvent(this.createLogEvent(start_session_event_name, data));
|
||||
this.flushIfNeeded();
|
||||
// Flush start event immediately
|
||||
this.flushToClearcut();
|
||||
}
|
||||
|
||||
logNewPromptEvent(event: UserPromptEvent): void {
|
||||
|
||||
Reference in New Issue
Block a user