Skip to content

Migrate Telemetry examples from Zipkin to OTLP#4558

Merged
pepone merged 4 commits intoicerpc:mainfrom
pepone:fix/opentelemetry-zipkin-to-otlp
Apr 27, 2026
Merged

Migrate Telemetry examples from Zipkin to OTLP#4558
pepone merged 4 commits intoicerpc:mainfrom
pepone:fix/opentelemetry-zipkin-to-otlp

Conversation

@pepone
Copy link
Copy Markdown
Member

@pepone pepone commented Apr 27, 2026

Summary

  • OpenTelemetry.Exporter.Zipkin 1.14.0 trips a NU1902 build break in CI for GHSA-g94r-2vxg-569j (vuln lives in a transitive OpenTelemetry.Api). The fix is in 1.15.x, which also marks AddZipkinExporter as [Obsolete] — and the example projects use TreatWarningsAsErrors, so a plain bump turns the security warning into a deprecation error.
  • Replace OpenTelemetry.Exporter.Zipkin with OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 across the four Telemetry example projects (Slice + Protobuf, client + server) and use AddOtlpExporter.
  • Update both READMEs to point the reader at a Jaeger all-in-one container, which accepts OTLP on :4317 natively and exposes the trace UI on :16686.
  • Drop the now-orphaned zipkin.png screenshots.

OpenTelemetry.Exporter.Zipkin 1.14.0 trips a NU1902 build break for
GHSA-g94r-2vxg-569j (the vulnerability lives in a transitive
OpenTelemetry.Api). The fix is in 1.15.x, which also marks
AddZipkinExporter as obsolete.

Replace OpenTelemetry.Exporter.Zipkin with
OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 and use
AddOtlpExporter. AddOtlpExporter defaults to http://localhost:4317
(gRPC), which the Jaeger all-in-one container accepts natively, so
the README walks the reader through that container instead of
running a separate Zipkin service. Drop the Zipkin UI screenshots
that no longer apply.
Copilot AI review requested due to automatic review settings April 27, 2026 09:44
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the Telemetry examples away from the Zipkin exporter (which is now problematic due to security advisory + obsoletion warnings under TreatWarningsAsErrors) to the OTLP exporter, and updates the accompanying docs accordingly.

Changes:

  • Replace OpenTelemetry.Exporter.Zipkin with OpenTelemetry.Exporter.OpenTelemetryProtocol in the Slice/Protobuf Telemetry client+server example projects.
  • Switch tracing export configuration from AddZipkinExporter() to AddOtlpExporter().
  • Update Telemetry READMEs to use a Jaeger all-in-one container and remove the Zipkin screenshot references (and drop the screenshots).

Reviewed changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated no comments.

Show a summary per file
File Description
examples/slice/Telemetry/zipkin.png Removed obsolete Zipkin screenshot asset.
examples/slice/Telemetry/Server/Server.csproj Swap Zipkin exporter package reference for OTLP exporter.
examples/slice/Telemetry/Server/Program.cs Use AddOtlpExporter() and update comments to OTLP.
examples/slice/Telemetry/README.md Update instructions to Jaeger + OTLP; remove Zipkin UI/screenshot references.
examples/slice/Telemetry/Client/Program.cs Use AddOtlpExporter() and update comments to OTLP.
examples/slice/Telemetry/Client/Client.csproj Swap Zipkin exporter package reference for OTLP exporter.
examples/protobuf/Telemetry/zipkin.png Removed obsolete Zipkin screenshot asset.
examples/protobuf/Telemetry/Server/Server.csproj Swap Zipkin exporter package reference for OTLP exporter.
examples/protobuf/Telemetry/Server/Program.cs Use AddOtlpExporter() and update comments to OTLP.
examples/protobuf/Telemetry/README.md Update instructions to Jaeger + OTLP; remove Zipkin UI/screenshot references.
examples/protobuf/Telemetry/Client/Program.cs Use AddOtlpExporter() and update comments to OTLP.
examples/protobuf/Telemetry/Client/Client.csproj Swap Zipkin exporter package reference for OTLP exporter.

pepone added 2 commits April 27, 2026 11:55
jaegertracing/all-in-one is the Jaeger v1 image, which reaches
end-of-life on 2025-12-31 and prints a deprecation banner on every
run. Use jaegertracing/jaeger (the unified binary image built on the
OpenTelemetry Collector) instead. The OTLP and UI ports are unchanged
so the rest of the README stays the same.
Use jaegertracing/jaeger:2.17.0 instead of :latest so users running
the example get the exact image we tested against; a future v3 image
that changes the UI or OTLP defaults won't silently shift the
walkthrough out from under them.
@pepone pepone requested review from externl April 27, 2026 09:59
The Telemetry example READMEs reference the Docker image
jaegertracing/jaeger:2.17.0, which trips cspell. Add the term to the
project dictionary so the spellcheck job stays green.
Copy link
Copy Markdown
Member

@externl externl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@pepone pepone merged commit 328fff9 into icerpc:main Apr 27, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants