From c2284049eae9b0f6f5f292183a6537262bf78c05 Mon Sep 17 00:00:00 2001 From: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:52:00 +0200 Subject: [PATCH 1/6] update Jaeger setup instructions for port conflict and background container Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> --- .../open-telemetry-collector-jaeger.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md index fc1d91aca56..1bf9adb3bb8 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -17,8 +17,12 @@ Dapr supports writing traces using the OpenTelemetry (OTLP) protocol, and Jaeger The simplest way to start Jaeger is to run the pre-built, all-in-one Jaeger image published to DockerHub and expose the OTLP port: +> **Note:** Port 9411 is commonly used by Zipkin. If you have Zipkin running (starts by default when you run `dapr init`), stop the `dapr_zipkin` container first to avoid port conflicts: `docker stop dapr_zipkin` + + + ```bash -docker run --rm --name jaeger \ +docker run -d --rm --name jaeger \ -p 16686:16686 \ -p 4317:4317 \ -p 4318:4318 \ @@ -27,6 +31,12 @@ docker run --rm --name jaeger \ cr.jaegertracing.io/jaegertracing/jaeger:2.11.0 ``` +You can also view the logs the jaeger container using: + +```bash +docker logs jaeger +``` + Next, create the following `config.yaml` file locally: > **Note:** Because you are using the Open Telemetry protocol to talk to Jaeger, you need to fill out the `otel` section of the tracing configuration and set the `endpointAddress` to the address of the Jaeger container. From 0fedeecf0315a645bc0fa3512513b1bc11c357d5 Mon Sep 17 00:00:00 2001 From: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> Date: Wed, 22 Oct 2025 15:53:28 +0200 Subject: [PATCH 2/6] fix spacing Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> --- .../tracing/otel-collector/open-telemetry-collector-jaeger.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md index 1bf9adb3bb8..ab3819ea8a5 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -19,8 +19,6 @@ The simplest way to start Jaeger is to run the pre-built, all-in-one Jaeger imag > **Note:** Port 9411 is commonly used by Zipkin. If you have Zipkin running (starts by default when you run `dapr init`), stop the `dapr_zipkin` container first to avoid port conflicts: `docker stop dapr_zipkin` - - ```bash docker run -d --rm --name jaeger \ -p 16686:16686 \ From f89bfe313145061c2ea6ce341b859e5b24a30d92 Mon Sep 17 00:00:00 2001 From: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> Date: Fri, 21 Nov 2025 10:47:33 +0100 Subject: [PATCH 3/6] add helm mode Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> --- .../open-telemetry-collector-jaeger.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md index ab3819ea8a5..a70d081f5ab 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -85,15 +85,20 @@ Jaeger V2 can be deployed using the OpenTelemetry Operator for simplified manage #### Installation -1. **Install cert-manager** to manage certificates: - ```bash - kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.19.1/cert-manager.yaml -n cert-manager - ``` - Verify that all resources in the `cert-manager` namespace are ready. +> **Note:**In order for the API server to communicate with the webhook component of the operator, the webhook requires a TLS certificate that the API server is configured to trust. There are a few different ways you can use to generate/configure the required TLS certificate detailed in the [otel operator chart docs](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator#tls-certificate-requirement) + +For simplicity in this case we will be letting helm to create an automatically generated self-signed certificate, + +```bash +``` 1. **Install the OpenTelemetry Operator**: + ```bash - kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml + helm install opentelemetry-operator open-telemetry/opentelemetry-operator -n opentelemetry-operator-system --create-namespace \ + --set "manager.collectorImage.repository=ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" \ + --set admissionWebhooks.certManager.enabled=false \ + --set admissionWebhooks.autoGenerateCert.enabled=true ``` Confirm that all resources in the `opentelemetry-operator-system` namespace are ready. From 210cd95d05b448c0630a0923623d5db9f7aeb4fe Mon Sep 17 00:00:00 2001 From: Mirel <15373565+MyMirelHub@users.noreply.github.com> Date: Thu, 4 Dec 2025 14:47:29 +0100 Subject: [PATCH 4/6] Update daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md Co-authored-by: Mark Fussell Signed-off-by: Mirel <15373565+MyMirelHub@users.noreply.github.com> Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> --- .../tracing/otel-collector/open-telemetry-collector-jaeger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md index a70d081f5ab..cbd20bd8ecd 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -87,7 +87,7 @@ Jaeger V2 can be deployed using the OpenTelemetry Operator for simplified manage > **Note:**In order for the API server to communicate with the webhook component of the operator, the webhook requires a TLS certificate that the API server is configured to trust. There are a few different ways you can use to generate/configure the required TLS certificate detailed in the [otel operator chart docs](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator#tls-certificate-requirement) -For simplicity in this case we will be letting helm to create an automatically generated self-signed certificate, +For simplicity you can use Helm to create an automatically generated self-signed certificate. ```bash ``` From 599494d597ff76f2f48b6a57c69885c087b2e2da Mon Sep 17 00:00:00 2001 From: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> Date: Thu, 4 Dec 2025 15:03:14 +0100 Subject: [PATCH 5/6] fix: improve clarity and correctness in Jaeger V2 documentation Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> --- .../open-telemetry-collector-jaeger.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md index cbd20bd8ecd..1e2db757b7f 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -29,7 +29,7 @@ docker run -d --rm --name jaeger \ cr.jaegertracing.io/jaegertracing/jaeger:2.11.0 ``` -You can also view the logs the jaeger container using: +You can also view the logs from the jaeger container using: ```bash docker logs jaeger @@ -85,12 +85,9 @@ Jaeger V2 can be deployed using the OpenTelemetry Operator for simplified manage #### Installation -> **Note:**In order for the API server to communicate with the webhook component of the operator, the webhook requires a TLS certificate that the API server is configured to trust. There are a few different ways you can use to generate/configure the required TLS certificate detailed in the [otel operator chart docs](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator#tls-certificate-requirement) +> **Note:** In order for the API server to communicate with the webhook component of the operator, the webhook requires a TLS certificate that the API server is configured to trust. There are a few different ways you can use to generate/configure the required TLS certificate detailed in the [otel operator chart docs](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator#tls-certificate-requirement) For simplicity you can use Helm to create an automatically generated self-signed certificate. - -```bash -``` 1. **Install the OpenTelemetry Operator**: @@ -103,7 +100,7 @@ For simplicity you can use Helm to create an automatically generated self-signed Confirm that all resources in the `opentelemetry-operator-system` namespace are ready. 1. **Deploy a Jaeger V2 instance with in-memory storage**: - Apply the following configuration to create a Jaeger V2 instance: + Create a file named `jaeger-inmemory.yaml` with the following configuration: ```yaml apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector @@ -152,7 +149,7 @@ For simplicity you can use Helm to create an automatically generated self-signed Create a Dapr configuration file to enable tracing and export the sidecar traces directly to the Jaeger V2 instance. -1. Create a configuration file (e.g., `tracing.yaml`) with the following content, updating the `namespace` and `otel.endpointAddress` to match your Jaeger V2 instance: +1. Create a configuration file (for example `tracing.yaml`) with the following content, updating the `namespace` and `otel.endpointAddress` to match your Jaeger V2 instance: ```yaml apiVersion: dapr.io/v1alpha1 kind: Configuration @@ -203,7 +200,7 @@ That’s it! There’s no need to include the OpenTelemetry SDK or instrument yo To view Dapr sidecar traces, port-forward the Jaeger V2 service and open the UI: ```bash -kubectl port-forward svc/jaeger-inmemory-instance-collector 16686 -n observability +kubectl port-forward svc/jaeger-inmemory-instance-collector 16686:16686 -n observability ``` In your browser, go to `http://localhost:16686` to see the Jaeger V2 UI. From c6573128ebbf768cc444e51755e1f371a8c97d6b Mon Sep 17 00:00:00 2001 From: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> Date: Thu, 4 Dec 2025 15:21:29 +0100 Subject: [PATCH 6/6] docs: add local dir instructions for Jaeger V2 Signed-off-by: MyMirelHub <15373565+MyMirelHub@users.noreply.github.com> --- .../open-telemetry-collector-jaeger.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md index 1e2db757b7f..fce8875dc3a 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -35,7 +35,13 @@ You can also view the logs from the jaeger container using: docker logs jaeger ``` -Next, create the following `config.yaml` file locally: +### Configure Dapr for tracing + +You have two options to configure Dapr to send traces to Jaeger V2: + +#### Option 1: Use a custom config file + +Create a `config.yaml` file with the following content: > **Note:** Because you are using the Open Telemetry protocol to talk to Jaeger, you need to fill out the `otel` section of the tracing configuration and set the `endpointAddress` to the address of the Jaeger container. @@ -62,6 +68,10 @@ the `--config` option. For example: dapr run --app-id myapp --app-port 3000 node app.js --config config.yaml ``` +#### Option 2: Update the default Dapr config (development environment) + +Alternatively, in your development environment, navigate to your [local Dapr components directory](https://docs.dapr.io/getting-started/install-dapr-selfhost/#step-5-verify-components-directory-has-been-initialized) and update the default `config.yaml` file with the OTLP configuration above. This way, all Dapr applications will use the Jaeger V2 tracing configuration by default without needing to specify the `--config` flag each time. + ### View traces To view traces in your browser, go to `http://localhost:16686` to see the Jaeger UI.