diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj index 5f1065e36..b7a4b3743 100644 --- a/src/Services/Basket/Basket.API/Basket.API.csproj +++ b/src/Services/Basket/Basket.API/Basket.API.csproj @@ -45,6 +45,7 @@ + diff --git a/src/Services/Basket/Basket.API/OpenTelemetry.cs b/src/Services/Basket/Basket.API/OpenTelemetry.cs index de5e0fe0e..0c88b2b07 100644 --- a/src/Services/Basket/Basket.API/OpenTelemetry.cs +++ b/src/Services/Basket/Basket.API/OpenTelemetry.cs @@ -31,6 +31,13 @@ static class OpenTelemetryExtensions // Configure exporter switch (exportType) { + case "jaeger": + tracerProviderBuilder.AddJaegerExporter(options => + { + var agentHost = Environment.GetEnvironmentVariable("OTEL_EXPORTER_JAEGER_AGENTHOST"); + options.AgentHost = agentHost; + }); + break; case "otlp": tracerProviderBuilder.AddOtlpExporter(options => { diff --git a/src/Web/WebMVC/OpenTelemetry.cs b/src/Web/WebMVC/OpenTelemetry.cs index 8f6614bf4..be73c62c1 100644 --- a/src/Web/WebMVC/OpenTelemetry.cs +++ b/src/Web/WebMVC/OpenTelemetry.cs @@ -27,6 +27,13 @@ static class OpenTelemetryExtensions // Configure exporter switch (exportType) { + case "jaeger": + tracerProviderBuilder.AddJaegerExporter(options => + { + var agentHost = Environment.GetEnvironmentVariable("OTEL_EXPORTER_JAEGER_AGENTHOST"); + options.AgentHost = agentHost; + }); + break; case "otlp": tracerProviderBuilder.AddOtlpExporter(options => { diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index a746427e2..13ef68d79 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -47,6 +47,7 @@ + diff --git a/src/docker-compose.opentelemetry.jaeger.yml b/src/docker-compose.opentelemetry.jaeger.yml new file mode 100644 index 000000000..59625ceb1 --- /dev/null +++ b/src/docker-compose.opentelemetry.jaeger.yml @@ -0,0 +1,29 @@ +version: '3.4' + +# The OpenTelemetry docker-compose file is used to configure OpenTelemetry for the services +# +# You need to start it with the following CLI command: +# docker-compose -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.opentelemetry.zipkin.yml up + +services: + jaeger-all-in-one: + image: jaegertracing/all-in-one:latest + ports: + - "5775:5775/udp" + - "6831:6831/udp" + - "6832:6832/udp" + - "5778:5778" + - "16686:16686" + - "14268:14268" + - "14250:14250" + - "9411:9411" + + basket-api: + environment: + - OTEL_USE_EXPORTER=jaeger + - OTEL_EXPORTER_JAEGER_AGENTHOST=${OTEL_EXPORTER_JAEGER_AGENTHOST:-jaeger-all-in-one} + + webmvc: + environment: + - OTEL_USE_EXPORTER=jaeger + - OTEL_EXPORTER_JAEGER_AGENTHOST=${OTEL_EXPORTER_JAEGER_AGENTHOST:-jaeger-all-in-one}