Skip to content

Instantly share code, notes, and snippets.

@ctavan
Last active August 29, 2015 14:06
Show Gist options
  • Save ctavan/70da37424a04208e770c to your computer and use it in GitHub Desktop.
Save ctavan/70da37424a04208e770c to your computer and use it in GitHub Desktop.
carbon.conf
# The form of each line in this file should be as follows:
#
# output_template (frequency) = method input_pattern
#
# This will capture any received metrics that match 'input_pattern'
# for calculating an aggregate metric. The calculation will occur
# every 'frequency' seconds and the 'method' can specify 'sum' or
# 'avg'. The name of the aggregate metric will be derived from
# 'output_template' filling in any captured fields from 'input_pattern'.
#
# For example, if you're metric naming scheme is:
#
# <env>.applications.<app>.<server>.<metric>
#
# You could configure some aggregations like so:
#
# <env>.applications.<app>.all.requests (60) = sum <env>.applications.<app>.*.requests
# <env>.applications.<app>.all.latency (60) = avg <env>.applications.<app>.*.latency
#
# As an example, if the following metrics are received:
#
# prod.applications.apache.www01.requests
# prod.applications.apache.www01.requests
#
# They would all go into the same aggregation buffer and after 60 seconds the
# aggregate metric 'prod.applications.apache.all.requests' would be calculated
# by summing their values.
#
# Template components such as <env> will match everything up to the next dot.
# To match metric multiple components including the dots, use <<metric>> in the
# input template:
#
# <env>.applications.<app>.all.<app_metric> (60) = sum <env>.applications.<app>.*.<<app_metric>>
#
# Note that any time this file is modified, it will be re-read automatically.
##############################
# All histograms and meters from node-measured
performance.all.<metrics>.mean (10) = avg performance.*.<<metrics>>.mean
performance.all.<metrics>.count (10) = sum performance.*.<<metrics>>.count
performance.all.<metrics>.sum (10) = sum performance.*.<<metrics>>.sum
performance.all.<metrics>.histogram.recentMean (10) = avg performance.*.<<metrics>>.histogram.recentMean
performance.all.<metrics>.histogram.median (10) = avg performance.*.<<metrics>>.histogram.median
performance.all.<metrics>.histogram.variance (10) = avg performance.*.<<metrics>>.histogram.variance
performance.all.<metrics>.histogram.stddev (10) = avg performance.*.<<metrics>>.histogram.stddev
performance.all.<metrics>.histogram.p75 (10) = avg performance.*.<<metrics>>.histogram.p75
performance.all.<metrics>.histogram.p95 (10) = avg performance.*.<<metrics>>.histogram.p95
performance.all.<metrics>.histogram.p99 (10) = avg performance.*.<<metrics>>.histogram.p99
performance.all.<metrics>.histogram.p999 (10) = avg performance.*.<<metrics>>.histogram.p999
performance.all.<metrics>.histogram.p75Max (10) = max performance.*.<<metrics>>.histogram.p75
performance.all.<metrics>.histogram.p95Max (10) = max performance.*.<<metrics>>.histogram.p95
performance.all.<metrics>.histogram.p99Max (10) = max performance.*.<<metrics>>.histogram.p99
performance.all.<metrics>.histogram.p999Max (10) = max performance.*.<<metrics>>.histogram.p999
performance.all.<metrics>.histogram.min (10) = min performance.*.<<metrics>>.histogram.min
performance.all.<metrics>.histogram.max (10) = max performance.*.<<metrics>>.histogram.max
performance.all.<metrics>.1MinuteRate (10) = sum performance.*.<<metrics>>.1MinuteRate
performance.all.<metrics>.5MinuteRate (10) = sum performance.*.<<metrics>>.5MinuteRate
performance.all.<metrics>.15MinuteRate (10) = sum performance.*.<<metrics>>.15MinuteRate
performance.all.<metrics>.currentRate (10) = sum performance.*.<<metrics>>.currentRate
# This file takes a single regular expression per line
# If USE_WHITELIST is set to True in carbon.conf, any metrics received which
# match one of these expressions will be dropped
# This file is reloaded automatically when changes are made
performance\.((?!all).)+\..+\.histogram\.[^.]+$
performance\.((?!all).)+\..+\.(1MinuteRate|5MinuteRate|15MinuteRate|currentRate|mean|count|sum|uncertainty)$
[cache]
STORAGE_DIR = /var/lib/carbon/
LOCAL_DATA_DIR = /var/lib/carbon/whisper/
CONF_DIR = /etc/carbon/
LOG_DIR = /var/log/carbon/
PID_DIR = /var/run/
ENABLE_LOGROTATION = True
USER =
MAX_CACHE_SIZE = inf
MAX_UPDATES_PER_SECOND = 500
MAX_UPDATES_PER_SECOND_ON_SHUTDOWN = 10000
MAX_CREATES_PER_MINUTE = 2000
USE_INSECURE_UNPICKLER = False
USE_FLOW_CONTROL = True
USE_WHITELIST = True
CACHE_WRITE_STRATEGY = sorted
WHISPER_AUTOFLUSH = False
WHISPER_FALLOCATE_CREATE = True
LOG_LISTENER_CONNECTIONS = True
LOG_UPDATES = False
LOG_CACHE_HITS = True
LOG_CACHE_QUEUE_SORTS = True
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2003
ENABLE_UDP_LISTENER = False
UDP_RECEIVER_INTERFACE = 0.0.0.0
UDP_RECEIVER_PORT = 2003
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2004
CACHE_QUERY_INTERFACE = 0.0.0.0
CACHE_QUERY_PORT = 7002
[cache:b]
LINE_RECEIVER_PORT = 2103
PICKLE_RECEIVER_PORT = 2104
CACHE_QUERY_PORT = 7102
[relay]
STORAGE_DIR = /var/lib/carbon/
LOCAL_DATA_DIR = /var/lib/carbon/whisper/
CONF_DIR = /etc/carbon/
LOG_DIR = /var/log/carbon/
PID_DIR = /var/run/
LOG_LISTENER_CONNECTIONS = True
RELAY_METHOD = aggregated-consistent-hashing
REPLICATION_FACTOR = 1
MAX_DATAPOINTS_PER_MESSAGE = 500
MAX_QUEUE_SIZE = 100000
USE_FLOW_CONTROL = True
DESTINATIONS = aggregate.host:2024:a, aggregate.host:2124:b, aggregate.host:2224:c
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2113
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2114
[relay:b]
LINE_RECEIVER_PORT = 2213
PICKLE_RECEIVER_PORT = 2214
[relay:c]
LINE_RECEIVER_PORT = 2313
PICKLE_RECEIVER_PORT = 2314
[aggregator]
STORAGE_DIR = /var/lib/carbon/
LOCAL_DATA_DIR = /var/lib/carbon/whisper/
CONF_DIR = /etc/carbon/
LOG_DIR = /var/log/carbon/
PID_DIR = /var/run/
LOG_LISTENER_CONNECTIONS = True
FORWARD_ALL = True
REPLICATION_FACTOR = 1
USE_FLOW_CONTROL = True
MAX_QUEUE_SIZE = 100000
MAX_DATAPOINTS_PER_MESSAGE = 500
MAX_AGGREGATION_INTERVALS = 5
DESTINATIONS = carbon.host:2004:a, carbon.host:2104:b
LINE_RECEIVER_INTERFACE = 0.0.0.0
LINE_RECEIVER_PORT = 2023
PICKLE_RECEIVER_INTERFACE = 0.0.0.0
PICKLE_RECEIVER_PORT = 2024
[aggregator:b]
LINE_RECEIVER_PORT = 2123
PICKLE_RECEIVER_PORT = 2124
[aggregator:c]
LINE_RECEIVER_PORT = 2223
PICKLE_RECEIVER_PORT = 2224
# Aggregation methods for whisper files. Entries are scanned in order,
# and first match wins. This file is scanned for changes every 60 seconds
#
# [name]
# pattern = <regex>
# xFilesFactor = <float between 0 and 1>
# aggregationMethod = <average|sum|last|max|min>
#
# name: Arbitrary unique name for the rule
# pattern: Regex pattern to match against the metric name
# xFilesFactor: Ratio of valid data points required for aggregation to the next retention to occur
# aggregationMethod: function to apply to data points for aggregation
#
[min]
pattern = \.(min|p[0-9]+Min)$
xFilesFactor = 0.1
aggregationMethod = min
[max]
pattern = \.(max|p[0-9]+Max)$
xFilesFactor = 0.1
aggregationMethod = max
[default_average]
pattern = .*
xFilesFactor = 0.3
aggregationMethod = average
# Schema definitions for Whisper files. Entries are scanned in order,
# and first match wins. This file is scanned for changes every 60 seconds.
#
# [name]
# pattern = regex
# retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...
# Carbon's internal metrics. This entry should match what is specified in
# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
[performance]
priority = 100
pattern = ^performance\.
retentions = 10s:7d,1m:60d,15m:5y
[production]
priority = 100
pattern = ^production\.
retentions = 10s:7d,1m:60d,15m:5y
[system]
priority = 100
pattern = ^system\.
retentions = 30s:3d,1m:30d,15m:5y
[benchmark]
priority = 100
pattern = ^benchmark\.
retentions = 5s:3d,1m:7d
[default]
pattern = .*
retentions = 1m:1d,15m:30d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment