From 7a071345084357a98349b036e8897c4d18c8c4e8 Mon Sep 17 00:00:00 2001 From: Dom Garguilo Date: Fri, 4 Apr 2025 16:24:29 -0400 Subject: [PATCH 1/6] Update tracing blog post --- .../2022-06-22-2.1.0-metrics-and-tracing.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md index 21053728b..e5ae3e2ce 100644 --- a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md +++ b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md @@ -149,3 +149,24 @@ docker run -d --rm --name jaeger \ 8. View traces in Jaeger UI at http://localhost:16686. You can select the service name on the left panel and click `Find Traces` to view the trace information. If everything is working correctly, then you should see something like the image below. ![Jaeger Screenshot](/images/blog/202206_metrics_and_tracing/Jaeger_Screenshot.png) + +## Note for Recent Accumulo Versions (April 2025) + +We've found that the original Jaeger exporter configuration no longer works well with newer versions of OpenTelemetry and Jaeger. Instead, use the OTLP exporter which has become the standard protocol for trace data: + +1. Update your configuration to use OTLP instead of Jaeger: + ```bash + JAVA_OPTS=('-Dotel.traces.exporter=otlp' '-Dotel.exporter.otlp.endpoint=http://localhost:4317' '-Dotel.metrics.exporter=none' '-Dotel.logs.exporter=none' "${JAVA_OPTS[@]}") + ``` +2. Run Jaeger with OTLP support: + ```bash + docker run --rm --name jaeger \ + -p 16686:16686 \ + -p 4317:4317 \ + -p 4318:4318 \ + -p 5778:5778 \ + -p 9411:9411 \ + jaegertracing/jaeger:2.3.0 + ``` + +This reflects how the OpenTelemetry ecosystem has converged on OTLP as the standard protocol for transmitting trace data. \ No newline at end of file From 4b88f58a526d452c9fef0a11bb6af914e13344ab Mon Sep 17 00:00:00 2001 From: Dom Garguilo Date: Tue, 8 Apr 2025 14:51:45 -0400 Subject: [PATCH 2/6] Add note to old steps about new section. Add section links --- _posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md index e5ae3e2ce..ef16e8a81 100644 --- a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md +++ b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md @@ -118,6 +118,8 @@ general.opentelemetry.enabled=true general.opentelemetry.enabled=true ``` + **Note:** These instructions are for configuring OpenTelemetry and Jaeger with Accumulo 2.1.0. As of Accumulo 2.1.4, the version of OpenTelemetry has been updated and the instructions have changed. See the [Note for Recent Accumulo Versions](#note-for-recent-accumulo-versions-april-2025) section at the end of this post for current configuration information. + 5. Configure the OpenTelemetry JavaAgent in accumulo-env.sh by uncommenting the following and updating the path to the java agent jar: ``` ## Optionally setup OpenTelemetry SDK AutoConfigure @@ -152,6 +154,8 @@ docker run -d --rm --name jaeger \ ## Note for Recent Accumulo Versions (April 2025) +**Note:** This section replaces steps 5 and 6 in the [Tracing Example](#tracing-example) above. Follow steps 1-4 from the original instructions, then use the updated configuration below instead of steps 5-6, and continue with steps 7-8 to view traces in Jaeger. + We've found that the original Jaeger exporter configuration no longer works well with newer versions of OpenTelemetry and Jaeger. Instead, use the OTLP exporter which has become the standard protocol for trace data: 1. Update your configuration to use OTLP instead of Jaeger: @@ -169,4 +173,5 @@ We've found that the original Jaeger exporter configuration no longer works well jaegertracing/jaeger:2.3.0 ``` -This reflects how the OpenTelemetry ecosystem has converged on OTLP as the standard protocol for transmitting trace data. \ No newline at end of file +This reflects how the OpenTelemetry ecosystem has converged on OTLP as the standard protocol for transmitting trace data. +These updated instructions have been tested against Accumulo 2.1.4 and 4.0 versions. From e4ec9cdbeedf4a297bf7cc77d4adcd7777179dcc Mon Sep 17 00:00:00 2001 From: Dom Garguilo Date: Mon, 21 Apr 2025 15:49:24 -0400 Subject: [PATCH 3/6] Address feedback --- .../blog/2022-06-22-2.1.0-metrics-and-tracing.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md index ef16e8a81..1e7b58c33 100644 --- a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md +++ b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md @@ -152,17 +152,18 @@ docker run -d --rm --name jaeger \ ![Jaeger Screenshot](/images/blog/202206_metrics_and_tracing/Jaeger_Screenshot.png) -## Note for Recent Accumulo Versions (April 2025) +## Updated Configuration with Newer Versions of OpenTelemetry -**Note:** This section replaces steps 5 and 6 in the [Tracing Example](#tracing-example) above. Follow steps 1-4 from the original instructions, then use the updated configuration below instead of steps 5-6, and continue with steps 7-8 to view traces in Jaeger. +The original tracing example above was written for Accumulo 2.1.0 which uses OpenTelemetry 1.19.0. Accumulo 2.1.4 has been updated to use OpenTelemetry 1.48.0, which requires different configuration. When working with Accumulo 2.1.4 or any deployment using OpenTelemetry 1.48.0 or newer, use OTLP (OpenTelemetry Protocol) instead of the direct Jaeger exporter. -We've found that the original Jaeger exporter configuration no longer works well with newer versions of OpenTelemetry and Jaeger. Instead, use the OTLP exporter which has become the standard protocol for trace data: +Follow steps 1-4 from the [Tracing Example](#tracing-example) section, then use these updated steps in place of steps 5-6: -1. Update your configuration to use OTLP instead of Jaeger: +1. Configure the OpenTelemetry JavaAgent in accumulo-env.sh with OTLP export: ```bash JAVA_OPTS=('-Dotel.traces.exporter=otlp' '-Dotel.exporter.otlp.endpoint=http://localhost:4317' '-Dotel.metrics.exporter=none' '-Dotel.logs.exporter=none' "${JAVA_OPTS[@]}") + JAVA_OPTS=('-javaagent:path/to/opentelemetry-javaagent.jar' "${JAVA_OPTS[@]}") ``` -2. Run Jaeger with OTLP support: +2. Start Jaeger with OTLP support: ```bash docker run --rm --name jaeger \ -p 16686:16686 \ @@ -173,5 +174,4 @@ We've found that the original Jaeger exporter configuration no longer works well jaegertracing/jaeger:2.3.0 ``` -This reflects how the OpenTelemetry ecosystem has converged on OTLP as the standard protocol for transmitting trace data. -These updated instructions have been tested against Accumulo 2.1.4 and 4.0 versions. +After completing these updated steps, continue with steps 7-8 from the original instructions to view traces in Jaeger. \ No newline at end of file From 5be20d6e103a33d1b41c102dc9e47470a174c0c3 Mon Sep 17 00:00:00 2001 From: Dom Garguilo Date: Mon, 21 Apr 2025 15:59:53 -0400 Subject: [PATCH 4/6] Update hyperlink to section --- _posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md index 1e7b58c33..4874b60a2 100644 --- a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md +++ b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md @@ -118,7 +118,7 @@ general.opentelemetry.enabled=true general.opentelemetry.enabled=true ``` - **Note:** These instructions are for configuring OpenTelemetry and Jaeger with Accumulo 2.1.0. As of Accumulo 2.1.4, the version of OpenTelemetry has been updated and the instructions have changed. See the [Note for Recent Accumulo Versions](#note-for-recent-accumulo-versions-april-2025) section at the end of this post for current configuration information. + **Note:** These instructions are for configuring OpenTelemetry and Jaeger with Accumulo 2.1.0. As of Accumulo 2.1.4, the version of OpenTelemetry has been updated and the instructions have changed. See the [Updated Configuration with Newer Versions of OpenTelemetry](#updated-configuration-with-newer-versions-of-opentelemetry) section at the end of this post for current configuration information. 5. Configure the OpenTelemetry JavaAgent in accumulo-env.sh by uncommenting the following and updating the path to the java agent jar: ``` From cefa67ef4fc00a4a90a0171c02004fbf1772dab4 Mon Sep 17 00:00:00 2001 From: Dom Garguilo Date: Mon, 21 Apr 2025 16:04:50 -0400 Subject: [PATCH 5/6] Use image styling on existing screenshots --- _posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md index 4874b60a2..141a1b799 100644 --- a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md +++ b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md @@ -85,7 +85,9 @@ general.micrometer.factory=org.apache.accumulo.test.metrics.TestStatsDRegistryFa 10. Log into Grafana (http://localhost:3003/) using the default credentials (root/root). Click the `Home` icon at the top, then click the `Accumulo Micrometer Test Dashboard`. If everything is working correctly, then you should see something like the image below. -![Grafana Screenshot](/images/blog/202206_metrics_and_tracing/Grafana_Screenshot.png) + + Grafana Screenshot + # Tracing @@ -150,7 +152,9 @@ docker run -d --rm --name jaeger \ 8. View traces in Jaeger UI at http://localhost:16686. You can select the service name on the left panel and click `Find Traces` to view the trace information. If everything is working correctly, then you should see something like the image below. -![Jaeger Screenshot](/images/blog/202206_metrics_and_tracing/Jaeger_Screenshot.png) + + Jaeger Screenshot + ## Updated Configuration with Newer Versions of OpenTelemetry From 71b7506d7563ce4837c89c4cdf22ebd2e2cb7ae7 Mon Sep 17 00:00:00 2001 From: Dom Garguilo Date: Wed, 23 Apr 2025 13:39:54 -0400 Subject: [PATCH 6/6] Add note earlier about updated config steps --- _posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md index 141a1b799..227fca998 100644 --- a/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md +++ b/_posts/blog/2022-06-22-2.1.0-metrics-and-tracing.md @@ -120,7 +120,7 @@ general.opentelemetry.enabled=true general.opentelemetry.enabled=true ``` - **Note:** These instructions are for configuring OpenTelemetry and Jaeger with Accumulo 2.1.0. As of Accumulo 2.1.4, the version of OpenTelemetry has been updated and the instructions have changed. See the [Updated Configuration with Newer Versions of OpenTelemetry](#updated-configuration-with-newer-versions-of-opentelemetry) section at the end of this post for current configuration information. + **Note:** If you are using Accumulo 2.1.4 or newer, skip steps 5-6 below and follow the updated instructions in the [Updated Configuration with Newer Versions of OpenTelemetry](#updated-configuration-with-newer-versions-of-opentelemetry) section. 5. Configure the OpenTelemetry JavaAgent in accumulo-env.sh by uncommenting the following and updating the path to the java agent jar: ``` @@ -160,7 +160,7 @@ docker run -d --rm --name jaeger \ The original tracing example above was written for Accumulo 2.1.0 which uses OpenTelemetry 1.19.0. Accumulo 2.1.4 has been updated to use OpenTelemetry 1.48.0, which requires different configuration. When working with Accumulo 2.1.4 or any deployment using OpenTelemetry 1.48.0 or newer, use OTLP (OpenTelemetry Protocol) instead of the direct Jaeger exporter. -Follow steps 1-4 from the [Tracing Example](#tracing-example) section, then use these updated steps in place of steps 5-6: +Follow steps 1–4 from the [Tracing Example](#tracing-example) section, then use these updated steps in place of steps 5-6: 1. Configure the OpenTelemetry JavaAgent in accumulo-env.sh with OTLP export: ```bash