( enable, oTelEndpoint = 'http://localhost:4317', target = 'local', originalSandboxSettingToRestore, otlpProtocol = 'grpc', )
| 313 | } |
| 314 | |
| 315 | export function manageTelemetrySettings( |
| 316 | enable, |
| 317 | oTelEndpoint = 'http://localhost:4317', |
| 318 | target = 'local', |
| 319 | originalSandboxSettingToRestore, |
| 320 | otlpProtocol = 'grpc', |
| 321 | ) { |
| 322 | const workspaceSettings = readJsonFile(WORKSPACE_SETTINGS_FILE); |
| 323 | const currentSandboxSetting = workspaceSettings.sandbox; |
| 324 | let settingsModified = false; |
| 325 | |
| 326 | if (typeof workspaceSettings.telemetry !== 'object') { |
| 327 | workspaceSettings.telemetry = {}; |
| 328 | } |
| 329 | |
| 330 | if (enable) { |
| 331 | if (workspaceSettings.telemetry.enabled !== true) { |
| 332 | workspaceSettings.telemetry.enabled = true; |
| 333 | settingsModified = true; |
| 334 | console.log('⚙️ Enabled telemetry in workspace settings.'); |
| 335 | } |
| 336 | if (workspaceSettings.sandbox !== false) { |
| 337 | workspaceSettings.sandbox = false; |
| 338 | settingsModified = true; |
| 339 | console.log('✅ Disabled sandbox mode for telemetry.'); |
| 340 | } |
| 341 | if (workspaceSettings.telemetry.otlpEndpoint !== oTelEndpoint) { |
| 342 | workspaceSettings.telemetry.otlpEndpoint = oTelEndpoint; |
| 343 | settingsModified = true; |
| 344 | console.log(`🔧 Set telemetry OTLP endpoint to ${oTelEndpoint}.`); |
| 345 | } |
| 346 | if (workspaceSettings.telemetry.target !== target) { |
| 347 | workspaceSettings.telemetry.target = target; |
| 348 | settingsModified = true; |
| 349 | console.log(`🎯 Set telemetry target to ${target}.`); |
| 350 | } |
| 351 | if (workspaceSettings.telemetry.otlpProtocol !== otlpProtocol) { |
| 352 | workspaceSettings.telemetry.otlpProtocol = otlpProtocol; |
| 353 | settingsModified = true; |
| 354 | console.log(`🔧 Set telemetry OTLP protocol to ${otlpProtocol}.`); |
| 355 | } |
| 356 | } else { |
| 357 | if (workspaceSettings.telemetry.enabled === true) { |
| 358 | delete workspaceSettings.telemetry.enabled; |
| 359 | settingsModified = true; |
| 360 | console.log('⚙️ Disabled telemetry in workspace settings.'); |
| 361 | } |
| 362 | if (workspaceSettings.telemetry.otlpEndpoint) { |
| 363 | delete workspaceSettings.telemetry.otlpEndpoint; |
| 364 | settingsModified = true; |
| 365 | console.log('🔧 Cleared telemetry OTLP endpoint.'); |
| 366 | } |
| 367 | if (workspaceSettings.telemetry.target) { |
| 368 | delete workspaceSettings.telemetry.target; |
| 369 | settingsModified = true; |
| 370 | console.log('🎯 Cleared telemetry target.'); |
| 371 | } |
| 372 | if (workspaceSettings.telemetry.otlpProtocol) { |
no test coverage detected