Boost Your Monitoring Stack: Add InfluxDB to Prometheus Node
By
Jessica Wachtel /
Developer
Jun 20, 2024
Navigate to:
Prometheus is the go-to observability tool for countless developers and organizations, and for good reason. The popular open source tool doesn’t require any up-front costs or result in vendor lock-in. Prometheus’ short on-ramp makes the technology well-suited for organizations looking to jump-start their cloud monitoring journey.
However, there is a downside to using Prometheus as the single source of truth for observability metrics. Prometheus was built for use as a single node. Many of the issues it faces are similar to challenges associated with all single-node tools. Though these are not reasons to avoid the software altogether, they render Prometheus unsuitable as the sole observability platform for mission-critical applications. But there is a solution. Adding InfluxDB to an existing stack will not change Prometheus’ workflow and will add enterprise-grade features such as data durability and high availability. The remainder of this article will focus on how Prometheus functions and how it can work with InfluxDB.
Prometheus: the basics
Prometheus is a metrics-based monitoring system that provides insight into connected systems and services. It collects and stores metrics as time series data, which is any data stored with a timestamp. This provides users with a better understanding of the metrics at a certain point in time. Prometheus provides a toolchain of libraries and server components that allow users to expose, collect, and record metrics.
Prometheus is natively compatible with nearly all tech stacks. It collects metrics by pulling them through an exposed HTTP endpoint that serves a text-based metrics transfer format understood by Prometheus. The text-based metrics format promotes seamless metrics collection, even when developers cannot use a dedicated client library for tracking and exposing metrics. Once the data lands in Prometheus, developers have deep insight into their system. Prometheus excels with real-time monitoring and short-term storage.
When it comes to alerting and dashboarding, open source dashboarding and alerting software Grafana is Prometheus’ go-to companion. Grafana helps both technical and non-technical people discover data insights. Grafana has easy to understand, ready-made dashboards that “just work” out of the box. Grafana also provides templates for developers looking to build custom dashboards. The Grafana/Prometheus connection is so popular, Grafana’s Prometheus community is one of its most mature.
Prometheus: the challenges
Prometheus is a single-node system. While there’s nothing inherently wrong with that, many of the features required for mission-critical, enterprise-level systems are lacking. Mission-critical applications require high availability and data durability, which a single node cannot provide. Prometheus doesn’t have any built-in data replication mechanisms that are mandatory for data durability. This means if any of the existing mechanisms or hard drives fail, users will encounter data loss.
Because Prometheus can’t guarantee high availability, it offers no assurances against unplanned downtime and does occasionally go down. This also causes unrecoverable data loss. Lastly, due to its size, Prometheus doesn’t scale well or offer any long-term storage. But there is a simple way to safeguard an application against all these issues. Add an instance of purpose-built time series database InfluxDB alongside Prometheus and turn the single node into a highly available, mission-critical, enterprise-grade observability system.
InfluxDB: the solution
InfluxDB is a durable, scalable, enterprise-grade time series database that works in tandem with Prometheus. Developers can add InfluxDB to an existing Prometheus stack without changing how Prometheus operates, and experience all the benefits of using Prometheus for mission-critical applications. Out-of-the-box InfluxDB offers high availability and data durability. InfluxDB scales alongside any workload and has no forced retention policies. InfluxDB persists data as highly compressed Apache Parquet files and stores data indefinitely in low-cost object storage.
InfluxDB is well suited to work alongside Prometheus because it’s one of the few databases that can support Prometheus data. Prometheus data is known for having high cardinality. InfluxDB 3.0 supports unbounded cardinality, meaning organizations can collect data in any resolution they prefer. Prometheus based insight by sending data to InfluxDB. Because Parquet is a universal standard, InfluxDB is the gateway between Prometheus and access to bleeding-edge data analysis tools available within the open data ecosystem.
InfluxDB offers self-hosted, on-prem, and both single and multi-tenant cloud products, all of which are compatible with Prometheus. Below are two options of how to add InfluxDB to an existing Prometheus stack without changing the data collection workflow.
Enterprise-grade stack
Writing data to both Prometheus and InfluxDB at the same time from the same source will alleviate any issues caused by single-node architecture. The InfluxDB backup guarantees high availability, redundancy, and scalability. Dual writing offers the safety of continued data collection if Prometheus experiences an outage during data collection. Without the backup, any outages will cause permanent data loss.
This architecture allows developers to query dashboards from InfluxDB or continue using Prometheus as their primary source for metrics. InfluxDB is compatible with Grafana, so organizations interested in querying both databases could do so in a single pane of glass. Developers can turn on the Grafana connection in a pinch if they’re using InfluxDB as a backup and need to review data when Prometheus is suddenly unavailable.
Backup Prometheus metrics
InfluxDB’s Telegraf plugin offers simple ingestion of Prometheus data into InfluxDB.
Sending data directly from Prometheus to InfluxDB offers more data durability and long-term storage than using Prometheus alone. It does not, however, prevent lost data if Prometheus becomes suddenly unavailable. Developers can also send Prometheus metrics to InfluxDB in the enterprise grade stack build.
Prometheus and InfluxDB: better together
Adding InfluxDB to a Prometheus stack will round out Prometheus’s rough edges without changing the way organizations view and analyze data. Plenty of resources exist to help get the most out of InfluxDB and Prometheus. Learn more about InfluxDB here. Learn more about the InfluxDB’s Prometheus Telegraf plugin here.
Ready to get started? Sign up for a free cloud account or contact sales.