pesos / grofer

A system and resource monitoring tool written in Golang!
Apache License 2.0
352 stars 52 forks source link

[FEATURE REQ] Kubernetes Monitoring and Dashboard #128

Open anirudhRowjee opened 3 years ago

anirudhRowjee commented 3 years ago

Is your feature request related to a problem? Please describe. Kubernetes Monitoring and Dashboarding

Describe the solution you'd like I believe a lot of the existing architecture of Grofer can be re-used to show data relevant to Kubernetes. A simple dashboard can be implemented, with support for features including (but not limited to)

  1. Listing all available pods, nodes, and similar data sources made available by the Kubernetes API
  2. Pod-Specific Actions on keypress (a la grofer proc)
  3. Charts for available metrics
  4. In-Memory time-series storage of data collected (could perhaps make use of some of the existing capabilities of the export feature)

Describe alternatives you've considered if any The tool of choice for this appears to be k9s, but I believe the learning outcome of implementing this here would be worth the effort.

Additional context None.

I would love to work on this feature if it's approved! Thank you for the time.

Samyak2 commented 3 years ago

Sounds like a great idea! Do you want to work on it?

@MadhavJivrajani thoughts?

MadhavJivrajani commented 3 years ago

Huge +1 Happy to help in any way possible :)

anirudhRowjee commented 3 years ago

I will! Thank you for the opportunity :D

anirudhRowjee commented 2 years ago

I'm considering using the go-client library to scrape kubernetes metrics, and limiting support to running grofer from outside the cluster, so as to have a simpler baseline goal to approach.

I'd love to hear the maintainers' feedback on this! :smile:

anirudhRowjee commented 2 years ago

I'd also love to add some documentation on navigating the codebase and a document explaining the new architecture! DO let me know if you want me to open a new issue / PR just for this.

MadhavJivrajani commented 2 years ago

I'm considering using the go-client library to scrape kubernetes metrics, and limiting support to running grofer from outside the cluster, so as to have a simpler baseline goal to approach.

I'd love to hear the maintainers' feedback on this! smile

@anirudhRowjee you have the right idea. client-go can be used to interact with the Kubernetes API. However, for the purposes of scraping metrics, there are a few things to keep in mind:

client-go is the perfect choice to get the available resources in the cluster such as the Pods, deployments etc.

MadhavJivrajani commented 2 years ago

I'd also love to add some documentation on navigating the codebase and a document explaining the new architecture! DO let me know if you want me to open a new issue / PR just for this.

Absolutely! Go for it. Feel free to open a new issue about this.

MadhavJivrajani commented 2 years ago

@anirudhRowjee fyi - https://github.com/vladimirvivien/ktop