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 -
- https://medium.com/@developersworkspace/statsd-graphite-grafana-328c0cdda5a0
- http://www.markusz.io/posts/2016/03/06/grafana-graphite-statsd/
- https://www.linode.com/docs/uptime/monitoring/install-graphite-and-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 –
- https://www.loomsystems.com/blog/single-post/2017/06/07/prometheus-vs-grafana-vs-graphite-a-feature-comparison
- https://stackshare.io/stackups/grafana-vs-prometheus
Grafana vs Kibana vs Prometheus - https://stackshare.io/stackups/grafana-vs-kibana-vs-prometheus