456
*/
457
export function buildAgentHostOTelEnv(
459
>
inheritedEnv: Readonly<Record<string, string | undefined>>,
460
>
policySettings: IAgentHostOTelSettings = {},
461
>
): Record<string, string> {
462
>
const out: Record<string, string> = {};
463
>
const setIfMissing = (key: string, value: string | undefined): void => {
464
>
if (value === undefined || value === '' || inheritedEnv[key] !== undefined) {
465
>
return;
466
>
}
467
out[key] = value;
469
>
// Enterprise policy wins over inherited env (managed settings cannot be overridden by a
470
>
// user-set env var), unlike user settings which yield to env via `setIfMissing`.
471
>
const setPolicy = (key: string, value: string | undefined): void => {
472
if (value !== undefined) {
473
out[key] = value;
474
}
475
};
477
setIfMissing(AgentHostOTelEnvVars.Enabled, 'true');
478
}
479
>
setIfMissing(AgentHostOTelEnvVars.ExporterType, settings.exporterType);
agentService.ts
480
>
setIfMissing(AgentHostOTelEnvVars.OtlpEndpoint, settings.otlpEndpoint);
481
>
setIfMissing(AgentHostOTelEnvVars.ServiceName, settings.serviceName);
482
>
setIfMissing(AgentHostOTelEnvVars.ResourceAttributes, serializeResourceAttributes(settings.resourceAttributes));
483
>
setIfMissing(AgentHostOTelEnvVars.FilePath, settings.outfile);
484
>
if (settings.captureContent !== undefined) {
485
setIfMissing(AgentHostOTelEnvVars.CaptureContent, settings.captureContent ? 'true' : 'false');
486
}
488
setIfMissing(AgentHostOTelEnvVars.DbSpanExporterEnabled, 'true');
489
}
491
>
if (policySettings.enabled !== undefined) {
492
setPolicy(AgentHostOTelEnvVars.Enabled, policySettings.enabled ? 'true' : 'false');
493
if (!policySettings.enabled) {