There are lots of different tools for different purposes, some of which provide some of the monitoring features that we described previously. New Relic, Dynatrace, and SolarWinds (just to mention a few) provide powerful SaaS-based monitoring and performance management for cloud environments. However, the most-used open source solution nowadays is called Prometheus.
Prometheus is 100% open source and community driven. All of the components are available under the Apache License, version 2.0, on GitHub. Prometheus is also a Cloud Native Computing Foundation member project.
Here are the features of Prometheus, taken directly from the Prometheus website (https://prometheus.io/):
- Dimensional data: Prometheus implements a highly dimensional data model. Time series are identified by a metric name and a set of key-value pairs.
- Powerful queries: PromQL allows for the slicing and dicing of collected time series data to generate ad hoc graphs, tables, and alerts.
- Great visualization: Prometheus has multiple modes for visualizing data built-in expression browser, Grafana integration, and a console template language.
- Efficient storage: Prometheus stores time series in-memory and on to a local disk in an efficient custom format. Scaling is achieved by functional sharding and federation.
- Simple operation: Each server is independent for reliability, relying only on local storage. Written in Go, all binaries are statically linked and easy to deploy.
- Precise alerting: Alerts are defined based on Prometheus's flexible PromQL and maintain dimensional information. An alert manager handles notifications and silencing.
- Many client libraries: Client libraries allow for the easy instrumentation of services. Over ten languages are supported already and custom libraries are easy to implement.
- Many integrations: Existing exporters allow for the bridging of third-party data into Prometheus. Examples include system statistics, as well as Docker, HAProxy, StatsD, and JMX metrics.