Grafana vs InfluxDB vs Prometheus

Need advice about which tool to choose?Ask the StackShare community!

Grafana

17.9K
14.3K
+ 1
415
InfluxDB

1K
1.2K
+ 1
175
Prometheus

4.3K
3.8K
+ 1
239

Grafana vs InfluxDB vs Prometheus: What are the differences?

Introduction

Grafana, InfluxDB, and Prometheus are popular tools used in the monitoring and observability of software systems. While they have similar functionalities, there are key differences that set them apart.

  1. Data Storage and Retrieval: InfluxDB is a time-series database designed specifically for handling time-stamped data. It stores data efficiently in a compressed format and allows fast retrieval using time-based queries. Grafana, on the other hand, is a visualization tool and does not provide data storage capabilities. Prometheus is a specialized time-series database that collects data through a pull mechanism, making it suitable for monitoring dynamic environments.

  2. Data Aggregation and Processing: InfluxDB supports advanced data processing capabilities such as downsampling, retention policies, and continuous queries, enabling efficient analysis and aggregation of time-series data. Grafana, being a visualization tool, does not have built-in data processing capabilities. Prometheus uses its own query language called PromQL, which allows flexible data aggregation and processing, including label-based selection and mathematical operations.

  3. Alerting and Notification: Grafana provides comprehensive alerting capabilities, allowing users to define threshold-based rules and receive notifications through various channels like email, Slack, and PagerDuty. InfluxDB lacks native alerting functionality but can be integrated with other tools or Grafana to achieve alerting. Prometheus has a powerful alerting system integrated into its core, enabling users to define complex alert rules and send notifications through various channels.

  4. Scalability and Clustering: InfluxDB provides clustering capabilities through its Enterprise Edition, allowing multiple InfluxDB nodes to work together in a high-availability setup. Grafana, as a visualization tool, does not require scaling or clustering as it primarily fetches data from other data sources. Prometheus supports horizontal scalability by using a federation mechanism where multiple Prometheus instances can be connected together to aggregate and query data.

  5. Metrics Collection: Grafana focuses on visualization and relies on data sources like InfluxDB and Prometheus to collect metrics. InfluxDB provides a native Telegraf agent for collecting metrics from various sources and sending them to InfluxDB. Prometheus has its own Prometheus server that collects metrics from instrumented applications using client libraries and exporters.

  6. Community and Ecosystem: Grafana has a large and active community of users, with a rich ecosystem of plugins and integrations supporting various data sources. InfluxDB has a smaller but growing community, with a focus on time-series use cases and a growing number of integrations. Prometheus has a vibrant community with a wide range of exporters and integrations, making it a popular choice for monitoring and alerting in Kubernetes environments.

In summary, Grafana is a powerful visualization tool, InfluxDB is a scalable time-series database, and Prometheus is a comprehensive monitoring and alerting system. Each tool has its own strengths and focuses on different aspects of the monitoring and observability stack.

Advice on Grafana, InfluxDB, and Prometheus
Susmita Meher
Senior SRE at African Bank · | 4 upvotes · 827.1K views
Needs advice
on
GrafanaGrafanaGraphiteGraphite
and
PrometheusPrometheus

Looking for a tool which can be used for mainly dashboard purposes, but here are the main requirements:

  • Must be able to get custom data from AS400,
  • Able to display automation test results,
  • System monitoring / Nginx API,
  • Able to get data from 3rd parties DB.

Grafana is almost solving all the problems, except AS400 and no database to get automation test results.

See more
Replies (1)
Sakti Behera
Technical Specialist, Software Engineering at AT&T · | 3 upvotes · 612.6K views
Recommends
on
GrafanaGrafanaPrometheusPrometheus

