Add OpenTelemetry operation span support

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: OpenTelemetry
    • None
    • Python Drivers
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      Add operation-level telemetry, expanding on the basic OpenTelemetry support added in PYTHON-5945. Here is a plan for the follow up work that was deferred/split off.

      Originally covered transaction spans too; those are now PYTHON-6035. Unified test format support is PYTHON-6036, and getMore span nesting is PYTHON-5993.

      Definition of done

      Every public API call produces an operation span containing one command span per command sent to the server. The span covers all retry attempts of one call, and an operation that fails before any command reaches the wire still produces a conformant span.

      Operations that bypass the retry layer (killCursors, endSessions, unacknowledged client bulk writes) get spans at their call sites.

      Pitfalls

      Cursor-creating calls are covered only for the command that creates the cursor; caller-driven getMores are PYTHON-5993.

            Assignee:
            Steve Silvester
            Reporter:
            Steve Silvester
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: