Client Side Support for OpenTelemetry

XMLWordPrintableJSON

    • Type: Epic
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Component/s: None
    • Client Side Tracing
    • None
    • Hide

      Summary of necessary driver changes

      •  

      Commits for syncing spec/prose tests
      (and/or refer to an existing language POC if needed)

      •  

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes   Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   Context for other referenced/linked tickets  
    • To Do
    • None
    • None
    • Hide

      2025-08-01:

      • What’s the focus over the next two weeks?
        • Nabil to work on more spec tests (all operations).
        • Nabil to update the test schema
        • Nabil to finalize the required changes to the Unified Test Runner
        • Dmitry is out on leave; once he's back, he'll focus on modifying the unified test runner to use the spec tests.

      2025-07-17:

      • What was completed over the last two weeks?
        • Drafted the set of attributes that should be traced. Set up a playground application for trying out possible implementations and analyse the outcome. Discussed the implementations with other drivers (Java).
      • What’s the focus over the next week?
        • Finalise the design and open it for the review.
      • Impediments encountered over the last weeks.
        • Some proposals in the scope seems to be not relevant, so I needed to rethink the design. Also I had to re-evaluate the necessity to following the conventions of the OpenTelemetry (nobody seems to follow them).
      Show
      2025-08-01: What was completed over the last two weeks? Java implementation in review. The goal is to validate the concepts (grouping of cursors, operations and transactions) expressed in the draft spec. A Ruby implementation is also in progress. Pushed a draft of the spec tests (using the unified test runner https://github.com/mongodb/specifications/tree/nh/tracing/source/tracing/tests ) What’s the focus over the next two weeks? Nabil to work on more spec tests (all operations). Nabil to update the test schema Nabil to finalize the required changes to the Unified Test Runner Dmitry is out on leave; once he's back, he'll focus on modifying the unified test runner to use the spec tests. 2025-07-17: What was completed over the last two weeks? Drafted the set of attributes that should be traced. Set up a playground application for trying out possible implementations and analyse the outcome. Discussed the implementations with other drivers (Java). What’s the focus over the next week? Finalise the design and open it for the review. Impediments encountered over the last weeks. Some proposals in the scope seems to be not relevant, so I needed to rethink the design. Also I had to re-evaluate the necessity to following the conventions of the OpenTelemetry (nobody seems to follow them).
    • Needed
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CSHARP-4709 Duplicate
      CDRIVER-5862 Execution Blocked
      CXX-3210 Execution Blocked
      GODRIVER-3468 Execution Blocked
      JAVA-5768 Duplicate
      NODE-6675 Execution Blocked
      MOTOR-1425 Duplicate
      PYTHON-5052 Execution Blocked
      PHPLIB-1610 Execution Blocked
      RUBY-3612 Defining
      RUST-2138 Execution Blocked
      CSHARP-3124 Backlog
      JAVA-5876 Backlog
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CSHARP-4709 Duplicate CDRIVER-5862 Execution Blocked CXX-3210 Execution Blocked GODRIVER-3468 Execution Blocked JAVA-5768 Duplicate NODE-6675 Execution Blocked MOTOR-1425 Duplicate PYTHON-5052 Execution Blocked PHPLIB-1610 Execution Blocked RUBY-3612 Defining RUST-2138 Execution Blocked CSHARP-3124 Backlog JAVA-5876 Backlog
    • None
    • None
    • None
    • None
    • None
    • None

      Summary

      Add support for OpenTelemetry-standardized tracing into the MongoDB drivers.

      Motivation

      Who is the affected end user?

      All Drivers users

      How does this affect the end user?

      Users currently lack insight into performance degradations and connection issues on the client-side. They are sometimes able to piece together some parts of why performance issues might occur by looking at Profiler on Atlas, but for the latter, we currently expose no information. Users can make use of OpenTelemetry autoinstrumentation where available, but we have heard that it is insufficient, or in some cases, not available (C/C++). 

      How likely is it that this problem or use case will occur?

      Connection-related issues comprise anywhere from 15-25% of all Drivers-related cases created (according to the TS Drivers report).

      If the problem does occur, what are the consequences and how severe are they?

      The lack of easily available information can lead to extended mean-time-to-resolution when issues occur, as well as developer pain and frustration.

      Is this issue urgent?

      N/A

      Is this ticket required by a downstream team?

      N/A

      Is this ticket only for tests?

      No.

      Cast of Characters

      Engineering Lead:
      Document Author:
      POCers:
      Product Owner: ashni.mehta@mongodb.com 
      Program Manager:
      Stakeholders:

      Channels & Docs

      Slack Channel

      [Scope

      [Technical Design

              Assignee:
              Dmitry Rybakov
              Reporter:
              Esha Bhargava
              Nabil Hachicha Nabil Hachicha
              Alex Bevilacqua Alex Bevilacqua
              None
              Votes:
              2 Vote for this issue
              Watchers:
              22 Start watching this issue

                Created:
                Updated:
                39 weeks, 4 days
                None
                None
                None
                None