prometheus / node_exporter

Exporter for machine metrics
https://prometheus.io/
Apache License 2.0
11.25k stars 2.37k forks source link

Have you considered adding support for ebpf? #3086

Closed novohool closed 2 months ago

novohool commented 3 months ago

some ebpf agent: https://github.com/deepflowio/deepflow/tree/main/agent https://github.com/cloudflare/ebpf_exporter

Gawnz1 commented 2 months ago

If technically possible, it will be much appreciated. Hoping to have some comments also.

SuperQ commented 2 months ago

Unforunately, eBPF requires elevated privileges. By policy the node_exporter is intended to run without elevated privileges.

This is why separate exporters like the ebpf_exporter exist.

Prometheus is an agent-less monitoring system. This is intentional and for many good reasons. By having separate tools for separate tasks things like least privilege can be applied. It also allows for different release cycles for different components.

novohool commented 2 months ago

node_exporter

create a new project node_ebpf_exporter

You can consider creating a new project to support ebpf. Cloud vendors may consider the minimum permissions, but users may consider more powerful functions.

SuperQ commented 2 months ago

What's wrong with the existing cloudflare ebpf_exporter?

Gawnz1 commented 2 months ago

I personally don't see anything wrong. I just wanted to see it it is possible. For me using only one exporter keeps the things more easy and organised, but as you said in above comment, a cloudflare one should do the work.

novohool commented 2 months ago

What's wrong with the existing cloudflare ebpf_exporter?

As a maintainer, I am annoyed by the large number of exporters. Previously, a node deployed one type of exporter with 1,000 pods. Now there are seven or eight of this type, which means that I have to deploy 7,000 to 10,000 pods in a cluster to meet the functional requirements. This takes up a lot of resources. We need fewer exporters to do this.

SuperQ commented 2 months ago

I understand that you find it "annoying".

The entire Prometheus ecosystem is intentionally designed around multiple exporters for very good reasons.

Having few big / fat exporters / agents has a lot of unintended consequences and downsides.

I do not have time to explain the decades of combined experience that went into the Prometheus monitoring design here.

Feel free to debate this on the Prometheus community developers channels.