dd-trace-go icon indicating copy to clipboard operation
dd-trace-go copied to clipboard

Support for auto-instrumentation via eBPF

Open NicklasWallgren opened this issue 2 years ago • 4 comments

Have DataDog any plans for adding support for auto-instrumentation via eBPF?

NicklasWallgren avatar May 03 '22 16:05 NicklasWallgren

@Julio-Guerra and myself had a lot of discussions about dynamic instrumentation in the past and have explored a few directions.

Right now there are not concrete plans, but I'd be curious on what you had in mind for eBPF auto-instrumentation?

felixge avatar May 06 '22 07:05 felixge

We're primarily looking for support for http request and database query tracing via auto-instrumentation.

We're currently evaluating Pixie (https://px.dev/) as an alternative to Datadog, or https://github.com/keyval-dev/opentelemetry-go-instrumentation.

NicklasWallgren avatar May 06 '22 08:05 NicklasWallgren

Pixie and dynamic instrumentation in general is awesome. But it's a tradeoff.

Advantages:

  • Dynamically add instrumentation (logging, tracing, ...) without recompiling.
  • Avoid polluting your app code with instrumentation stuff.
  • Instrument runtime and library internals that would be very hard to observe otherwise.

Disadvantages:

Anyway, we're definitely interested in dynamic instrumentation here at Datadog as well. You need to look no further than this blog post for proof of that : ).

And what I can also say is that our Database Monitoring product is making very fast advancements.

Last but not least, if your dynamic instrumentation framework is otel compatible, you should be able to use it with datadog as well.

I'll try to update this ticket as soon as we have more things to say about dynamic instrumentation for Go. But hopefully the analysis above is helpful for your decision making : )

felixge avatar May 06 '22 12:05 felixge

Regarding Application Security Monitoring, we already reached the point where we cannot reach the coverage we want for our HTTP monitoring without run-time instrumentation. The current plan is to start working on this topic in Q4 2022.

We will very likely start from the solution developed at Sqreen, bringing run-time instrumentation automation that can scale to large amounts of services where manual instrumentation is not conceivable.

Julio-Guerra avatar May 09 '22 08:05 Julio-Guerra