Add support for Open Telemetry/Micrometer Tracing

XMLWordPrintableJSON

    • Type: Epic
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Monitoring
    • None
    • Add support for Micrometer Tracing to MongoDB Java Driver
    • Java Drivers
    • None
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • To Do
    • 7
    • 13
    • 14
    • 100
    • 100
    • None
    • Hide

      Engineer: Nabil Hachicha

      2025-09-26: 

      • What's the focus over the next two weeks?
        • Finishing the Observation refactor.
        • Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor)
      • Other info:
        • Nabil, First responder covering for Slav & Valentin.
      Show
      Engineer: Nabil Hachicha 2025-09-26:  Last two weeks: First week OOO. Second week: Refactoring the existing implementation to use Micrometer Observation abstraction as suggested by the maintainers of Micrometer ( https://github.com/mongodb/mongo-java-driver/pull/1695#issuecomment-3161310082 ) What's the focus over the next two weeks? Finishing the Observation refactor. Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor) Other info: Nabil, First responder covering for Slav & Valentin.
    • Hide

      2025-09-15 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • Rationale for any project delays/change in end date/etc, if applicable
        • No progress, working on the spec (DRIVERS-719)
        • Additional work arose in driver spec, see the "focus over next 2 weeks" section for details.
      • Last two weeks:
        • None
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor)
      • Other info:
        • Nabil out for 1 week, the "next 2 weeks" covers the 2 weeks after return.

      2025-09-15 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • Rationale for any project delays/change in end date/etc, if applicable
        • No progress, working on the spec (DRIVERS-719)
        • Additional work arose in driver spec, see the "focus over next 2 weeks" section for details.
      • Last two weeks:
        • None
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor)

      2025-09-15 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • Rationale for any project delays/change in end date/etc, if applicable
      • Last two weeks:
        • None
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor)

      2025-09-15 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • Rationale for any project delays/change in end date/etc, if applicable
      • Last two weeks:
        • None
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec.

      2025-09-15 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • Rationale for any project delays/change in end date/etc, if applicable
      • Last two weeks:
        • None
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec.

      2025-09-15 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • Rationale for any project delays/change in end date/etc, if applicable
      • Last two weeks:
        • None
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec.
      • BlockersDRIVERS-719

      2025-09-12 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • What was accomplished since the last update
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec

      2025-09-12 - No confidence status provided
      Engineer: Nabil Hachicha

      2025-09-12: 

      • What was accomplished since the last update
      • What's the focus over the next two weeks?
        • Evaluating Spring's Micrometer feedback of using Observability API.
        • Align the implementation with the DRIVERS-719 spec

      Engineer(s): Nabil Hachicha

      What was accomplished since the last update?

      What's the focus over the next two weeks?

      • Nabil OOO until September.

      Engineer(s): Nabil Hachicha

      What was accomplished since the last update?

      What's the focus over the next two weeks?


      Engineer(s): Nabil Hachicha

      Spec Fest Week July (14th - July 18th)

      What was accomplished since the last update?

      What's the focus over the next two weeks?

      Engineer(s): Nabil Hachicha
      2025-07-04: Updated end date to 2025-07-18


      Rationale for any project delays/change in end date/etc, if applicable

      The Micrometer implementation serves as the second reference implementation of the OpenTelemetry specification. We need to complete the OTel spec work before we can finalize the Micrometer implementation.
      Dmitry has had limited availability recently due to P1 issues and competing priorities, but he has now delivered the first draft of the specification. I'm supporting the effort by handling the testing components—updating the unified test runner and developing test cases—which allows Dmitry to focus exclusively on the specification itself.
      This additional work was not included in our original project scope

      What was accomplished since the last update?

      What's the focus over the next two weeks?


      Engineer(s): Nabil Hachicha
      2025-06-23: Updated end date to 2025-07-04

      Rationale for any project delays/change in end date/etc, if applicable

      What was accomplished since the last update?

      What's the focus over the next two weeks?


      Engineer(s): Nabil Hachicha
      2025-06-09:

      • Draft PR in review, validating concepts to add tracing spans for Transactions, Operations and Commands.
      • Using unified test format for tracing Spans assertions
      • Design review for OTel spec, we want the Java integration of Micrometer to adhere to the upcoming spec and become the second reference implementation

      What's the focus over the next two weeks?


      Show
      2025-09-15 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Rationale for any project delays/change in end date/etc, if applicable No progress, working on the spec ( DRIVERS-719 ) Additional work arose in driver spec, see the "focus over next 2 weeks" section for details. Last two weeks: None What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor) Blockers DRIVERS-719 Other info: Nabil out for 1 week, the "next 2 weeks" covers the 2 weeks after return. 2025-09-15 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Rationale for any project delays/change in end date/etc, if applicable No progress, working on the spec ( DRIVERS-719 ) Additional work arose in driver spec, see the "focus over next 2 weeks" section for details. Last two weeks: None What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor) Blockers DRIVERS-719 2025-09-15 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Rationale for any project delays/change in end date/etc, if applicable No progress, working on the spec ( DRIVERS-719 ) Last two weeks: None What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec. (Reported attributes for operation, commands spans, removing nesting for cursor) Blockers DRIVERS-719 2025-09-15 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Rationale for any project delays/change in end date/etc, if applicable No progress, working on the spec ( DRIVERS-719 ) Last two weeks: None What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec. Blockers DRIVERS-719 2025-09-15 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Rationale for any project delays/change in end date/etc, if applicable No progress, working on the spec ( DRIVERS-719 ) Last two weeks: None What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec. Blockers DRIVERS-719 2025-09-15 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Rationale for any project delays/change in end date/etc, if applicable No progress, working on the spec ( DRIVERS-719 ) Last two weeks: None What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec. BlockersDRIVERS-719 2025-09-12 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Last two weeks: Pushed out end date by 2 weeks Finalising the work on the spec first (The OTel spec implemented by this PR is under review https://github.com/mongodb/specifications/pull/1826 )   What was accomplished since the last update Working on the spec ( DRIVERS-719 ) What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec 2025-09-12 - No confidence status provided Engineer: Nabil Hachicha 2025-09-12:  Pushed out end date by 2 weeks Finalising the work on the spec first (The OTel spec implemented by this PR is under review https://github.com/mongodb/specifications/pull/1826 )   What was accomplished since the last update Working on the spec ( DRIVERS-719 ) What's the focus over the next two weeks? Evaluating Spring's Micrometer feedback of using Observability API. Align the implementation with the DRIVERS-719 spec Engineer(s): Nabil Hachicha What was accomplished since the last update? No progress, focusing on finishing the spec https://jira.mongodb.org/browse/DRIVERS-719 What's the focus over the next two weeks? Nabil OOO until September. Engineer(s): Nabil Hachicha What was accomplished since the last update? Addressing PR feedback. There were design concerns regarding the implementation that were addressed https://github.com/mongodb/mongo-java-driver/pull/1695 Adding a sample for OTel usage with Micrometer. What's the focus over the next two weeks? Working on the Spec with Dmitry https://github.com/mongodb/specifications/pull/1821 Adding more tests for OTEL spec https://jira.mongodb.org/browse/DRIVERS-3201 Engineer(s): Nabil Hachicha Spec Fest Week July (14th - July 18th) What was accomplished since the last update? Getting PR in reviewable state (Rebasing against main, fixing CI tests) https://github.com/mongodb/mongo-java-driver/pull/1695 Pushed the first format for the OTEL specification tests format in https://github.com/mongodb/specifications/tree/nh/tracing/source/tracing/tests What's the focus over the next two weeks? Addressing review feedback Adding more tests for OTEL spec https://jira.mongodb.org/browse/DRIVERS-3201 Engineer(s): Nabil Hachicha 2025-07-04: Updated end date to 2025-07-18 Rationale for any project delays/change in end date/etc, if applicable The Micrometer implementation serves as the second reference implementation of the OpenTelemetry specification. We need to complete the OTel spec work before we can finalize the Micrometer implementation. Dmitry has had limited availability recently due to P1 issues and competing priorities, but he has now delivered the first draft of the specification. I'm supporting the effort by handling the testing components—updating the unified test runner and developing test cases—which allows Dmitry to focus exclusively on the specification itself. This additional work was not included in our original project scope What was accomplished since the last update? Adding Tracing Spans for convenient transactions ( https://github.com/mongodb/specifications/blob/master/source/transactions-convenient-api/transactions-convenient-api.md ) Updating the Unified Test Runner to define the expected format for the spans https://jira.mongodb.org/browse/DRIVERS-3201 What's the focus over the next two weeks? Finishing the work on the Unified Test Runner Reviewing first draft of the spec https://github.com/comandeo-mongo/specifications/pull/1 Engineer(s): Nabil Hachicha 2025-06-23: Updated end date to 2025-07-04 Rationale for any project delays/change in end date/etc, if applicable What was accomplished since the last update? Finalising design review ( completed ) Adding Tracing Spans for transactions in https://github.com/mongodb/mongo-java-driver/pull/1695 . What's the focus over the next two weeks? Working on https://jira.mongodb.org/browse/DRIVERS-3201 (update unified test runner to be used for tracing tests) Engineer(s): Nabil Hachicha 2025-06-09: Draft PR in review, validating concepts to add tracing spans for Transactions, Operations and Commands. Using unified test format for tracing Spans assertions Design review for OTel spec, we want the Java integration of Micrometer to adhere to the upcoming spec and become the second reference implementation What's the focus over the next two weeks? Work on https://jira.mongodb.org/browse/DRIVERS-3201 before starting to add tracing Spans for every operation (and subsequent commands)
    • 6
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            Nabil Hachicha
            Reporter:
            Alex Bevilacqua
            None
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              2 years, 26 weeks, 1 day
              None