Skip to main content

Graphite-dashgen automates the creation of Graphite dashboards

Project description


Graphite-dashgen automates the creation of Graphite dashboards. It creates per-host or per-group dashboards based on YAML configuration files. The per-host host dashboards are designed to create dashboards on existing collectd metrics. Unlike most of the alternatives below, this project seeks to use existing Graphite 0.9.9+ code.


# Graphite Maintenance
# Delete stale Graphite data
0   22  *   *   *   find /opt/graphite/storage/log/ -type f -mtime +180 -delete
0   22  *   *   *   find /opt/graphite/storage/whisper/collectd/ -type f -mtime +90 -delete
0   22  *   *   *   find /opt/graphite/storage/whisper/statsd/ -type f -mtime +90 -delete
# Delete empty directories
0   23  *   *   *   find /opt/graphite/storage/log/ -type d -empty -delete
0   23  *   *   *   find /opt/graphite/storage/whisper/collectd/ -type d -empty -delete
0   23  *   *   *   find /opt/graphite/storage/whisper/statsd/ -type d -empty -delete
# Regenerate all dashboards
@daily /usr/bin/python -m dashgen -q -f /usr/local/etc/dashgen/dashconf.yml -f /usr/local/etc/dashgen/all_*.yml -H '*'

The crontab example above:

  1. Cleans-up old graphite logs
  2. Cleans-up old whisper databases
  3. Regenerates per-host dashboards using the following configuration files
    1. dashconf.yml: base configuration values
    2. all_dash.yml: per-host dashboard configuration (HOST_all dashboards)
    3. all_graphs.yml: per-host graph defintions for collectd metrics

See additional example configures in examples/.


  • YAML Configuration Files
    • Target entries are as close to web GUI as possible to make it easier to go back and forth
  • Dashboard Types
    1. Per-Host
    2. Per-Group
  • Per-Host Graphs
    • Types
      1. Host Metrics: identified by glob_verify and may contain glob_metrics
      2. Carbon Metrics: identified by carbon_match and host
    • The combination of glob_metrics and glob_verify should result in a single filesystem glob match
  • String Templates
    • Named substitutions draw from target_vars. Graph definitions that contain named substitutions not in target_vars are skipped.
    • Common target_vars include:
      • ${color_combined}
      • ${color_free}
      • ${host}
      • ${metric}
      • ${metric_resolved}
  • Graphite Graph Tips and Tricks
    • Lines drawn by graphite obscure the lines drawn before them. Z order is important. Consequently, many of the graphs’ metrics change color depending on their values.
    • For graphs that feature a free metric (ex. memory), that free metric is always green (green should not be included in the template’s lineColor)
    • If you get your metrics from collectd, they are overly verbose and poorly organized for Graphite globbing. For an example rewrite-rules.conf see:


  • Graphite 0.9.9+
  • PyYAML (Ubuntu package: python-yaml)

To Do

  • More documentation!
  • Use templates with different colorList to easily differentiate graphs
  • (?) should graphs be sorted by parent instead of children (ex. all disk vda graphs before any vdb graphs)


There are many alternatives and many of them were created before Graphite included a dashboard view. One of the most exciting projects is:

For additional alternatives see the lastest Graphite Tools documentation:

Project details

Release history Release notifications

History Node


History Node


History Node


This version
History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
python-graphite-dashgen-0.1.4.tar.gz (12.3 kB) Copy SHA256 hash SHA256 Source None Apr 9, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page