prometheus / node_exporter

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

Replace netstat parsers with procfs netstat parsers #2336

Open nikakis opened 2 years ago

nikakis commented 2 years ago

Replace this parsers in node exporter with this ones from procfs.

nikakis commented 2 years ago

@discordianfish Can you please assign this to me, i will start working on it asap.

nikakis commented 2 years ago

@discordianfish @SuperQ I think we should consider refactoring the types of the metrics on the procfs side here, here and here from float64 to *float64 because we need to have a value only for the metrics provided by the current system. And afterwards check on the node_exporter side here if the value is not nil and feed it to the channel.

What do you think about this?

discordianfish commented 2 years ago

I think this is reasonable

jcpunk commented 1 year ago

Any progress on getting this resolved?

nikakis commented 1 year ago

@jcpunk Yes, I will work on it during the next days.

guerzon commented 11 months ago

Hey @nikakis, any chance I can take this issue? I would like to give this a shot.

SuperQ commented 11 months ago

Go for it.

exitflynn commented 8 months ago

hi, i've been exploring and using prometheus exporters as of late and would love to contribute some fixes etc to this project (learning stuff along the way). I think no one's actively working on this issue right now and would like to take this up.

I have a question about this issue tho: I've looked into the relevant parts of both the codebases and read up about the proc filesystem and it seems like the mentioned prometheus/procfs netstat parsers currently require a PID and are process specific, as in they're only made to parse /proc/<pid>/net/netstat and not the overall /proc/net/netstat which is what the node_exporter currently uses. And I think these two can vary if the process is in a different network namespace?

p.s. this is my first time learning about these concepts and contributing to Golang / cloud projects in general so there are chances I might've missed something

exitflynn commented 4 months ago

I looked into the code and procfs more and figured out what I was missing but in doing so I realised, a lot of work done in #2360 holds up and can be proceeded with now that https://github.com/prometheus/procfs/pull/464 is merged. I wonder if you'd be available for this, @nikakis? I'd be available to take over otherwise, let me know!

nikakis commented 1 month ago

Yes go ahead please. I don't have time to work on this right now.