Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-33394

I wish MongoDB to add some relevant USDT (User-level Statically Defined Tracing) tracepoints which are helpful with eBPF

    • Service Arch

      A USDT (User-level Statically Defined Tracing) probe is a marker where developers add tracing macros to their code at interesting locations, with a stable and documented API. It makes tracing a lot easier. You can find an example of how to add these probes in this site.


      Having USDT facilitates the tracing , for example, instead of tracing _ZN5mongo7Explain13explainStagesEPNS_12PlanExecutorEPKNS_10CollectionENS_13ExplainCommon9VerbosityEPNS_14BSONObjBuilderE you could just simply trace an hypothetical probe called mongodb:query_explain_start.

This is particularly relevant for User-Level Dynamic Tracing.

      Static tracepoints have existed for a long time, although it was recently more popular due to Sun's DTrace utility which helps in the introduction of these tracepoints in common applications, including MySQL, PostgreSQL, Node.js and Java.

      These points will greatly help with the problem diagnosis. Some suggested statically defined tracepoints would be:

      • Query related (query parse start/done, query exec start/done, index read start/done, cache hit, cache miss, in memory sorts, etc)
      • Lock related (lock taken and release, etc)
      • Network (connection received, connection created, connection closed, etc)

      This feature would be helpful when using eBPF filters.

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            ricardo.lorenzo Ricardo Lorenzo
            Votes:
            2 Vote for this issue
            Watchers:
            19 Start watching this issue

              Created:
              Updated: