DataDog / dd-trace-go

Datadog Go Library including APM tracing, profiling, and security monitoring.
https://docs.datadoghq.com/tracing/
Other
673 stars 438 forks source link

Support for auto-instrumentation via eBPF #1273

Open NicklasWallgren opened 2 years ago

NicklasWallgren commented 2 years ago

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

felixge commented 2 years ago

@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?

NicklasWallgren commented 2 years ago

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.

felixge commented 2 years ago

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

Advantages:

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 : )

Julio-Guerra commented 2 years ago

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.