Graphite-ish
Graphite project consists of three components that designed to work together:
carbondaemon that accepts and stores metricswhisperdatabase where metrics are keptwebapp that reads metrics and processes them using a comprehensive list of supported functions
Every component exposes several APIs that are used by other components. All of
them are written in Python.
Two more components are often used together with Graphite:
- StatsD — a
Node.jsapp that accepts metrics and aggregates them before submitting tocarbon; - Grafana — web dashboard for
Graphite(and other backends)
This set of images replaces original carbon daemon and StatsD aggregation
daemon with other compatible components to improve
performance and
throughput.
Grafana 3 is also included.
Included images
| Component | Version | |
|---|---|---|
| go-carbon | v0.7.2 |
Drop-in replacement for original carbon daemon, written in Go |
| Brubeck | 5d139a4 |
Easy replacement for StatsD, written in C |
| Graphite API | latest |
Piece of original web component with less features |
| Grafana | v3.1.0-beta1 |
Web dashboard |
Building
Make sure Docker and Docker Compose are installed.
$ make graphite fast
Re-building
$ make graphite fast again
Starting
$ make run
Using
- Open Grafana dashboard at
http://[docker-host]:3000/, sign in asadmin/admin - Create new data source of type
Graphitethat points tohttp://graphite-api:8000 - Create a new chart with a test metric (
test.pingin this example) - Start sending metrics to
StatsD-compatible endpoint - Metrics should show up on Grafana dashboard
You can send metrics right from terminal:
# 1000 times
# Send "test.ping:1|C\n"
# Verbose, Using UDP, Timeout 1s
# To StatsD port on Docker
$ for i in {1..1000}; do echo "test.ping:1|C" | nc -v -u -w1 `docker-machine ip` 8126; done
Description
Languages
Dockerfile
95.1%
Makefile
4.9%