- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with go_carbon
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Development - Guide for contributing to the module
This module manages go_carbon by lomik.
This module has been tested against go_carbon versions: 0.5, 0.7
You must provide your own RPM - these can be built from the project sources by issuing
make rpm
More info here.
The module has been tested on CentOS 6
- The go_carbon package.
- upstart / systemd services configuration file.
- Multiple go_carbon instances supported (i.e. for JBOD sharding)
- Aggregations / Schemas
Please refer to go_carbon installation before using this module.
go_carbon module depends on the following puppet modules:
- puppetlabs-stdlib >= 1.0.0
- camptocamp-systemd >= 0.2.2 (CentOS 7 and up)
Install this module via any of these approaches:
- librarian-puppet
puppet module install similarweb-go_carbon
This module supports multiple instances of go_carbon managed on one machine. You can define completely different configurations per managed instance, but the schemas aggregation and storage definition are shared across.
class { 'go_carbon':
package_name => 'go_carbon',
version => '0.7-1.el6',
}
class { 'go_carbon': } ->
go_carbon::instance { 'default': }
go_carbon::instance { 'instance_1':
tcp_listen => ':2003',
udp_enabled => false,
whisper_data_dir => '/data1'
}
go_carbon::instance { 'instance_2':
tcp_listen => ':2103',
udp_enabled => false,
whisper_data_dir => '/data2'
}
- Example: Defining storage schemas in hiera
go_carbon::storage_schemas:
- carbon:
pattern: '^carbon\.'
retentions: '1m:30d'
- collectd:
pattern: '^collectd.*'
retentions: '20s:1d,1m:14d,10m:90d'
- default_1min_for_7day:
pattern: '.*'
retentions: '1m:7d'
- Example: Defining 4 go_carbon instances with hiera
roles::graphite::go_carbon_instances:
data1:
tcp_listen: 0.0.0.0:2103
udp_enabled: false
pickle_listen: 0.0.0.0:2104
carbonlink_listen: 127.0.0.1:7102
whisper_data_dir: /data1/whisper
log_file: /var/log/go_carbon/data1.log
whisper_max_updates_per_second: 4000
data2:
tcp_listen: 0.0.0.0:2203
udp_enabled: false
pickle_listen: 0.0.0.0:2204
carbonlink_listen: 127.0.0.1:7202
whisper_data_dir: /data2/whisper
log_file: /var/log/go_carbon/data2.log
whisper_max_updates_per_second: 4000
data3:
tcp_listen: 0.0.0.0:2303
pickle_listen: 0.0.0.0:2304
udp_enabled: false
carbonlink_listen: 127.0.0.1:7302
whisper_data_dir: /data3/whisper
log_file: /var/log/go_carbon/data3.log
whisper_max_updates_per_second: 4000
data4:
tcp_listen: 0.0.0.0:2403
pickle_listen: 0.0.0.0:2404
udp_enabled: false
carbonlink_listen: 127.0.0.1:7402
log_file: /var/log/go_carbon/data4.log
whisper_data_dir: /data4/whisper
whisper_max_updates_per_second: 4000
Then in the manifest:
create_resources(go_carbon::instance, hiera('roles::graphite::go_carbon_instances'), {})
go_carbon
- Installs and configures shared go_carbon configuration.go_carbon::instance
- Configures and launches a go_carbon instance. This is a defined resource and can be used multiple times.
go_carbon::install
- Installs the go_carbon packagego_carbon::config
- Configures storage aggregations / schemasgo_carbon::service
- Installs the upstart / systemd service
- Fork the repository on Github
- Create a named feature branch (like
feature/add_component_x
) - Commit your changes.
- Submit a Pull Request using Github