-
Notifications
You must be signed in to change notification settings - Fork 0
Introduce app network tracer #95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Giuseppe Ognibene <[email protected]>
|
can we introduce another label of |
|
765fa58 to
b44c080
Compare
| return segment, bit | ||
| } | ||
|
|
||
| func (p *Tracer) buildPidFilter() []uint64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we need all this pidfilter related code? aren't we reusing the generictracer's one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As we discussed, the appnetworktracer and the generictracer modify the same PID map and can be attacked together or alone, so I simply added a check in the attacher: I check that the generictracer is present and pass the flag to the appnetworktracer. This way, the various methods that work on the PID map check whether the generictracer is already present.
Not use if this is the best idea
b44c080 to
af85350
Compare
exported with prom and otel Signed-off-by: Giuseppe Ognibene <[email protected]>
af85350 to
28c5c07
Compare
Signed-off-by: Giuseppe Ognibene <[email protected]>
28c5c07 to
2c391e5
Compare
add iters in the appnetworktracer Signed-off-by: Giuseppe Ognibene <[email protected]>
This PR introduces the
appnetworktracer, which allows you to attach custom ebpf probes to calculate network metrics related to an instrumented service.The first metric implemented is the TCP RTT using
tcp_close.If the event is of interest to us, it is sent to userspace using a different ringbuf than the generic one.
The event is then converted to
Spanand the already established pipeline (decorator and others) is used.I still have a few things to fix, but this is the data flow from kernel -> user -> export.
This is an example of metric: