Gregory Eremin 26638023d5 | ||
---|---|---|
configs | ||
Brubeck.dockerfile | ||
Carbon.dockerfile | ||
Grafana.dockerfile | ||
LICENCE | ||
Makefile | ||
README.md | ||
docker-compose.yml |
README.md
Graphite-ish
Graphite project consists of three components that designed to work together:
carbon
daemon that accepts and stores metricswhisper
database where metrics are keptweb
app 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.js
app 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
Graphite
that points tohttp://graphite-api:8000
- Create a new chart with a test metric (
foo.bar
in 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 "foo.bar:1|C"
# Verbose, Using UDP, Timeout 1s
# To StatsD port on Docker
$ for i in {1..1000}; do echo "foo.bar:1|C" | nc -v -u -w1 `docker-machine ip` 8126; done