Forge Home


Graphite server configuration using Docker.


6,634 latest version

5.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.6.1 (latest)
  • 0.6.0
  • 0.5.1
  • 0.5.0
  • 0.4.0
  • 0.3.3
  • 0.3.2
released Aug 25th 2016
This version is compatible with:
  • Puppet Enterprise >= 3.7.0
  • Puppet >= 3.4.0
  • , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'ajsmith-graphite', '0.6.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add ajsmith-graphite
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install ajsmith-graphite --version 0.6.1

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



ajsmith/graphite — version 0.6.1 Aug 25th 2016


Table of Contents

  1. Overview
  2. Setup - The basics of getting started with docker_systemd
  3. Usage
  4. Compatibility


This module configures the Graphite monitoring server using Docker and systemd.


What graphite affects

To configure Graphite components to run as normal systemd services, this module will generate systemd unit files in /etc/systemd/system/. Depending on how a host is configured, the following unit files may be generated:

  • /etc/systemd/system/docker-graphite-web.service
  • /etc/systemd/system/docker-graphite-carbon.service
  • /etc/systemd/system/docker-graphite-carbon-data.service
  • /etc/systemd/system/docker-graphite-mariadb.service
  • /etc/systemd/system/docker-graphite-mariadb-data.service

Any Docker containers will be stored using the Docker storage driver, no differently than how any other container may be stored on the host.

If any Docker images are pulled as a result of running a Docker container, those images will be stored using the Docker storage driver, no differently than how any other container may be stored on the host.

This module does not install and Docker for you. Plenty of ways to install Docker already exist, so this module does not add yet another way to do it.

Setup Requirements

Ensure that Docker is installed and running. On Red Hat systems, this can easily be accomplished using plain ol' Puppet resources, as so:

package { 'docker':
    ensure => latest
service { 'docker':
    ensure => true,
    enable => true

Beginning with graphite

As stated above, Graphite is installed as a set of Docker containers. Each container is configured as a systemd service to automatically handle starting and ordering of services at boot.


Here's an example which deploys a full set of Graphite containers including persistent storage using data volume containers:

graphite::docker::carbon::data_volume_container { 'graphite-carbon-data':
  image => 'ajsmith/graphite-carbon',
graphite::docker::carbon::container { 'graphite-carbon':
  image        => 'ajsmith/graphite-carbon',
  depends      => ['graphite-carbon-data'],
  volumes_from => ['graphite-carbon-data'],
  publish      => ['2003:2003/tcp', '2004:2004/tcp', '7002:7002/tcp'],

graphite::docker::mariadb::data_volume_container { 'graphite-mariadb-data':
  image => 'ajsmith/graphite-mariadb',
graphite::docker::mariadb::container { 'graphite-mariadb':
  image        => 'ajsmith/graphite-mariadb',
  depends      => ['graphite-mariadb-data'],
  volumes_from => ['graphite-mariadb-data'],

graphite::docker::web::container { 'graphite-web':
  image        => 'ajsmith/graphite-web',
  depends      => ['graphite-mariadb'],
  link         => ['graphite-mariadb:db'],
  publish      => ['8080:80/tcp'],
  volumes_from => ['graphite-carbon-data'],




This module is currently intended for Red Hat Linux systems capable of running Docker and systemd.

  • RHEL 7+
  • CentOS 7+
  • Fedora 20+

Release Notes

v0.6.1 2016/08/25

  • Re-release to fix a build issue in the last release.

v0.6.0 2016/08/17

  • Upgrade to ajsmith/docker_systemd v0.4.x.
  • Provide support for more Docker options:
    • log_driver
    • log_opt

v0.5.1 2016/08/05

  • Ugrade to ajsmith/docker_systemd v0.3.x.
  • Add the following options for Docker containers:
    • pull_image
    • volume
    • env
    • env_file
    • systemd_env_file
  • Set default Graphite Carbon image to ajsmith/graphite-carbon.
  • Set default Graphite Web image to ajsmith/graphite-web.
  • Set default Graphite MariaDB image to ajsmith/graphite-mariadb.
  • Add class to which provides Graphite Web syncdb script.
  • Update rspec tests.
  • Remove resources for building Graphite Docker images.
  • Remove legacy Graphite installation method.

v0.4.0 2016/02/09

  • Configure Carbon for uncapped MAX_CREATES_PER_MINUTE.
  • Configure Carbon to enable the UDP listener by default.
  • Update Graphite default settings from latest EPEL release.
  • Allow custom configuration to be added to Graphite Docker images.
  • Allow Docker build dir to be configured.
  • Allow Graphite Dockerfile revision to be configured.

v0.3.3 2016/01/11

  • Style fixes.

v0.3.2 2016/01/11

  • Initial release.