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.
- 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
- 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.
- 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
- 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
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.