Of course it outperforms it, but it's basic instrumentation, how do you properly select the labels for example? In your application you will have custom instrumentation for business logic, so what do you do? Now you have two systems instrumenting the same app?
eBPF-based auto-instrumentation outperforms manual instrumentation
41–50 of 61 posts
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#42Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#43Anyone from the dtrace community want to enlighten a n00b about how eBPF compares to what dtrace does?
I don’t have a lot of experience using dtrace, but AFAIK the big advantage of eBPF over dtrace is that you do not need to instrument your application with static probes during coding.
One problem that DTrace has is that the "pid" provider that you use for userspace app tracing only works on processes that are already running. So, if more processes with the executable of interest launch after you've started DTrace, its pid provider won't catch the new ones. Then you end up doing some tricks like tracking exec-s of the binary and restarting your DTrace script...
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#44Anyone from the dtrace community want to enlighten a n00b about how eBPF compares to what dtrace does?
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#45Anyone from the dtrace community want to enlighten a n00b about how eBPF compares to what dtrace does?
They're really very different -- with very different origins and constraints. If you want to hear about my own experiences with bpftrace, I got into this a bit recently.[0] (And in fact, one of my questions about the article is how they deal with silently dropped data in eBPF -- which I found to be pretty maddening.) [0] https://www.youtube.com/watch?v=mqvVmYhclAg#t=12m0s
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#46Earlier quoted context omitted.
I don’t have a lot of experience using dtrace, but AFAIK the big advantage of eBPF over dtrace is that you do not need to instrument your application with static probes during coding.
DTrace (on Solaris at least) can instrument any userspace symbol or address, no need for static tracepoints in the app. One problem that DTrace has is that the "pid" provider that you use for userspace app tracing only works on processes that are already running. So, if more processes with the executable of interest launch after you've started DTrace, its pid provider won't catch the new ones. Then you end up doing s…
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#47Earlier quoted context omitted.
They're really very different -- with very different origins and constraints. If you want to hear about my own experiences with bpftrace, I got into this a bit recently.[0] (And in fact, one of my questions about the article is how they deal with silently dropped data in eBPF -- which I found to be pretty maddening.) [0] https://www.youtube.com/watch?v=mqvVmYhclAg#t=12m0s
By dropped data do you mean by exceeding the size of the allocated ring buffer/perf buffer? If so this is configurable by the user, so you can adjust is according to the expected load
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#48Anyone from the dtrace community want to enlighten a n00b about how eBPF compares to what dtrace does?
They're really very different -- with very different origins and constraints. If you want to hear about my own experiences with bpftrace, I got into this a bit recently.[0] (And in fact, one of my questions about the article is how they deal with silently dropped data in eBPF -- which I found to be pretty maddening.) [0] https://www.youtube.com/watch?v=mqvVmYhclAg#t=12m0s
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#49The column in the table claiming the "number of page loads that would experience the 99th %ile" is mathematically suspect. It directly contradicts what a percentile is. By definition, at 99th percentile, if I have 100 page loads, the one with the worst latency would be over the 99th percentile. That's not 85.2%, 87.1%, 67.6%, etc. The formula shown in that column makes no sense at all.
That's not what that column is supposed to mean afaict. The way I read it is it's showing that if the website requires hundreds of different parallel backend service calls to serve the page load, what's the probability a page load hits the p99 instrumentation latency? We have a similar chart at my job to illustrate the point that high p99 latency on a backend service doesn't mean only 1% of end-user page loads are af…
Re: eBPF-based auto-instrumentation outperforms manual instrumentation
#50Earlier quoted context omitted.
That’s a very big assumption, at least for Go based applications.
I don't think it's unreasonable, you need a Context to make a gRPC call and you get one when handling a gRPC call. It usually doesn't get lost in between.