apollographql / router

A configurable, high-performance routing runtime for Apollo Federation 🚀
https://www.apollographql.com/docs/router/
Other
787 stars 257 forks source link

inconsistency in opentelemetry-proto version #4973

Open Geal opened 3 months ago

Geal commented 3 months ago

Most of the router uses the opentelemetry-proto version at version 0.3 through transitive dependencies, but https://github.com/apollographql/router/pull/4842 introduced opentelemetry-proto at version 0.5 as a direct dependency, which means we now have inconsistent dependency trees in different parts of our telemetry:

$ cargo tree -i opentelemetry_sdk@0.22.1
opentelemetry_sdk v0.22.1
└── opentelemetry-proto v0.5.0
    [dev-dependencies]
    └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)

$ cargo tree -i opentelemetry_sdk@0.20.0
opentelemetry_sdk v0.20.0
├── opentelemetry v0.20.0
│   ├── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   ├── opentelemetry-datadog v0.8.0
│   │   └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   ├── opentelemetry-jaeger v0.19.0
│   │   └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   ├── opentelemetry-semantic-conventions v0.12.0
│   │   ├── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   │   ├── opentelemetry-datadog v0.8.0 (*)
│   │   ├── opentelemetry-jaeger v0.19.0 (*)
│   │   ├── opentelemetry-otlp v0.13.0
│   │   │   └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   │   └── opentelemetry-zipkin v0.18.0
│   │       └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   ├── opentelemetry-zipkin v0.18.0 (*)
│   └── tracing-opentelemetry v0.21.0
│       └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
│   [dev-dependencies]
│   └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
├── opentelemetry-otlp v0.13.0 (*)
├── opentelemetry-prometheus v0.13.0
│   └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
├── opentelemetry-proto v0.3.0
│   └── opentelemetry-otlp v0.13.0 (*)
├── opentelemetry-stdout v0.1.0
│   [dev-dependencies]
│   └── apollo-router v1.45.0-alpha.1 (/home/geal/dev/router/apollo-router)
└── tracing-opentelemetry v0.21.0 (*)

Have we checked that this will not cause issues? @BrynCooke ?

abernix commented 3 months ago

How important is this to jump on?

BrynCooke commented 3 months ago

It's in the [dev-dependencies] to allow us to test otel payloads. I don't think it's an issue unless there is some way that dev dependencies can affect the main build.