{"id":15023181,"url":"https://github.com/similarweb/puppet-go_carbon","last_synced_at":"2025-07-20T02:33:46.925Z","repository":{"id":57664434,"uuid":"52431254","full_name":"similarweb/puppet-go_carbon","owner":"similarweb","description":"Puppet module for the Golang implementation of Graphite/Carbon","archived":false,"fork":false,"pushed_at":"2017-03-03T16:44:41.000Z","size":15,"stargazers_count":6,"open_issues_count":1,"forks_count":13,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-31T18:28:40.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Puppet","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/similarweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-24T09:43:13.000Z","updated_at":"2018-10-19T09:39:37.000Z","dependencies_parsed_at":"2022-09-10T14:52:49.455Z","dependency_job_id":null,"html_url":"https://github.com/similarweb/puppet-go_carbon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/similarweb%2Fpuppet-go_carbon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/similarweb%2Fpuppet-go_carbon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/similarweb%2Fpuppet-go_carbon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/similarweb%2Fpuppet-go_carbon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/similarweb","download_url":"https://codeload.github.com/similarweb/puppet-go_carbon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238310359,"owners_count":19450845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:58:48.349Z","updated_at":"2025-02-11T14:32:32.841Z","avatar_url":"https://github.com/similarweb.png","language":"Puppet","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go_carbon\n\n#### Table of Contents\n\n1. [Overview](#overview)\n2. [Module Description - What the module does and why it is useful](#module-description)\n3. [Setup - The basics of getting started with go_carbon](#setup)\n    * [Limitations - OS compatibility, etc.](#limitations)\n    * [What go_carbon affects](#what-go_carbon-affects)\n    * [Setup requirements](#setup-requirements)\n    * [Beginning with go_carbon](#beginning-with-go_carbon)\n4. [Usage - Configuration options and additional functionality](#usage)\n    * [Multi instance deployment - important notes](#multi-instance)\n5. [Reference - An under-the-hood peek at what the module is doing and how](#reference)\n6. [Development - Guide for contributing to the module](#development)\n\n## Overview\n\nThis module manages [go_carbon][1] by [lomik][2].\n\n## Module Description\n\nThis module has been tested against go_carbon versions: 0.5, 0.7\n\n## Setup\n\n### Limitations\nYou must provide your own RPM - these can be built from the project sources by issuing\n```\nmake rpm\n```\nMore info [here][2].\n\nThe module has been tested on CentOS 6\n\n### The module manages the following\n\n* The go_carbon package.\n* upstart / systemd services configuration file.\n* Multiple go_carbon instances supported (i.e. for JBOD sharding)\n* Aggregations / Schemas\n\n### Important Note\nPlease refer to go_carbon [installation][2] before using this module.\n\n### Setup Requirements\n\ngo_carbon module depends on the following puppet modules:\n\n* puppetlabs-stdlib \u003e= 1.0.0\n* camptocamp-systemd \u003e= 0.2.2 (CentOS 7 and up)\n\n### Beginning with go_carbon\n\nInstall this module via any of these approaches:\n\n* [librarian-puppet][3]\n* `puppet module install similarweb-go_carbon`\n\n## Usage\n\n## Multi Instance \nThis module supports multiple instances of go_carbon managed on one machine. \nYou can define completely different configurations per managed instance, but the schemas aggregation and storage definition are _shared_ across.\n\n### Main class\n\n#### Install go_carbon 0.7 by means of a yum repo\n\n```puppet\nclass { 'go_carbon':\n  package_name =\u003e 'go_carbon',\n  version =\u003e '0.7-1.el6',\n}\n```\n\n#### Start a go_carbon instance with default configuration\n\n```puppet\nclass { 'go_carbon': } -\u003e\ngo_carbon::instance { 'default': }\n```\n\n#### Support for multiple instances\n```puppet\ngo_carbon::instance { 'instance_1': \n  tcp_listen =\u003e ':2003',\n  udp_enabled =\u003e false,\n  whisper_data_dir =\u003e '/data1'  \n}\n\ngo_carbon::instance { 'instance_2': \n  tcp_listen =\u003e ':2103',\n  udp_enabled =\u003e false,\n  whisper_data_dir =\u003e '/data2'\n}\n```\n\n## Hiera Support\n\n* Example: Defining storage schemas in hiera\n\n```yaml\ngo_carbon::storage_schemas:\n  - carbon:\n      pattern: '^carbon\\.'\n      retentions: '1m:30d'\n  - collectd:\n      pattern: '^collectd.*'\n      retentions: '20s:1d,1m:14d,10m:90d'\n  - default_1min_for_7day:\n      pattern: '.*'\n      retentions: '1m:7d'\n```\n\n* Example: Defining 4 go_carbon instances with hiera\n\n```yaml\nroles::graphite::go_carbon_instances:\n    data1:\n        tcp_listen: 0.0.0.0:2103\n        udp_enabled: false\n        pickle_listen: 0.0.0.0:2104\n        carbonlink_listen: 127.0.0.1:7102\n        whisper_data_dir: /data1/whisper\n        log_file: /var/log/go_carbon/data1.log\n        whisper_max_updates_per_second: 4000\n    data2:\n        tcp_listen: 0.0.0.0:2203\n        udp_enabled: false\n        pickle_listen: 0.0.0.0:2204\n        carbonlink_listen: 127.0.0.1:7202\n        whisper_data_dir: /data2/whisper\n        log_file: /var/log/go_carbon/data2.log\n        whisper_max_updates_per_second: 4000\n    data3:\n        tcp_listen: 0.0.0.0:2303\n        pickle_listen: 0.0.0.0:2304\n        udp_enabled: false\n        carbonlink_listen: 127.0.0.1:7302\n        whisper_data_dir: /data3/whisper\n        log_file: /var/log/go_carbon/data3.log        \n        whisper_max_updates_per_second: 4000\n    data4:\n        tcp_listen: 0.0.0.0:2403\n        pickle_listen: 0.0.0.0:2404\n        udp_enabled: false\n        carbonlink_listen: 127.0.0.1:7402\n        log_file: /var/log/go_carbon/data4.log        \n        whisper_data_dir: /data4/whisper\n        whisper_max_updates_per_second: 4000\n```\n\nThen in the manifest:\n```puppet\n    create_resources(go_carbon::instance, hiera('roles::graphite::go_carbon_instances'), {})\n```\n\n\n## Reference\n\n### Classes\n\n#### Public classes\n\n* `go_carbon` - Installs and configures shared go_carbon configuration.\n* `go_carbon::instance` - Configures and launches a go_carbon instance. This is a defined resource and can be used multiple times.\n\n#### Private classes\n* `go_carbon::install` - Installs the go_carbon package\n* `go_carbon::config` - Configures storage aggregations / schemas\n* `go_carbon::service` - Installs the upstart / systemd service\n\n\n## Contributing\n\n1. Fork the repository on Github\n2. Create a named feature branch (like `feature/add_component_x`)\n3. Commit your changes.\n4. Submit a Pull Request using Github\n\n\n[1]: https://github.com/lomik/go_carbon\n[2]: https://github.com/lomik/go_carbon#installation\n[3]: https://github.com/rodjek/librarian-puppet\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimilarweb%2Fpuppet-go_carbon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimilarweb%2Fpuppet-go_carbon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimilarweb%2Fpuppet-go_carbon/lists"}