You can look out for Prometheus Instrumentation (https://prometheus.io/docs/practices/instrumentation/) Client Library available in various languages https://prometheus.io/docs/instrumenting/clientlibs/ to create the custom metric you need for AS4000 and then Grafana can query the newly instrumented metric to show on the dashboard.

See more
Sunil Chaudhari
Needs advice
on
MetricbeatMetricbeat
and
PrometheusPrometheus

Hi, We have a situation, where we are using Prometheus to get system metrics from PCF (Pivotal Cloud Foundry) platform. We send that as time-series data to Cortex via a Prometheus server and built a dashboard using Grafana. There is another pipeline where we need to read metrics from a Linux server using Metricbeat, CPU, memory, and Disk. That will be sent to Elasticsearch and Grafana will pull and show the data in a dashboard.

Is it OK to use Metricbeat for Linux server or can we use Prometheus?

What is the difference in system metrics sent by Metricbeat and Prometheus node exporters?

Regards, Sunil.

See more
Replies (2)
Matthew Rothstein
Recommends
on
PrometheusPrometheus

If you're already using Prometheus for your system metrics, then it seems like standing up Elasticsearch just for Linux host monitoring is excessive. The node_exporter is probably sufficient if you'e looking for standard system metrics.

Another thing to consider is that Metricbeat / ELK use a push model for metrics delivery, whereas Prometheus pulls metrics from each node it is monitoring. Depending on how you manage your network security, opting for one solution over two may make things simpler.

See more
Recommends
on
InstanaInstana

Hi Sunil! Unfortunately, I don´t have much experience with Metricbeat so I can´t advise on the diffs with Prometheus...for Linux server, I encourage you to use Prometheus node exporter and for PCF, I would recommend using the instana tile (https://www.instana.com/supported-technologies/pivotal-cloud-foundry/). Let me know if you have further questions! Regards Jose

See more
Needs advice
on
InfluxDBInfluxDBMongoDBMongoDB
and
TimescaleDBTimescaleDB

We are building an IOT service with heavy write throughput and fewer reads (we need downsampling records). We prefer to have good reliability when comes to data and prefer to have data retention based on policies.

So, we are looking for what is the best underlying DB for ingesting a lot of data and do queries easily

See more
Replies (3)
Yaron Lavi
Recommends
on
PostgreSQLPostgreSQL

We had a similar challenge. We started with DynamoDB, Timescale, and even InfluxDB and Mongo - to eventually settle with PostgreSQL. Assuming the inbound data pipeline in queued (for example, Kinesis/Kafka -> S3 -> and some Lambda functions), PostgreSQL gave us a We had a similar challenge. We started with DynamoDB, Timescale and even InfluxDB and Mongo - to eventually settle with PostgreSQL. Assuming the inbound data pipeline in queued (for example, Kinesis/Kafka -> S3 -> and some Lambda functions), PostgreSQL gave us better performance by far.

See more
Recommends
on
DruidDruid

Druid is amazing for this use case and is a cloud-native solution that can be deployed on any cloud infrastructure or on Kubernetes. - Easy to scale horizontally - Column Oriented Database - SQL to query data - Streaming and Batch Ingestion - Native search indexes It has feature to work as TimeSeriesDB, Datawarehouse, and has Time-optimized partitioning.

See more
Ankit Malik
Software Developer at CloudCover · | 3 upvotes · 348.2K views
Recommends
on
Google BigQueryGoogle BigQuery

if you want to find a serverless solution with capability of a lot of storage and SQL kind of capability then google bigquery is the best solution for that.

See more
Needs advice
on
DatadogDatadogInfluxDBInfluxDB
and
PrometheusPrometheus

So, I am working in a big company where they have multiple different microservices running that are written in Golang. I am currently searching for a technology that can give me all the metric data from the microservices. What time-series databases would you recommend? or which databases would you recommend to further investigate? I appreciate any input.

See more
Replies (3)
Recommends
on
InfluxDBInfluxDB

Each of these tools can help you with micro service workload and work well. I will try to go through some good, bad and ugly of each.

Datadog has an easy setup and time to get something tangible out of it. The cost model is by host so this is something to take into consideration how it will affect your use case. Also as a large organization at some point you will probably want control over some/all of your telemetry data to run your own ML or AI processes. With Datadog you this can be difficult as you will need to create processes outside of its closed eco system to get Raw metrics.

Prometheus is a great tool. It also has a fairly straight forward setup especially with Kubernetes. If you are running your micro services in k8s then this is going to get used one way or another; it is a first class citizen there with heavy utilization of K8s API. I also like the fact that Kubernetes architecture is easy to understand and that it utilizes Grafana for the visualization engine. Prometheus at scale can be done but it is a pain. Especially with a distributed infrastructure across multiple workloads.

Influxdb (TICK stack in v1) is known for its scalability and flexibility as a time series database. Telegraf is the main input/data-forwarder of the architecture and is completely decoupled from the database as are the other 3 components of the stack. Influx has made it very easy to just use one component on its own. I have worked on stacks that just used telegraf for ingestion into Kinesis or another data stream. I have also worked on stacks that used Influx database but used a different ETL process for analyzing the data in realtime instead of using their v1 architectures Kapacitor query engine. Influx database is a great performing time series database that in version 2 runs within kubernetes and utilizes Flux as the query language. Flux is a nice query language that is fairly easy to learn and has a lot of flexibility. As a last positive note Telegraf is written in Go so that would fit well with your current team.

The difficulties of Influx are that it is hard to get something really tangible out of it. Initial time to see something is fast but all the other work involved is a lot. You also have to understand the architecture well. The management of Influx can be cumbersome but it can scale up better than the other two when Datadogs cost is taken into consideration. They have a lot of API hooks in their V1 enterprise edition to wire and configure it. They do offer a mange service to offload this cost until later.

My overall choice here is probably to go with some of the influx as you can rip and/or add components as needed into the flow. Eventually you will probably want to run an ML process within there (can be done within Kapacitor but of course can also use your cloud provider here too) and this gives you the flexibility to do it anywhere. I would still go through prometheus because you will most likely use it also, but it does have forwarders to Influxdb so still fits.

See more
Recommends
on
GrafanaGrafana

We're running Prometheus/Alertmanager/Grafana across our whole company for any monitoring and metrics requirement, from the infrastructure layer all the way up to Springboot endpoint services, the prometheus exporter / scraping approach works pretty well for us. It's really easy to setup and more importantly; to maintain it without much effort, all the Prometheus configs get automatically created through Terraform outputs and Ansible jobs. Combine it with Grafana and you're smiling.

See more
Dmitry Mukhin
Engineer at Uploadcare · | 2 upvotes · 13.3K views
Recommends
on
DatadogDatadog
at

We're moving towards Prometheus from Datadog at this moment. Main driving force is TOC at the moment.

Datadog is great until it becomes too expensive.

See more
Mat Jovanovic
Head of Cloud at Mats Cloud · | 3 upvotes · 755.1K views
Needs advice
on
DatadogDatadogGrafanaGrafana
and
PrometheusPrometheus

We're looking for a Monitoring and Logging tool. It has to support AWS (mostly 100% serverless, Lambdas, SNS, SQS, API GW, CloudFront, Autora, etc.), as well as Azure and GCP (for now mostly used as pure IaaS, with a lot of cognitive services, and mostly managed DB). Hopefully, something not as expensive as Datadog or New relic, as our SRE team could support the tool inhouse. At the moment, we primarily use CloudWatch for AWS and Pandora for most on-prem.

See more
Replies (2)
Recommends
on
DatadogDatadog

I worked with Datadog at least one year and my position is that commercial tools like Datadog are the best option to consolidate and analyze your metrics. Obviously, if you can't pay the tool, the best free options are the mix of Prometheus with their Alert Manager and Grafana to visualize (that are complementary not substitutable). But I think that no use a good tool it's finally more expensive that use a not really good implementation of free tools and you will pay also to maintain its.

See more
Lucas Rincon
Recommends
on
InstanaInstana

this is quite affordable and provides what you seem to be looking for. you can see a whole thing about the APM space here https://www.apmexperts.com/observability/ranking-the-observability-offerings/

See more
Needs advice
on
GrafanaGrafana
and
KibanaKibana

From a StackShare Community member: “We need better analytics & insights into our Elasticsearch cluster. Grafana, which ships with advanced support for Elasticsearch, looks great but isn’t officially supported/endorsed by Elastic. Kibana, on the other hand, is made and supported by Elastic. I’m wondering what people suggest in this situation."

See more
Replies (7)
Recommends
on
GrafanaGrafana
at

For our Predictive Analytics platform, we have used both Grafana and Kibana

Kibana has predictions and ML algorithms support, so if you need them, you may be better off with Kibana . The multi-variate analysis features it provide are very unique (not available in Grafana).

For everything else, definitely Grafana . Especially the number of supported data sources, and plugins clearly makes Grafana a winner (in just visualization and reporting sense). Creating your own plugin is also very easy. The top pros of Grafana (which it does better than Kibana ) are:

  • Creating and organizing visualization panels
  • Templating the panels on dashboards for repetetive tasks
  • Realtime monitoring, filtering of charts based on conditions and variables
  • Export / Import in JSON format (that allows you to version and save your dashboard as part of git)
See more
Recommends
on
KibanaKibana

I use both Kibana and Grafana on my workplace: Kibana for logging and Grafana for monitoring. Since you already work with Elasticsearch, I think Kibana is the safest choice in terms of ease of use and variety of messages it can manage, while Grafana has still (in my opinion) a strong link to metrics

See more
Bram Verdonck
Recommends
on
GrafanaGrafana
at

After looking for a way to monitor or at least get a better overview of our infrastructure, we found out that Grafana (which I previously only used in ELK stacks) has a plugin available to fully integrate with Amazon CloudWatch . Which makes it way better for our use-case than the offer of the different competitors (most of them are even paid). There is also a CloudFlare plugin available, the platform we use to serve our DNS requests. Although we are a big fan of https://smashing.github.io/ (previously dashing), for now we are starting with Grafana .

See more
Recommends
on
KibanaKibana

I use Kibana because it ships with the ELK stack. I don't find it as powerful as Splunk however it is light years above grepping through log files. We previously used Grafana but found it to be annoying to maintain a separate tool outside of the ELK stack. We were able to get everything we needed from Kibana.

See more
Recommends
on
KibanaKibana

Kibana should be sufficient in this architecture for decent analytics, if stronger metrics is needed then combine with Grafana. Datadog also offers nice overview but there's no need for it in this case unless you need more monitoring and alerting (and more technicalities).

See more
Recommends
on
GrafanaGrafana

I use Grafana because it is without a doubt the best way to visualize metrics

See more
Povilas Brilius
PHP Web Developer at GroundIn Software · | 0 upvotes · 627.9K views
Recommends
on
KibanaKibana
at

@Kibana, of course, because @Grafana looks like amateur sort of solution, crammed with query builder grouping aggregates, but in essence, as recommended by CERN - KIbana is the corporate (startup vectored) decision.

Furthermore, @Kibana comes with complexity adhering ELK stack, whereas @InfluxDB + @Grafana & co. recently have become sophisticated development conglomerate instead of advancing towards a understandable installation step by step inheritance.

See more
Decisions about Grafana, InfluxDB, and Prometheus
Benoit Larroque
Principal Engineer at Sqreen · | 2 upvotes · 143K views

I chose TimescaleDB because to be the backend system of our production monitoring system. We needed to be able to keep track of multiple high cardinality dimensions.

The drawbacks of this decision are our monitoring system is a bit more ad hoc than it used to (New Relic Insights)

We are combining this with Grafana for display and Telegraf for data collection

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Grafana
Pros of InfluxDB
Pros of Prometheus
  • 89
    Beautiful
  • 68
    Graphs are interactive
  • 57
    Free
  • 56
    Easy
  • 34
    Nicer than the Graphite web interface
  • 26
    Many integrations
  • 18
    Can build dashboards
  • 10
    Easy to specify time window
  • 10
    Can collaborate on dashboards
  • 9
    Dashboards contain number tiles
  • 5
    Open Source
  • 5
    Integration with InfluxDB
  • 5
    Click and drag to zoom in
  • 4
    Authentification and users management
  • 4
    Threshold limits in graphs
  • 3
    Alerts
  • 3
    It is open to cloud watch and many database
  • 3
    Simple and native support to Prometheus
  • 2
    Great community support
  • 2
    You can use this for development to check memcache
  • 2
    You can visualize real time data to put alerts
  • 0
    Grapsh as code
  • 0
    Plugin visualizationa
  • 59
    Time-series data analysis
  • 30
    Easy setup, no dependencies
  • 24
    Fast, scalable & open source
  • 21
    Open source
  • 20
    Real-time analytics
  • 6
    Continuous Query support
  • 5
    Easy Query Language
  • 4
    HTTP API
  • 4
    Out-of-the-box, automatic Retention Policy
  • 1
    Offers Enterprise version
  • 1
    Free Open Source version
  • 47
    Powerful easy to use monitoring
  • 38
    Flexible query language
  • 32
    Dimensional data model
  • 27
    Alerts
  • 23
    Active and responsive community
  • 22
    Extensive integrations
  • 19
    Easy to setup
  • 12
    Beautiful Model and Query language
  • 7
    Easy to extend
  • 6
    Nice
  • 3
    Written in Go
  • 2
    Good for experimentation
  • 1
    Easy for monitoring

Sign up to add or upvote prosMake informed product decisions

Cons of Grafana
Cons of InfluxDB
Cons of Prometheus
  • 1
    No interactive query builder
  • 4
    Instability
  • 1
    Proprietary query language
  • 1
    HA or Clustering is only in paid version
  • 12
    Just for metrics
  • 6
    Bad UI
  • 6
    Needs monitoring to access metrics endpoints
  • 4
    Not easy to configure and use
  • 3
    Supports only active agents
  • 2
    Written in Go
  • 2
    TLS is quite difficult to understand
  • 2
    Requires multiple applications and tools
  • 1
    Single point of failure

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Grafana?

Grafana is a general purpose dashboard and graph composer. It's focused on providing rich ways to visualize time series metrics, mainly though graphs but supports other ways to visualize data through a pluggable panel architecture. It currently has rich support for for Graphite, InfluxDB and OpenTSDB. But supports other data sources via plugins.

What is InfluxDB?

InfluxDB is a scalable datastore for metrics, events, and real-time analytics. It has a built-in HTTP API so you don't have to write any server side code to get up and running. InfluxDB is designed to be scalable, simple to install and manage, and fast to get data in and out.

What is Prometheus?

Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.

Need advice about which tool to choose?Ask the StackShare community!

Jobs that mention Grafana, InfluxDB, and Prometheus as a desired skillset
Postman
San Francisco, United States
What companies use Grafana?
What companies use InfluxDB?
What companies use Prometheus?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Grafana?
What tools integrate with InfluxDB?
What tools integrate with Prometheus?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Dec 8 2020 at 5:50PM

DigitalOcean

GitHubMySQLPostgreSQL+11
3
2434
May 21 2020 at 12:02AM

Rancher Labs

KubernetesAmazon EC2Grafana+12
6
1526
PythonDockerKubernetes+14
12
2648
Node.jsnpmKubernetes+6
1
1478
Jun 26 2018 at 3:26AM

Twilio SendGrid

GitHubDockerKafka+10
11
10021
JavaScriptGitHubNode.js+29
14
13617
What are some alternatives to Grafana, InfluxDB, and Prometheus?
Datadog
Datadog is the leading service for cloud-scale monitoring. It is used by IT, operations, and development teams who build and operate applications that run on dynamic or hybrid cloud infrastructure. Start monitoring in minutes with Datadog!
Kibana
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elasticsearch.
Graphite
Graphite does two things: 1) Store numeric time-series data and 2) Render graphs of this data on demand
Splunk
It provides the leading platform for Operational Intelligence. Customers use it to search, monitor, analyze and visualize machine data.
Netdata
Netdata collects metrics per second & presents them in low-latency dashboards. It's designed to run on all of your physical & virtual servers, cloud deployments, Kubernetes clusters & edge/IoT devices, to monitor systems, containers & apps
See all alternatives