in scripts/telemetry_utils.js [260:340]
export function manageTelemetrySettings(
enable,
oTelEndpoint = 'http://localhost:4317',
target = 'local',
originalSandboxSettingToRestore,
) {
if (!fileExists(WORKSPACE_GEMINI_DIR)) {
fs.mkdirSync(WORKSPACE_GEMINI_DIR, { recursive: true });
}
const workspaceSettings = readJsonFile(WORKSPACE_SETTINGS_FILE);
const currentSandboxSetting = workspaceSettings.sandbox;
let settingsModified = false;
if (typeof workspaceSettings.telemetry !== 'object') {
workspaceSettings.telemetry = {};
}
if (enable) {
if (workspaceSettings.telemetry.enabled !== true) {
workspaceSettings.telemetry.enabled = true;
settingsModified = true;
console.log('⚙️ Enabled telemetry in workspace settings.');
}
if (workspaceSettings.sandbox !== false) {
workspaceSettings.sandbox = false;
settingsModified = true;
console.log('✅ Disabled sandbox mode for telemetry.');
}
if (workspaceSettings.telemetry.otlpEndpoint !== oTelEndpoint) {
workspaceSettings.telemetry.otlpEndpoint = oTelEndpoint;
settingsModified = true;
console.log(`🔧 Set telemetry OTLP endpoint to ${oTelEndpoint}.`);
}
if (workspaceSettings.telemetry.target !== target) {
workspaceSettings.telemetry.target = target;
settingsModified = true;
console.log(`🎯 Set telemetry target to ${target}.`);
}
} else {
if (workspaceSettings.telemetry.enabled === true) {
delete workspaceSettings.telemetry.enabled;
settingsModified = true;
console.log('⚙️ Disabled telemetry in workspace settings.');
}
if (workspaceSettings.telemetry.otlpEndpoint) {
delete workspaceSettings.telemetry.otlpEndpoint;
settingsModified = true;
console.log('🔧 Cleared telemetry OTLP endpoint.');
}
if (workspaceSettings.telemetry.target) {
delete workspaceSettings.telemetry.target;
settingsModified = true;
console.log('🎯 Cleared telemetry target.');
}
if (Object.keys(workspaceSettings.telemetry).length === 0) {
delete workspaceSettings.telemetry;
}
if (
originalSandboxSettingToRestore !== undefined &&
workspaceSettings.sandbox !== originalSandboxSettingToRestore
) {
workspaceSettings.sandbox = originalSandboxSettingToRestore;
settingsModified = true;
console.log('✅ Restored original sandbox setting.');
}
}
if (settingsModified) {
writeJsonFile(WORKSPACE_SETTINGS_FILE, workspaceSettings);
console.log('✅ Workspace settings updated.');
} else {
console.log(
enable
? '✅ Workspace settings are already configured for telemetry.'
: '✅ Workspace settings already reflect telemetry disabled.',
);
}
return currentSandboxSetting;
}