Forge Home

carbon

Install Carbon from EPEL packages and configure it.

9,887 downloads

9,887 latest version

2.3 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.1.0 (latest)
released Aug 7th 2014
This version is compatible with:
  • Puppet Enterprise 3.x
  • Puppet 3.x
  • ,

Start using this module

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

Add this module to your Puppetfile:

mod 'stevenmerrill-carbon', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add stevenmerrill-carbon
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install stevenmerrill-carbon --version 0.1.0

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.

Download

Documentation

stevenmerrill/carbon — version 0.1.0 Aug 7th 2014

####Table of Contents

  1. Overview
  2. Usage
  3. Limitations - OS compatibility, etc.
  4. Development - Guide for contributing to the module

##Overview

A module for CentOS/RHEL 6 that configures and runs the Carbon part of the Graphite stack from EPEL. This is designed to be used with my module for graphite-api.

Several of the templates and parameters were copied from Daniel Werdermann's Graphite module.

Using the module

To install with the default parameters, use the following configuration.

include carbon

There are also several parameters you can set to control carbon-cache and carbon-aggregator's operation.

##Usage

###Parameters

#####package_name

This defaults to python-carbon, which will also install python-whisper and the necessary python dependencies from EPEL.

#####cache_service_name

This defaults to 'carbon-cache'.

#####aggregator_service_name

This defaults to 'carbon-aggregator'.

#####aggregator_rules

This is a hashmap of all the carbon aggregation rules.

The default is

{
  'carbon-class-mem'  => 'carbon.all.<class>.memUsage (60) = sum carbon.<class>.*.memUsage',
  'carbon-all-mem'    => 'carbon.all.memUsage (60) = sum carbon.*.*.memUsage',
}

#####storage_schemas

The storage schemas, which describes how long matching graphs are to be stored in detail.

The default is

[
  {
    name       => 'carbon',
    pattern    => '^carbon\.',
    retentions => '1m:90d'
  },
  {
    name       => 'default',
    pattern    => '.*',
    retentions => '1s:30m,1m:1d,5m:2y'
  }
]

The storage schemas, which describes how long matching graphs are to be stored in detail.

#####storage_aggregation_rules

This is a hashmap of the storage aggregation rules.

The default is

{
  '00_min'         => { pattern => '\.min$',   factor => '0.1', method => 'min' },
  '01_max'         => { pattern => '\.max$',   factor => '0.1', method => 'max' },
  '02_sum'         => { pattern => '\.count$', factor => '0.1', method => 'sum' },
  '99_default_avg' => { pattern => '.*',       factor => '0.5', method => 'average'}
}

##Limitations

This module will only work with RHEL or CentOS 6 at the moment, and will likely always be limited to RHELish systems. If you are not interested in installing carbon from packages, check out Daniel Werdermann's excellent Graphite module.

It requires the EPEL repository, and expects that Michael Stahnke's EPEL class (or any class named "epel") will provide those.

##Development

I will look at any pull requests. If you have a machine with Vagrant 1.6+ and Docker, you can quickly spin up a CentOS container to test using the vagrant-test directory here. https://github.com/smerrill/puppet-carbon-graphiteapi-tests will also let you test this module along with my graphite-api module.