Index: compute_engine_scripts/monitoring/carbon.conf |
diff --git a/compute_engine_scripts/monitoring/carbon.conf b/compute_engine_scripts/monitoring/carbon.conf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6a67c2b025a39c14b3bbd49e9a30db78ee2c2b1a |
--- /dev/null |
+++ b/compute_engine_scripts/monitoring/carbon.conf |
@@ -0,0 +1,347 @@ |
+[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 whipser/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/ |
+ |
+# Enable daily log rotation. If disabled, a kill -HUP can be used after a manual rotate |
+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 = |
+# |
+# 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 (like at 50) is a good way to ensure your graphite |
+# system will not be adversely impacted when a bunch of new metrics are |
+# sent to it. The trade off is that it will take much longer for those metrics' |
+# database files to all get created and thus longer until the data becomes usable. |
+# Setting this value high (like "inf" for infinity) will cause graphite to create |
+# the files quickly but at the risk of slowing I/O down considerably for a while. |
+MAX_CREATES_PER_MINUTE = 50 |
+ |
+LINE_RECEIVER_INTERFACE = 0.0.0.0 |
+LINE_RECEIVER_PORT = 2003 |
+ |
+# 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 = 0.0.0.0 |
+UDP_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 |
+ |
+# 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 = 0.0.0.0 |
+CACHE_QUERY_PORT = 7002 |
+ |
+# 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 = sorted |
+ |
+# 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 = False |
+ |
+# 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 |
+ |
+# 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 |
+ |
+ |
+ |
+[relay] |
+LINE_RECEIVER_INTERFACE = 0.0.0.0 |
+LINE_RECEIVER_PORT = 2013 |
+PICKLE_RECEIVER_INTERFACE = 0.0.0.0 |
+PICKLE_RECEIVER_PORT = 2014 |
+ |
+# 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 = aggregated-consistent-hashing |
+RELAY_METHOD = rules |
+ |
+# If you use consistent-hashing you can add redundancy by replicating every |
+# datapoint to more than one machine. |
+REPLICATION_FACTOR = 1 |
+ |
+# 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 = 127.0.0.1:2004 |
+ |
+# 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 |
+ |
+# 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 |
+ |
+# 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. |
+FORWARD_ALL = True |
+ |
+# 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 |
+ |