Best of 2020: 6 Kubernetes Prometheus Alternatives

As we close out 2020, we at Container Journal wanted to highlight the five most popular articles of the year. Following is the fifth in our series of the Best of 2020.

Monitoring helps you ensure that your Kubernetes applications run smoothly and troubleshoot any problems that may arise. Prometheus is a popular open source monitoring tool that many companies use to monitor their IT infrastructure. However, there are many other monitoring tools available out there. This article reviews six alternatives to Kubernetes Prometheus monitoring.

What Is Prometheus?

Prometheus is an open source monitoring system originally built at SoundCloud. It’s designed to monitor multi-dimensional data collection and querying. The Prometheus server has its own standalone unit that does not rely on network storage or external services; as a result, Prometheus doesn’t require a lot of additional infrastructure or software.

Prometheus’ main benefits include tight integration with Kubernetes, many available exporters and libraries, and fast query language and API. Prometheus’ main drawbacks include simplified, constrained data model, limited granularity with the pulled-based model and lack of encryption.

6 Great Alternatives to Prometheus

The following list reviews six alternatives for monitoring Kubernetes with Prometheus. Each tool has its own benefits and drawbacks. Let’s review the main features of each tool.

1. GrafanaGrafana homepage

Grafana is an open source platform used for visualization, monitoring and analysis of metrics. The main focus of Grafana is time-series analytics. Grafana can display analyzed data through a wide variety of graph options including line graphs, heatmaps and bar graphs. You get alerts when a monitored metric exceeds a predefined threshold.

Key features include:

  • Alerting—You can get alerts through different channels including SMS, email, Slack or PagerDuty. If you prefer other channels of communication, you can create your own notifiers with a bit of code.
  • Dashboard templating—Templating enables you to create dashboards that you can reuse for multiple use cases. For example, you can use the same dashboard for a production server and a test server.
  • Provisioning—You can automate everything in Grafana with scripts. For example, you can automatically spin up Grafana and a new Kubernetes cluster with a script that contains the IP address, server, and data sources preset.
  • Annotations—Useful for data correlation in case something goes wrong. You can create the annotations manually by adding text to the graph or you can fetch data from any data source.

2. cAdvisorcAdvisor logo

cAdvisor collects, processes and exports performance and resource usage information about running containers. cAdvisor has native support for Kubernetes because it is integrated into the Kubelet binary.

Key features include:

  • Auto-discovery—Automatically discovers all containers in a given node and collects statistics including memory, CPU, network and filesystem usage.
  • Storage plugins—Exports stats to different storage plugins such as Elasticsearch, and InfluxDB.
  • Overall machine usage—Provides the overall machine usage by analyzing the ‘root’ container on the machine.
  • Web-UI—You can view metrics on a Web-UI that shows live information about all containers on the machine.

3. fluent

fluentd homepage

Fluentd Fluentd separates data sources from backend systems by providing a unified logging layer in between. The logging layer enables you to collect many types of logs as they are generated.

Key features include:

  • JSON data structure—Enables you to unify all log data processing aspects such as buffering, filtering and outputting logs across different sources.
  • Pluggable architecture—A flexible plugin system enables you to extend the functionality of Fluentd by connecting multiple data sources and outputs.
  • System resources—Fluentd instance runs on 30MB to 40MB of memory and can process 13,000 events per second. You can use the Fluent Bit lightweight forwarder if you need more memory.
  • Reliability—Supports file-based and memory buffering to prevent data loss on nodes. In addition, you can set up Fluentd to support high availability and robust failover.

4. Jaeger

Jaeger homepage

Jaeger is an open source tool for monitoring traffic between distributed services such as Kubernetes. Jaeger uses distributed tracing to follow the path of a service request through different microservices. You can then get a visual representation of the request flows. Distributed tracing is a way to manage and observe microservices and it runs as part of a service mesh.

Key features include:

  • High scalability—Designed to have no single points of failure (SPOF) and scale with business needs.
  • Multiple storage options—Supports two open source NoSQL databases, Elasticsearch and Cassandra. Jaeger also provides simple in-memory storage for testing.
  • Cloud-native deployment—Supports different configuration methods, including environment variables, command-line options and configuration files. Kubernetes deployment is supported by Kubernetes templates, Kubernetes Operators and Helm charts.
  • Monitoring—Jaeger backend components expose Prometheus metrics and logs by default.

5. Telepresence

Telepresence homepage

Telepresence is an open source tool that runs a single service locally while connecting that service to a remote Kubernetes cluster. Telepresence deploys a two-way network proxy in a pod, which collects data for Kubernetes environments including TCP connections, environment variables and volumes.

Key features include:

  • Compatibility—Works on both Linux and Mac OS, with OS-native packages.
  • Development workflow—Gives you a fast development workflow for multi-container applications developing on Kubernetes. You can run a local Docker container while proxying it to your cluster.
  • Debug a Kubernetes service locally—You want to run a service locally when you have a bug in a staging cluster. Telepresence enables you to debug your service locally.
  • Connect to a remote Kubernetes cluster—You can access a remote cluster from a local process. This access enables you to use your local tools on your laptop to communicate with processes inside the cluster.

6. Zabbix

Zabbix homepage

Zabbix is designed to monitor a large number of network parameters and the health of servers, offering many data visualization and reporting features based on the stored data. Small organizations with a few servers and large enterprises with multiple servers can use Zabbix to monitor IT infrastructure.

Key features include:

  • Flexible threshold—You can define flexible problem thresholds, also known as triggers. These triggers are based on values from the backend database.
  • Real-time visualization—You can immediately see the monitored items using the built-in graphing functionality.
  • Auto-discovery—Provides several ways of automating the management of large environments such as Kubernetes. You can automatically add and remove file systems and network interfaces in your organization.
  • Network discovery—Enables you to regularly scan the network for external services or Zabbix agents and take pre-defined actions upon discovery.
  • Distributed monitoring—Provides an effective way of monitoring a distributed infrastructure using Zabbix proxies. You can use proxies to collect data locally and then report the data to the server.

Conclusion

Prometheus is an open source tool for monitoring Kubernetes workloads. It is integrated natively as the default monitoring tool in Kubernetes, including a built-in alert manager. However, you should also consider other monitoring options for your Kubernetes environment to supplement and improve native Kubernetes capabilities.

Limor Wainstein

Limor is a technical writer and editor with over 10 years' experience writing about topics like cybersecurity, big data, cloud computing and web development. She is the winner of the STC Cross-European Technical Communication Award (2008), and is a regular contributor to technology publications liked DevOps.com, Database Trends Magazine, and Toolbox. She is studying towards a Master's Degree in Technology & Society from Bar Ilan University. Limor is a Senior Technical Writer at Cybereason and has written for Imperva, NetApp, RSA, Lexis Nexis and many other companies.

Limor Wainstein has 4 posts and counting. See all posts by Limor Wainstein