Graphite web + carbon + whisper in a Docker container
WORK IN PROGRESS
The existing images for Graphite all seemed to be either bloated, out-of-date, or built for use with certain extensions. This Docker image is an attempt to create a basic image that makes it very easy to get Graphite up-and-running quickly.
docker run \ -p 8000:8000 \ -v /local/storage:/opt/graphite/storage \ -e GRAPHITE_WEB_SECRET_KEY='<secret key>' \ praekeltfoundation/graphite
This will expose the Graphite web frontend and API at port
8000 on the host with the persistent storage mounted at
/local/storage. Be sure to set the secret key to something better.
Volumes and ports
/opt/graphite/storagevolume for persistent storage
8000for the graphite-web interface
Two processes are managed by supervisord:
- gunicorn running graphite-web
The example configurations are used in the following places:
The retention schema that is used is 1 minute for 1 day, 5 minutes for 1 year,
and 1 hour for 5 years.
Carbon can collect metrics via AMQP and can be configured to do using the following environment variables.
- ENABLE_AMQP defaults to
- AMQP_VERBOSE defaults to
- AMQP_HOST defaults to
- AMQP_PORT defaults to
- AMQP_VHOST defaults to
- AMQP_USER defaults to
- AMQP_PASSWORD defaults to
- AMQP_EXCHANGE defaults to
- AMQP_METRIC_NAME_IN_BODY defaults to
We added a simple
local_settings.py based on the
webapp/graphite/local_settings.py.example example. The
SECRET_KEY and email settings can be set using environment variables.
There are a number of extra dependencies that can be installed to enable extra functionality in Graphite. We install only
txAMQP for AMQP functionality. See here for more information.