From 5e2a9f1adbc299776fd1ca40b35844d6f5d566a9 Mon Sep 17 00:00:00 2001 From: Avi Alpert Date: Fri, 10 Jul 2026 17:56:51 -0400 Subject: [PATCH 1/2] fix: agentcore dev overwrites otel exporter env var --- .../dev/__tests__/otel-collector.test.ts | 32 +++++++++++++++++++ src/cli/operations/dev/otel/collector.ts | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/cli/operations/dev/__tests__/otel-collector.test.ts diff --git a/src/cli/operations/dev/__tests__/otel-collector.test.ts b/src/cli/operations/dev/__tests__/otel-collector.test.ts new file mode 100644 index 000000000..d934306ab --- /dev/null +++ b/src/cli/operations/dev/__tests__/otel-collector.test.ts @@ -0,0 +1,32 @@ +import { startOtelCollector } from '../otel'; +import { tmpdir } from 'os'; +import { join } from 'path'; +import { afterEach, describe, expect, it } from 'vitest'; + +describe('startOtelCollector', () => { + const savedEnv = { ...process.env }; + + afterEach(() => { + process.env = { ...savedEnv }; + }); + + it('uses built-in collector endpoint when no external endpoint is set', async () => { + delete process.env.OTEL_EXPORTER_OTLP_ENDPOINT; + const { collector, otelEnvVars } = await startOtelCollector(join(tmpdir(), 'otel-test')); + try { + expect(otelEnvVars.OTEL_EXPORTER_OTLP_ENDPOINT).toMatch(/^http:\/\/127\.0\.0\.1:\d+$/); + } finally { + collector.stop(); + } + }); + + it('uses external endpoint when OTEL_EXPORTER_OTLP_ENDPOINT is set', async () => { + process.env.OTEL_EXPORTER_OTLP_ENDPOINT = 'http://my-collector:4318'; + const { collector, otelEnvVars } = await startOtelCollector(join(tmpdir(), 'otel-test')); + try { + expect(otelEnvVars.OTEL_EXPORTER_OTLP_ENDPOINT).toBe('http://my-collector:4318'); + } finally { + collector.stop(); + } + }); +}); diff --git a/src/cli/operations/dev/otel/collector.ts b/src/cli/operations/dev/otel/collector.ts index ee3ad7838..a28a22d78 100644 --- a/src/cli/operations/dev/otel/collector.ts +++ b/src/cli/operations/dev/otel/collector.ts @@ -297,7 +297,7 @@ export async function startOtelCollector(persistTracesDir: string): Promise<{ const collectorPort = await collector.start(); const otelEnvVars: Record = { - OTEL_EXPORTER_OTLP_ENDPOINT: `http://127.0.0.1:${collectorPort}`, + OTEL_EXPORTER_OTLP_ENDPOINT: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? `http://127.0.0.1:${collectorPort}`, OTEL_EXPORTER_OTLP_PROTOCOL: 'http/protobuf', OTEL_METRICS_EXPORTER: 'none', AGENT_OBSERVABILITY_ENABLED: 'true', From 27263c519c9a23928aca82869cb693aeef6d42e0 Mon Sep 17 00:00:00 2001 From: Avi Alpert Date: Fri, 10 Jul 2026 18:03:24 -0400 Subject: [PATCH 2/2] fix: dont override any otel env vars --- src/cli/operations/dev/otel/collector.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/cli/operations/dev/otel/collector.ts b/src/cli/operations/dev/otel/collector.ts index a28a22d78..350abd434 100644 --- a/src/cli/operations/dev/otel/collector.ts +++ b/src/cli/operations/dev/otel/collector.ts @@ -298,11 +298,13 @@ export async function startOtelCollector(persistTracesDir: string): Promise<{ const otelEnvVars: Record = { OTEL_EXPORTER_OTLP_ENDPOINT: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? `http://127.0.0.1:${collectorPort}`, - OTEL_EXPORTER_OTLP_PROTOCOL: 'http/protobuf', - OTEL_METRICS_EXPORTER: 'none', - AGENT_OBSERVABILITY_ENABLED: 'true', - OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: 'true', - OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED: 'true', + OTEL_EXPORTER_OTLP_PROTOCOL: process.env.OTEL_EXPORTER_OTLP_PROTOCOL ?? 'http/protobuf', + OTEL_METRICS_EXPORTER: process.env.OTEL_METRICS_EXPORTER ?? 'none', + AGENT_OBSERVABILITY_ENABLED: process.env.AGENT_OBSERVABILITY_ENABLED ?? 'true', + OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: + process.env.OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT ?? 'true', + OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED: + process.env.OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED ?? 'true', }; return { collector, otelEnvVars };