perfdata visualization drove me made for such a long time (somehow I want my oldschool PNP with RRD back ).
I found already some threads here about Graphite vs. InfluxDB so I decided to use Graphite-Carbon as āBackendā and somehow I managed to get GraphiteWriter running quite well and easy.
What drove me mad is the frontend partā¦and honestly I some (not updated?) documentations made it even worse. So now I want to ask you about your experience and opinions:
As I read you can also use Grafana as a frontend / renderer for Graphite-Carbone. By trying this out I always get stucked by letting Grafana access my Carbon/Whisper data directly and it seems that only http / proxy is allowed in latest versions. So I would have to set up Graphite-Web anyway to put Grafana in front of it again.
So: why should I do that? If I have to install Graphite-Web for Grafana anyway, why not using the Graphite icingaweb2-module directly? Is there any advantage (only regarding icingaweb2 functions) for Grafana?
Did anybody of you managed to let Grafana access Graphite-Carbon directly without Graphite-Web in front?
From my perspective both, Grafana (and the Icinga Web Grafana Module) and the Icinga Module for Graphite have their pros and cons. It depends on your workflow and your requirements what suits best.
Independently on what you use, Iād recommend to use Graphite-Web in any case. There are implementations like graphite-api that provide only the api call without the web interface. In my experience I did not find anything that could fully replace Graphite-Web without losing performance and being maintained.
Icinga Module for Graphite
Built to be integrated seamlessly into the Icinga web interface.
Pros
Fast (well, as fast as your Graphite-Web allows it to be)
Use pre-defined graph templates
Create your own templates (You can use all functions provided by Graphite-Web)
Graphs are displayed automatically at every monitoring object. The template that is used depends on the check command. If no template for the check command is defined, a default template will be used to display at least some data.
Easy installation, not much configuration hassle, basically you only configure your Graphite Web endpoint
Cons
Templates are created in text files, thereās no GUI like in Grafana
You can use everything to create graphs that Graphite-Web provides, but nothing more.
Grafana (and the Icinga Module for Grafana)
Grafana is a great tool to create graphs and dashboards with support for many different backends, where Graphite happens to be one of them. The Icinga module for Graphite brings Grafana into the Icinga world by showing graphs directly at the host/service level.
Pros
Many many many options to create graphs and dashboards. Thereās not many tools that have a comparable feature set like Grafana.
Nice features to change time-frames dynamically and dig deeper into problems by using multiple dashboards and comparing charts.
You can use all of those features, once you have your perfect graphs you can add them to Icinga
Cons
Configuration may take longer, you will have to map the Grafana panels to you check commands (but there are some nice default dashboards!)
Itās slower than the compared Graphite Module, since it has to take the extra step of rendering through Grafana
Conclusion
If you only want to see some graphs in Icinga Web, but you donāt aim to do a lot of debugging based on those graphs: go with the Icinga Module for Graphite.
If you need more functionality when creating and managing charts: go with Grafana and the Grafana Module
Iāve seen many installations where both are used. The Graphite Module for the āquick viewā and Grafana for the debugging process.