Why using Grafana module with Graphite instead of Graphite module?

Hi guys,

perfdata visualization drove me made for such a long time (somehow I want my oldschool PNP with RRD back :wink:).
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?

Thanks a lot,
M.

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.

2 Likes