Cloud Metrics Monitoring - StatsD, Graphite, Grafana


StatsD is a set of tools that can be used to send, collect, and aggregate custom metrics from any application.  Graphite is enterprise-ready open source monitoring tool for storing and viewing time series data on any Cloud infrastructure. Grafana is an open source metric analytics & visualization suite. It is most commonly used for visualizing time series data for infrastructure and application analytics but many use it in other domains including industrial sensors, home automation, weather, and process control.

The most common setup is to use statsd to collect metrics, graphite to store those metrics, and Grafana to visualize those metrics(StatsD -> Graphite -> Grafana).

Graphite does not collect data by itself, but has a simple interface and integrates easily with third-party tools. Grafana allows you to connect to a Graphite installation (or other data source) and build dashboards to view and analyze the data. 

StatsD client (e.g. golang client library) to collect and send the statistics and aggregation data to StatsD server. stats data are aggregated and sent to Graphite server. The metric data would be stored into Graphite server (include a Whisper database). Grafana is a powerful dashboard for visualizing the metrics data stored in Graphite(whisper) time-series database.

Prometheus is an open source monitoring and alerting toolkit. Prometheus is now closely integrated into cloud-native ecosystem and has native support for containers and Kubernetes.

cAdvisor (Container Advisor) provides container users an understanding of the resource usage and performance characteristics of their running containers(examples docker containers). It is a running daemon that collects, aggregates, processes, and exports information about running containers.

A time series database (TSDB) is a database optimized for time-stamped or time series data. Time series data are simply measurements or events that are tracked, monitored, sampled and aggregated over time. Applications like Self-driving cars, Autonomous trading, Smart homes monitoring sensor data rely on a form of data that measures how things change over time. Where time isn’t just a metric, but a primary axis. This is time-series data and it’s starting to play a larger role in our world.


 

ref:

StatsD, Graphite, Grafana -
Docker image with StatsD, Graphite, Grafana 2 - https://github.com/kamon-io/docker-grafana-graphite

Monitoring your Kubernetes Deployments with Prometheus - https://supergiant.io/blog/monitoring-your-kubernetes-deployments-with-prometheus/

Prometheus vs Grafana –