123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415 |
- [cache]
- # Configure carbon directories.
- #
- # OS environment variables can be used to tell carbon where graphite is
- # installed, where to read configuration from and where to write data.
- #
- # GRAPHITE_ROOT - Root directory of the graphite installation.
- # Defaults to ../
- # GRAPHITE_CONF_DIR - Configuration directory (where this file lives).
- # Defaults to $GRAPHITE_ROOT/conf/
- # GRAPHITE_STORAGE_DIR - Storage directory for whisper/rrd/log/pid files.
- # Defaults to $GRAPHITE_ROOT/storage/
- #
- # To change other directory paths, add settings to this file. The following
- # configuration variables are available with these default values:
- #
- # STORAGE_DIR = $GRAPHITE_STORAGE_DIR
- # LOCAL_DATA_DIR = STORAGE_DIR/whisper/
- # WHITELISTS_DIR = STORAGE_DIR/lists/
- # CONF_DIR = STORAGE_DIR/conf/
- # LOG_DIR = STORAGE_DIR/log/
- # PID_DIR = STORAGE_DIR/
- #
- # For FHS style directory structures, use:
- #
- # STORAGE_DIR = /var/lib/carbon/
- # CONF_DIR = /etc/carbon/
- # LOG_DIR = /var/log/carbon/
- # PID_DIR = /var/run/
- #
- #LOCAL_DATA_DIR = /opt/graphite/storage/whisper/
- STORAGE_DIR = /var/lib/graphite/
- LOCAL_DATA_DIR = /var/lib/graphite/whisper/
- CONF_DIR = /etc/carbon/
- LOG_DIR = /var/log/carbon/
- PID_DIR = /var/run/
- # Enable daily log rotation. If disabled, carbon will automatically re-open
- # the file if it's rotated out of place (e.g. by logrotate daemon)
- ENABLE_LOGROTATION = True
- # Specify the user to drop privileges to
- # If this is blank carbon runs as the user that invokes it
- # This user must have write access to the local data directory
- USER = www-data
- #
- # NOTE: The above settings must be set under [relay] and [aggregator]
- # to take effect for those daemons as well
- # Limit the size of the cache to avoid swapping or becoming CPU bound.
- # Sorts and serving cache queries gets more expensive as the cache grows.
- # Use the value "inf" (infinity) for an unlimited cache size.
- MAX_CACHE_SIZE = inf
- # Limits the number of whisper update_many() calls per second, which effectively
- # means the number of write requests sent to the disk. This is intended to
- # prevent over-utilizing the disk and thus starving the rest of the system.
- # When the rate of required updates exceeds this, then carbon's caching will
- # take effect and increase the overall throughput accordingly.
- MAX_UPDATES_PER_SECOND = 500
- # If defined, this changes the MAX_UPDATES_PER_SECOND in Carbon when a
- # stop/shutdown is initiated. This helps when MAX_UPDATES_PER_SECOND is
- # relatively low and carbon has cached a lot of updates; it enables the carbon
- # daemon to shutdown more quickly.
- # MAX_UPDATES_PER_SECOND_ON_SHUTDOWN = 1000
- # Softly limits the number of whisper files that get created each minute.
- # Setting this value low (e.g. 50) is a good way to ensure that your carbon
- # system will not be adversely impacted when a bunch of new metrics are
- # sent to it. The trade off is that any metrics received in excess of this
- # value will be silently dropped, and the whisper file will not be created
- # until such point as a subsequent metric is received and fits within the
- # defined rate limit. Setting this value high (like "inf" for infinity) will
- # cause carbon to create the files quickly but at the risk of increased I/O.
- MAX_CREATES_PER_MINUTE = inf
- # Set the interface and port for the line (plain text) listener. Setting the
- # interface to 0.0.0.0 listens on all interfaces. Port can be set to 0 to
- # disable this listener if it is not required.
- LINE_RECEIVER_INTERFACE = 127.0.0.1
- # LINE_RECEIVER_PORT = 2003
- # Set the TCP backlog for the listen socket created by the line receiver. You
- # shouldn't change this unless you know what you're doing.
- # LINE_RECEIVER_BACKLOG = 1024
- # Set this to True to enable the UDP listener. By default this is off
- # because it is very common to run multiple carbon daemons and managing
- # another (rarely used) port for every carbon instance is not fun.
- ENABLE_UDP_LISTENER = False
- UDP_RECEIVER_INTERFACE = 127.0.0.1
- # UDP_RECEIVER_PORT = 2003
- # Set the interface and port for the pickle listener. Setting the interface to
- # 0.0.0.0 listens on all interfaces. Port can be set to 0 to disable this
- # listener if it is not required.
- PICKLE_RECEIVER_INTERFACE = 127.0.0.1
- # PICKLE_RECEIVER_PORT = 2004
- # Set the TCP backlog for the listen socket created by the pickle receiver. You
- # shouldn't change this unless you know what you're doing.
- # PICKLE_RECEIVER_BACKLOG = 1024
- # Set to false to disable logging of successful connections
- LOG_LISTENER_CONNECTIONS = True
- # Per security concerns outlined in Bug #817247 the pickle receiver
- # will use a more secure and slightly less efficient unpickler.
- # Set this to True to revert to the old-fashioned insecure unpickler.
- USE_INSECURE_UNPICKLER = False
- CACHE_QUERY_INTERFACE = 127.0.0.1
- # CACHE_QUERY_PORT = 7002
- # Set the TCP backlog for the listen socket created by the cache query
- # listener. You shouldn't change this unless you know what you're doing.
- # CACHE_QUERY_BACKLOG = 1024
- # Set this to False to drop datapoints received after the cache
- # reaches MAX_CACHE_SIZE. If this is True (the default) then sockets
- # over which metrics are received will temporarily stop accepting
- # data until the cache size falls below 95% MAX_CACHE_SIZE.
- USE_FLOW_CONTROL = True
- # By default, carbon-cache will log every whisper update and cache hit. This can be excessive and
- # degrade performance if logging on the same volume as the whisper data is stored.
- LOG_UPDATES = False
- LOG_CACHE_HITS = False
- LOG_CACHE_QUEUE_SORTS = True
- # The thread that writes metrics to disk can use on of the following strategies
- # determining the order in which metrics are removed from cache and flushed to
- # disk. The default option preserves the same behavior as has been historically
- # available in version 0.9.10.
- #
- # sorted - All metrics in the cache will be counted and an ordered list of
- # them will be sorted according to the number of datapoints in the cache at the
- # moment of the list's creation. Metrics will then be flushed from the cache to
- # disk in that order.
- #
- # max - The writer thread will always pop and flush the metric from cache
- # that has the most datapoints. This will give a strong flush preference to
- # frequently updated metrics and will also reduce random file-io. Infrequently
- # updated metrics may only ever be persisted to disk at daemon shutdown if
- # there are a large number of metrics which receive very frequent updates OR if
- # disk i/o is very slow.
- #
- # naive - Metrics will be flushed from the cache to disk in an unordered
- # fashion. This strategy may be desirable in situations where the storage for
- # whisper files is solid state, CPU resources are very limited or deference to
- # the OS's i/o scheduler is expected to compensate for the random write
- # pattern.
- #
- CACHE_WRITE_STRATEGY = max
- # On some systems it is desirable for whisper to write synchronously.
- # Set this option to True if you'd like to try this. Basically it will
- # shift the onus of buffering writes from the kernel into carbon's cache.
- WHISPER_AUTOFLUSH = True
- # By default new Whisper files are created pre-allocated with the data region
- # filled with zeros to prevent fragmentation and speed up contiguous reads and
- # writes (which are common). Enabling this option will cause Whisper to create
- # the file sparsely instead. Enabling this option may allow a large increase of
- # MAX_CREATES_PER_MINUTE but may have longer term performance implications
- # depending on the underlying storage configuration.
- # WHISPER_SPARSE_CREATE = False
- # Only beneficial on linux filesystems that support the fallocate system call.
- # It maintains the benefits of contiguous reads/writes, but with a potentially
- # much faster creation speed, by allowing the kernel to handle the block
- # allocation and zero-ing. Enabling this option may allow a large increase of
- # MAX_CREATES_PER_MINUTE. If enabled on an OS or filesystem that is unsupported
- # this option will gracefully fallback to standard POSIX file access methods.
- WHISPER_FALLOCATE_CREATE = True
- # Enabling this option will cause Whisper to lock each Whisper file it writes
- # to with an exclusive lock (LOCK_EX, see: man 2 flock). This is useful when
- # multiple carbon-cache daemons are writing to the same files
- WHISPER_LOCK_WRITES = False
- # Set this to True to enable whitelisting and blacklisting of metrics in
- # CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
- # empty, all metrics will pass through
- # USE_WHITELIST = False
- # By default, carbon itself will log statistics (such as a count,
- # metricsReceived) with the top level prefix of 'carbon' at an interval of 60
- # seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
- CARBON_METRIC_PREFIX = carbon
- CARBON_METRIC_INTERVAL = 60
- # Enable AMQP if you want to receve metrics using an amqp broker
- # ENABLE_AMQP = False
- # Verbose means a line will be logged for every metric received
- # useful for testing
- # AMQP_VERBOSE = False
- # AMQP_HOST = localhost
- # AMQP_PORT = 5672
- # AMQP_VHOST = /
- # AMQP_USER = guest
- # AMQP_PASSWORD = guest
- # AMQP_EXCHANGE = graphite
- # AMQP_METRIC_NAME_IN_BODY = False
- # The manhole interface allows you to SSH into the carbon daemon
- # and get a python interpreter. BE CAREFUL WITH THIS! If you do
- # something like time.sleep() in the interpreter, the whole process
- # will sleep! This is *extremely* helpful in debugging, assuming
- # you are familiar with the code. If you are not, please don't
- # mess with this, you are asking for trouble :)
- #
- # ENABLE_MANHOLE = False
- # MANHOLE_INTERFACE = 127.0.0.1
- # MANHOLE_PORT = 7222
- # MANHOLE_USER = admin
- # MANHOLE_PUBLIC_KEY = ssh-rsa AAAAB3NzaC1yc2EAAAABiwAaAIEAoxN0sv/e4eZCPpi3N3KYvyzRaBaMeS2RsOQ/cDuKv11dlNzVeiyc3RFmCv5Rjwn/lQ79y0zyHxw67qLyhQ/kDzINc4cY41ivuQXm2tPmgvexdrBv5nsfEpjs3gLZfJnyvlcVyWK/lId8WUvEWSWHTzsbtmXAF2raJMdgLTbQ8wE=
- # Patterns for all of the metrics this machine will store. Read more at
- # http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol#Bindings
- #
- # Example: store all sales, linux servers, and utilization metrics
- # BIND_PATTERNS = sales.#, servers.linux.#, #.utilization
- #
- # Example: store everything
- # BIND_PATTERNS = #
- # To configure special settings for the carbon-cache instance 'b', uncomment this:
- #[cache:b]
- #LINE_RECEIVER_PORT = 2103
- #PICKLE_RECEIVER_PORT = 2104
- #CACHE_QUERY_PORT = 7102
- # and any other settings you want to customize, defaults are inherited
- # from [carbon] section.
- # You can then specify the --instance=b option to manage this instance
- {% for instance in graphite.cache_instances %}
- [cache:{{instance.name}}]
- LINE_RECEIVER_PORT = {{2003 + loop.index * 100}}
- UDP_RECEIVER_PORT = {{2003 + loop.index * 100}}
- PICKLE_RECEIVER_PORT = {{2004 + loop.index * 100}}
- CACHE_QUERY_PORT = {{7002 + loop.index * 100}}
- {% endfor %}
- [relay]
- USER = www-data
- LINE_RECEIVER_INTERFACE = 0.0.0.0
- LINE_RECEIVER_PORT = 2003
- PICKLE_RECEIVER_INTERFACE = 0.0.0.0
- PICKLE_RECEIVER_PORT = 2004
- # Set to false to disable logging of successful connections
- LOG_LISTENER_CONNECTIONS = True
- # Carbon-relay has several options for metric routing controlled by RELAY_METHOD
- #
- # Use relay-rules.conf to route metrics to destinations based on pattern rules
- #RELAY_METHOD = rules
- #
- # Use consistent-hashing for even distribution of metrics between destinations
- #RELAY_METHOD = consistent-hashing
- #
- # Use consistent-hashing but take into account an aggregation-rules.conf shared
- # by downstream carbon-aggregator daemons. This will ensure that all metrics
- # that map to a given aggregation rule are sent to the same carbon-aggregator
- # instance.
- # Enable this for carbon-relays that send to a group of carbon-aggregators
- RELAY_METHOD = {{graphite.relay.method}}
- #RELAY_METHOD = rules
- # If you use consistent-hashing you can add redundancy by replicating every
- # datapoint to more than one machine.
- REPLICATION_FACTOR = 1
- # For REPLICATION_FACTOR >=2, set DIVERSE_REPLICAS to True to guarantee replicas
- # across distributed hosts. With this setting disabled, it's possible that replicas
- # may be sent to different caches on the same host. This has been the default
- # behavior since introduction of 'consistent-hashing' relay method.
- # Note that enabling this on an existing pre-0.9.14 cluster will require rebalancing
- # your metrics across the cluster nodes using a tool like Carbonate.
- #DIVERSE_REPLICAS = False
- # This is a list of carbon daemons we will send any relayed or
- # generated metrics to. The default provided would send to a single
- # carbon-cache instance on the default port. However if you
- # use multiple carbon-cache instances then it would look like this:
- #
- # DESTINATIONS = 127.0.0.1:2004:a, 127.0.0.1:2104:b
- #
- # The general form is IP:PORT:INSTANCE where the :INSTANCE part is
- # optional and refers to the "None" instance if omitted.
- #
- # Note that if the destinations are all carbon-caches then this should
- # exactly match the webapp's CARBONLINK_HOSTS setting in terms of
- # instances listed (order matters!).
- #
- # If using RELAY_METHOD = rules, all destinations used in relay-rules.conf
- # must be defined in this list
- DESTINATIONS = {% for instance in graphite.cache_instances %}127.0.0.1:{{2004 + loop.index * 100}}:{{instance.name}}{% if not loop.last %}, {% endif %}{% endfor %}
- # This defines the maximum "message size" between carbon daemons.
- # You shouldn't need to tune this unless you really know what you're doing.
- MAX_DATAPOINTS_PER_MESSAGE = 500
- MAX_QUEUE_SIZE = 10000
- # This is the percentage that the queue must be empty before it will accept
- # more messages. For a larger site, if the queue is very large it makes sense
- # to tune this to allow for incoming stats. So if you have an average
- # flow of 100k stats/minute, and a MAX_QUEUE_SIZE of 3,000,000, it makes sense
- # to allow stats to start flowing when you've cleared the queue to 95% since
- # you should have space to accommodate the next minute's worth of stats
- # even before the relay incrementally clears more of the queue
- QUEUE_LOW_WATERMARK_PCT = 0.8
- # Set this to False to drop datapoints when any send queue (sending datapoints
- # to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
- # default) then sockets over which metrics are received will temporarily stop accepting
- # data until the send queues fall below QUEUE_LOW_WATERMARK_PCT * MAX_QUEUE_SIZE.
- USE_FLOW_CONTROL = True
- # Set this to True to enable whitelisting and blacklisting of metrics in
- # CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
- # empty, all metrics will pass through
- # USE_WHITELIST = False
- # By default, carbon itself will log statistics (such as a count,
- # metricsReceived) with the top level prefix of 'carbon' at an interval of 60
- # seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
- CARBON_METRIC_PREFIX = carbon
- CARBON_METRIC_INTERVAL = 60
- [aggregator]
- LINE_RECEIVER_INTERFACE = 0.0.0.0
- LINE_RECEIVER_PORT = 2023
- PICKLE_RECEIVER_INTERFACE = 0.0.0.0
- PICKLE_RECEIVER_PORT = 2024
- # Set to false to disable logging of successful connections
- LOG_LISTENER_CONNECTIONS = True
- # If set true, metric received will be forwarded to DESTINATIONS in addition to
- # the output of the aggregation rules. If set false the carbon-aggregator will
- # only ever send the output of aggregation. Default value is set to false and will not forward
- FORWARD_ALL = False
- # Filenames of the configuration files to use for this instance of aggregator.
- # Filenames are relative to CONF_DIR.
- #
- # AGGREGATION_RULES = aggregation-rules.conf
- # REWRITE_RULES = rewrite-rules.conf
- # This is a list of carbon daemons we will send any relayed or
- # generated metrics to. The default provided would send to a single
- # carbon-cache instance on the default port. However if you
- # use multiple carbon-cache instances then it would look like this:
- #
- # DESTINATIONS = 127.0.0.1:2004:a, 127.0.0.1:2104:b
- #
- # The format is comma-delimited IP:PORT:INSTANCE where the :INSTANCE part is
- # optional and refers to the "None" instance if omitted.
- #
- # Note that if the destinations are all carbon-caches then this should
- # exactly match the webapp's CARBONLINK_HOSTS setting in terms of
- # instances listed (order matters!).
- DESTINATIONS = 127.0.0.1:2004
- # If you want to add redundancy to your data by replicating every
- # datapoint to more than one machine, increase this.
- REPLICATION_FACTOR = 1
- # This is the maximum number of datapoints that can be queued up
- # for a single destination. Once this limit is hit, we will
- # stop accepting new data if USE_FLOW_CONTROL is True, otherwise
- # we will drop any subsequently received datapoints.
- MAX_QUEUE_SIZE = 10000
- # Set this to False to drop datapoints when any send queue (sending datapoints
- # to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
- # default) then sockets over which metrics are received will temporarily stop accepting
- # data until the send queues fall below 80% MAX_QUEUE_SIZE.
- USE_FLOW_CONTROL = True
- # This defines the maximum "message size" between carbon daemons.
- # You shouldn't need to tune this unless you really know what you're doing.
- MAX_DATAPOINTS_PER_MESSAGE = 500
- # This defines how many datapoints the aggregator remembers for
- # each metric. Aggregation only happens for datapoints that fall in
- # the past MAX_AGGREGATION_INTERVALS * intervalSize seconds.
- MAX_AGGREGATION_INTERVALS = 5
- # By default (WRITE_BACK_FREQUENCY = 0), carbon-aggregator will write back
- # aggregated data points once every rule.frequency seconds, on a per-rule basis.
- # Set this (WRITE_BACK_FREQUENCY = N) to write back all aggregated data points
- # every N seconds, independent of rule frequency. This is useful, for example,
- # to be able to query partially aggregated metrics from carbon-cache without
- # having to first wait rule.frequency seconds.
- # WRITE_BACK_FREQUENCY = 0
- # Set this to True to enable whitelisting and blacklisting of metrics in
- # CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
- # empty, all metrics will pass through
- # USE_WHITELIST = False
- # By default, carbon itself will log statistics (such as a count,
- # metricsReceived) with the top level prefix of 'carbon' at an interval of 60
- # seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
- # CARBON_METRIC_PREFIX = carbon
- # CARBON_METRIC_INTERVAL = 60
|