In DRIVERS-719, we plan to support client-side tracing in line with the standards defined by OpenTelemetry. Separately, we have heard from users that there is a desire for Micrometer support. Some are coming from Spring environments, and likely to use Micrometer. Our goal is to support both Micrometer and OpenTelemetry for Java users, as both are in use today.
Micrometer Tracing is a facade over the OpenTelemetry tracer, and is meant to add little to no overhead to the tracing collection activity. There is a bridge to ship spans to OpenTelemetry – micrometer-tracing-bridge-otel – that we can possibly build off of for OpenTelemetry support down the line.
In this ticket, could we create a proof of concept to show Micrometer support in the Java Driver? We can tightly scope this to the sync driver only, and specifically traces.
Some things we should consider:
- What is the user experience if you are using Micrometer in your application, and you connect to the version of the driver that supports Micrometer Tracing? Do your traces get collected by default?
- What dependencies should we take?
- What can Micrometer report on, and what makes sense for us to collect based on the overall goals of the OpenTelemetry effort + database semantic conventions for OpenTelemetry?
- What if you are using OpenTelemetry? Can you tie your Micrometer spans generated by the driver to the OpenTelemetry spans that your application is already generating?
We might be able to lean on the Spring Data team here, as they already have Micrometer Tracing support in Spring Data MongoDB: https://docs.spring.io/spring-data/mongodb/reference/observability/observability.html.
- is related to
-
DRIVERS-719 Client Side Support for OpenTelemetry
- Defining