Grafana | Opensource Cloud monitoring
Grafana allows us to query, visualize, alert on, and understand our metrics no matter where they are stored. Create, explore, and share beautiful dashboards with our team and foster a data-driven culture. Grafana is primarily used to visualize our time-series database data into meaningful charts from which we can draw insights. Grafana can be used to build an open-source stack for APM, time-series, and logs monitoring. Grafana supports a huge list of data sources including (but not limited to) AWS CloudWatch, Microsoft SQL server, Prometheus, MySQL, InfluxDB, and many others.
Key Features of Grafana
Grafana is an open-source dashboard tool. The biggest feature of Grafana is that we can use it to combine different data sources and then visualize data in a central dashboard. It also comes with admin features for effective collaboration with the team.
Some of the key features of Grafana are:
- Flexible dashboards
Grafana provides a lot of panels that can be used for building dashboards. To build dashboards that suit our needs, we can choose from multiple chart types like histograms, heatmaps, pie charts, etc. The panel editor makes it easy to configure, customize and explore all of our panels with a consistent UI for setting data options across all of our visualizations.
Grafana provides an extensive set of plugins to extend Grafana capabilities. Some of the plugins that Grafana offers are:
- Data Source plugins
- App plugins
- Panel Plugins
We can extend Grafana’s functionality with plugins that offer extra tools, visualizations, and more. Popular examples include Worldmap Panel (which superimposes data on a map), Zabbix (which integrates with Zabbix metrics), and Influx Admin Panel (which enables database creation or lets you add users). These are just a couple of examples and there are many others besides them. Write a little code and Grafana can visualize anything that produces a timestamp. Also, Grafana Enterprise customers can access additional plugins that facilitate integrations with Datadog, New Relic, Splunk, and others.
This Grafana feature lets us mark graphs, which is particularly helpful if we need to correlate data when something misbehaves. We can control-click and type on a graph to create your annotations manually, or data can be fetched from any source to populate them. A good use case would be automatically creating annotations at the time of releases. If we were to start seeing errors a little while after a new release, we could go back to our annotations and check if the errors correlate. This kind of automation is possible with the Grafana HTTP API. Lots of Grafana’s biggest customers use it for a wide range of tasks, with a common one being to set up databases and add users. This is an alternative to provisioning for automation, and there’s more you can do with it. For instance, DigitalOcean’s team used the API to include a snapshot feature that helps them to review dashboards.
4. Teams and permissions
Where an organization has one instance of Grafana and several teams, they usually like to have the option to enforce some dashboard segregation. It used to be the case that this wasn’t possible because Grafana automatically made everyone’s dashboards accessible to everyone else. The later edition of multi-tenant mode meant that users could switch organizations but couldn’t share dashboards. Some judicious hacks could enable both, so Grafana created an easier route to achieving this. It’s now possible to create a team of users and then assign permissions on folders, Grafana dashboards, and so on, right down to the data source level for Grafana Enterprise users.
5. Alerting system
Grafana provides a central UI to set and manage alerts with a central UI. Grafana alerts can be sent through several different notifiers, including email, PagerDuty, Slack, or texts.
6. SQL data sources
Grafana natively supports SQL, which helps us graph any kind of data that might be held in an SQL database.
Transformations allow us to rename, summarize, combine, and perform calculations across different queries and data sources. For example, Transform non-time-series data into tables in seconds without any customization or additional overhead.
- Free and open-source with a huge open-source community for support
- Automatic service discovery and support for both push and pull metric scraping models
- Support for custom metrics; a huge number of exporters available to export metrics to Prometheus from different sources
- Complex and time-consuming to manage Prometheus instances; operational overhead if our staff is unfamiliar with the tool
- Need to manually configure and manage Prometheus exporters
- Manual setup required for graphs and alerts.