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.js app that accepts metrics
and aggregates them before submitting to 
carbon; - 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 | 
A piece of original Graphite Web component with less features | 
| Grafana | v3.1.0-beta1 | 
Beautiful dashboard for all of that | 
Building
Make sure Docker and Docker Compose are installed.
$ make graphite fast
Re-building
$ make graphite fast again
Starting
$ make run
Using
- Open 
Grafanadashboard athttp://[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 
Grafanadashboard 
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%