# Telegraf Configuration # # Telegraf is entirely plugin driven. All metrics are gathered from the # declared inputs, and sent to the declared outputs. # # Plugins must be declared in here to be active. # To deactivate a plugin, comment out the name and any variables. # # Use 'telegraf -config telegraf.conf -test' to see what metrics a config # file would generate. # # Environment variables can be used anywhere in this config file, simply prepend # them with $. For strings the variable must be within quotes (ie, "$STR_VAR"), # for numbers and booleans they should be plain (ie, $INT_VAR, $BOOL_VAR) # Global tags can be specified here in key="value" format. [global_tags] # dc = "us-east-1" # will tag all metrics with dc=us-east-1 # rack = "1a" ## Environment variables can be used as tags, and throughout the config file # user = "$USER" # Configuration for telegraf agent [agent] ## Default data collection interval for all inputs interval = "10s" ## Rounds collection interval to 'interval' ## ie, if interval="10s" then always collect on :00, :10, :20, etc. round_interval = true ## Telegraf will send metrics to outputs in batches of at most ## metric_batch_size metrics. ## This controls the size of writes that Telegraf sends to output plugins. metric_batch_size = 1000 ## For failed writes, telegraf will cache metric_buffer_limit metrics for each ## output, and will flush this buffer on a successful write. Oldest metrics ## are dropped first when this buffer fills. ## This buffer only fills when writes fail to output plugin(s). metric_buffer_limit = 10000 ## Collection jitter is used to jitter the collection by a random amount. ## Each plugin will sleep for a random time within jitter before collecting. ## This can be used to avoid many plugins querying things like sysfs at the ## same time, which can have a measurable effect on the system. collection_jitter = "0s" ## Default flushing interval for all outputs. You shouldn't set this below ## interval. Maximum flush_interval will be flush_interval + flush_jitter flush_interval = "10s" ## Jitter the flush interval by a random amount. This is primarily to avoid ## large write spikes for users running a large number of telegraf instances. ## ie, a jitter of 5s and interval 10s means flushes will happen every 10-15s flush_jitter = "0s" ## By default or when set to "0s", precision will be set to the same ## timestamp order as the collection interval, with the maximum being 1s. ## ie, when interval = "10s", precision will be "1s" ## when interval = "250ms", precision will be "1ms" ## Precision will NOT be used for service inputs. It is up to each individual ## service input to set the timestamp at the appropriate precision. ## Valid time units are "ns", "us" (or "µs"), "ms", "s". precision = "" ## Logging configuration: ## Run telegraf with debug log messages. debug = false ## Run telegraf in quiet mode (error log messages only). quiet = false ## Specify the log file name. The empty string means to log to stderr. logfile = "" ## Override default hostname, if empty use os.Hostname() hostname = "" ## If set to true, do no set the "host" tag in the telegraf agent. omit_hostname = false ############################################################################### # OUTPUT PLUGINS # ############################################################################### # Configuration for influxdb server to send metrics to [[outputs.influxdb]] ## The HTTP or UDP URL for your InfluxDB instance. Each item should be ## of the form: ## scheme "://" host [ ":" port] ## ## Multiple urls can be specified as part of the same cluster, ## this means that only ONE of the urls will be written to each interval. # urls = ["udp://localhost:8089"] # UDP endpoint example urls = ["http://localhost:8086"] # required ## The target database for metrics (telegraf will create it if not exists). database = "telegraf" # required ## Name of existing retention policy to write to. Empty string writes to ## the default retention policy. retention_policy = "" ## Write consistency (clusters only), can be: "any", "one", "quorum", "all" write_consistency = "any" ## Write timeout (for the InfluxDB client), formatted as a string. ## If not provided, will default to 5s. 0s means no timeout (not recommended). timeout = "5s" # username = "telegraf" # password = "metricsmetricsmetricsmetrics" ## Set the user agent for HTTP POSTs (can be useful for log differentiation) # user_agent = "telegraf" ## Set UDP payload size, defaults to InfluxDB UDP Client default (512 bytes) # udp_payload = 512 ## Optional SSL Config # ssl_ca = "/etc/telegraf/ca.pem" # ssl_cert = "/etc/telegraf/cert.pem" # ssl_key = "/etc/telegraf/key.pem" ## Use SSL but skip chain & host verification # insecure_skip_verify = false ## HTTP Proxy Config # http_proxy = "http://corporate.proxy:3128" ## Compress each HTTP request payload using GZIP. # content_encoding = "gzip" # # Configuration for Amon Server to send metrics to. # [[outputs.amon]] # ## Amon Server Key # server_key = "my-server-key" # required. # # ## Amon Instance URL # amon_instance = "https://youramoninstance" # required # # ## Connection timeout. # # timeout = "5s" # # Configuration for the AMQP server to send metrics to # [[outputs.amqp]] # ## AMQP url # url = "amqp://localhost:5672/influxdb" # ## AMQP exchange # exchange = "telegraf" # ## Auth method. PLAIN and EXTERNAL are supported # ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as # ## described here: https://www.rabbitmq.com/plugins.html # # auth_method = "PLAIN" # ## Telegraf tag to use as a routing key # ## ie, if this tag exists, its value will be used as the routing key # routing_tag = "host" # # ## InfluxDB retention policy # # retention_policy = "default" # ## InfluxDB database # # database = "telegraf" # # ## Write timeout, formatted as a string. If not provided, will default # ## to 5s. 0s means no timeout (not recommended). # # timeout = "5s" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Configuration for AWS CloudWatch output. # [[outputs.cloudwatch]] # ## Amazon REGION # region = "us-east-1" # # ## Amazon Credentials # ## Credentials are loaded in the following order # ## 1) Assumed credentials via STS if role_arn is specified # ## 2) explicit credentials from 'access_key' and 'secret_key' # ## 3) shared profile from 'profile' # ## 4) environment variables # ## 5) shared credentials file # ## 6) EC2 Instance Profile # #access_key = "" # #secret_key = "" # #token = "" # #role_arn = "" # #profile = "" # #shared_credential_file = "" # # ## Namespace for the CloudWatch MetricDatums # namespace = "InfluxData/Telegraf" # # Configuration for DataDog API to send metrics to. # [[outputs.datadog]] # ## Datadog API key # apikey = "my-secret-key" # required. # # ## Connection timeout. # # timeout = "5s" # # Send metrics to nowhere at all # [[outputs.discard]] # # no configuration # # Configuration for Elasticsearch to send metrics to. # [[outputs.elasticsearch]] # ## The full HTTP endpoint URL for your Elasticsearch instance # ## Multiple urls can be specified as part of the same cluster, # ## this means that only ONE of the urls will be written to each interval. # urls = [ "http://node1.es.example.com:9200" ] # required. # ## Elasticsearch client timeout, defaults to "5s" if not set. # timeout = "5s" # ## Set to true to ask Elasticsearch a list of all cluster nodes, # ## thus it is not necessary to list all nodes in the urls config option. # enable_sniffer = false # ## Set the interval to check if the Elasticsearch nodes are available # ## Setting to "0s" will disable the health check (not recommended in production) # health_check_interval = "10s" # ## HTTP basic authentication details (eg. when using Shield) # # username = "telegraf" # # password = "mypassword" # # ## Index Config # ## The target index for metrics (Elasticsearch will create if it not exists). # ## You can use the date specifiers below to create indexes per time frame. # ## The metric timestamp will be used to decide the destination index name # # %Y - year (2016) # # %y - last two digits of year (00..99) # # %m - month (01..12) # # %d - day of month (e.g., 01) # # %H - hour (00..23) # index_name = "telegraf-%Y.%m.%d" # required. # # ## Template Config # ## Set to true if you want telegraf to manage its index template. # ## If enabled it will create a recommended index template for telegraf indexes # manage_template = true # ## The template name used for telegraf indexes # template_name = "telegraf" # ## Set to true if you want telegraf to overwrite an existing template # overwrite_template = false # # Send telegraf metrics to file(s) # [[outputs.file]] # ## Files to write to, "stdout" is a specially handled file. # files = ["stdout", "/tmp/metrics.out"] # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Configuration for Graphite server to send metrics to # [[outputs.graphite]] # ## TCP endpoint for your graphite instance. # ## If multiple endpoints are configured, output will be load balanced. # ## Only one of the endpoints will be written to with each iteration. # servers = ["localhost:2003"] # ## Prefix metrics name # prefix = "" # ## Graphite output template # ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # template = "host.tags.measurement.field" # ## timeout in seconds for the write connection to graphite # timeout = 2 # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Send telegraf metrics to graylog(s) # [[outputs.graylog]] # ## UDP endpoint for your graylog instance. # servers = ["127.0.0.1:12201", "192.168.1.1:12201"] # # Configuration for sending metrics to an Instrumental project # [[outputs.instrumental]] # ## Project API Token (required) # api_token = "API Token" # required # ## Prefix the metrics with a given name # prefix = "" # ## Stats output template (Graphite formatting) # ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite # template = "host.tags.measurement.field" # ## Timeout in seconds to connect # timeout = "2s" # ## Display Communcation to Instrumental # debug = false # # Configuration for the Kafka server to send metrics to # [[outputs.kafka]] # ## URLs of kafka brokers # brokers = ["localhost:9092"] # ## Kafka topic for producer messages # topic = "telegraf" # ## Telegraf tag to use as a routing key # ## ie, if this tag exists, its value will be used as the routing key # routing_tag = "host" # # ## CompressionCodec represents the various compression codecs recognized by # ## Kafka in messages. # ## 0 : No compression # ## 1 : Gzip compression # ## 2 : Snappy compression # compression_codec = 0 # # ## RequiredAcks is used in Produce Requests to tell the broker how many # ## replica acknowledgements it must see before responding # ## 0 : the producer never waits for an acknowledgement from the broker. # ## This option provides the lowest latency but the weakest durability # ## guarantees (some data will be lost when a server fails). # ## 1 : the producer gets an acknowledgement after the leader replica has # ## received the data. This option provides better durability as the # ## client waits until the server acknowledges the request as successful # ## (only messages that were written to the now-dead leader but not yet # ## replicated will be lost). # ## -1: the producer gets an acknowledgement after all in-sync replicas have # ## received the data. This option provides the best durability, we # ## guarantee that no messages will be lost as long as at least one in # ## sync replica remains. # required_acks = -1 # # ## The total number of times to retry sending a message # max_retry = 3 # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Optional SASL Config # # sasl_username = "kafka" # # sasl_password = "secret" # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Configuration for the AWS Kinesis output. # [[outputs.kinesis]] # ## Amazon REGION of kinesis endpoint. # region = "ap-southeast-2" # # ## Amazon Credentials # ## Credentials are loaded in the following order # ## 1) Assumed credentials via STS if role_arn is specified # ## 2) explicit credentials from 'access_key' and 'secret_key' # ## 3) shared profile from 'profile' # ## 4) environment variables # ## 5) shared credentials file # ## 6) EC2 Instance Profile # #access_key = "" # #secret_key = "" # #token = "" # #role_arn = "" # #profile = "" # #shared_credential_file = "" # # ## Kinesis StreamName must exist prior to starting telegraf. # streamname = "StreamName" # ## PartitionKey as used for sharding data. # partitionkey = "PartitionKey" # ## If set the paritionKey will be a random UUID on every put. # ## This allows for scaling across multiple shards in a stream. # ## This will cause issues with ordering. # use_random_partitionkey = false # # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # ## debug will show upstream aws messages. # debug = false # # Configuration for Librato API to send metrics to. # [[outputs.librato]] # ## Librator API Docs # ## http://dev.librato.com/v1/metrics-authentication # ## Librato API user # api_user = "telegraf@influxdb.com" # required. # ## Librato API token # api_token = "my-secret-token" # required. # ## Debug # # debug = false # ## Connection timeout. # # timeout = "5s" # ## Output source Template (same as graphite buckets) # ## see https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md#graphite # ## This template is used in librato's source (not metric's name) # template = "host" # # # Configuration for MQTT server to send metrics to # [[outputs.mqtt]] # servers = ["localhost:1883"] # required. # # ## MQTT outputs send metrics to this topic format # ## "///" # ## ex: prefix/web01.example.com/mem # topic_prefix = "telegraf" # # ## username and password to connect MQTT server. # # username = "telegraf" # # password = "metricsmetricsmetricsmetrics" # # ## client ID, if not set a random ID is generated # # client_id = "" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Send telegraf measurements to NATS # [[outputs.nats]] # ## URLs of NATS servers # servers = ["nats://localhost:4222"] # ## Optional credentials # # username = "" # # password = "" # ## NATS subject for producer messages # subject = "telegraf" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Send telegraf measurements to NSQD # [[outputs.nsq]] # ## Location of nsqd instance listening on TCP # server = "localhost:4150" # ## NSQ topic for producer messages # topic = "telegraf" # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Configuration for OpenTSDB server to send metrics to # [[outputs.opentsdb]] # ## prefix for metrics keys # prefix = "my.specific.prefix." # # ## DNS name of the OpenTSDB server # ## Using "opentsdb.example.com" or "tcp://opentsdb.example.com" will use the # ## telnet API. "http://opentsdb.example.com" will use the Http API. # host = "opentsdb.example.com" # # ## Port of the OpenTSDB server # port = 4242 # # ## Number of data points to send to OpenTSDB in Http requests. # ## Not used with telnet API. # httpBatchSize = 50 # # ## Debug true - Prints OpenTSDB communication # debug = false # # Configuration for the Prometheus client to spawn # [[outputs.prometheus_client]] # ## Address to listen on # # listen = ":9273" # # ## Interval to expire metrics and not deliver to prometheus, 0 == no expiration # # expiration_interval = "60s" # # Configuration for the Riemann server to send metrics to # [[outputs.riemann]] # ## The full TCP or UDP URL of the Riemann server # url = "tcp://localhost:5555" # # ## Riemann event TTL, floating-point time in seconds. # ## Defines how long that an event is considered valid for in Riemann # # ttl = 30.0 # # ## Separator to use between measurement and field name in Riemann service name # ## This does not have any effect if 'measurement_as_attribute' is set to 'true' # separator = "/" # # ## Set measurement name as Riemann attribute 'measurement', instead of prepending it to the Riemann service name # # measurement_as_attribute = false # # ## Send string metrics as Riemann event states. # ## Unless enabled all string metrics will be ignored # # string_as_state = false # # ## A list of tag keys whose values get sent as Riemann tags. # ## If empty, all Telegraf tag values will be sent as tags # # tag_keys = ["telegraf","custom_tag"] # # ## Additional Riemann tags to send. # # tags = ["telegraf-output"] # # ## Description for Riemann event # # description_text = "metrics collected from telegraf" # # ## Riemann client write timeout, defaults to "5s" if not set. # # timeout = "5s" # # Configuration for the Riemann server to send metrics to # [[outputs.riemann_legacy]] # ## URL of server # url = "localhost:5555" # ## transport protocol to use either tcp or udp # transport = "tcp" # ## separator to use between input name and field name in Riemann service name # separator = " " # # Generic socket writer capable of handling multiple socket types. # [[outputs.socket_writer]] # ## URL to connect to # # address = "tcp://127.0.0.1:8094" # # address = "tcp://example.com:http" # # address = "tcp4://127.0.0.1:8094" # # address = "tcp6://127.0.0.1:8094" # # address = "tcp6://[2001:db8::1]:8094" # # address = "udp://127.0.0.1:8094" # # address = "udp4://127.0.0.1:8094" # # address = "udp6://127.0.0.1:8094" # # address = "unix:///tmp/telegraf.sock" # # address = "unixgram:///tmp/telegraf.sock" # # ## Period between keep alive probes. # ## Only applies to TCP sockets. # ## 0 disables keep alive probes. # ## Defaults to the OS configuration. # # keep_alive_period = "5m" # # ## Data format to generate. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # # data_format = "influx" ############################################################################### # PROCESSOR PLUGINS # ############################################################################### # # Print all metrics that pass through this filter. # [[processors.printer]] ############################################################################### # AGGREGATOR PLUGINS # ############################################################################### # # Keep the aggregate histogram of each metric passing through. # [[aggregators.histogram]] # ## General Aggregator Arguments: # ## The period on which to flush & clear the aggregator. # period = "30s" # ## If true, the original metric will be dropped by the # ## aggregator and will not get sent to the output plugins. # drop_original = false # # ## The example of config to aggregate histogram for all fields of specified metric. # [[aggregators.histogram.config]] # ## The set of buckets. # buckets = [0.0, 15.6, 34.5, 49.1, 71.5, 80.5, 94.5, 100.0] # ## The name of metric. # metric_name = "cpu" # # ## The example of config to aggregate for specified fields of metric. # [[aggregators.histogram.config]] # ## The set of buckets. # buckets = [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0] # ## The name of metric. # metric_name = "diskio" # ## The concrete fields of metric # metric_fields = ["io_time", "read_time", "write_time"] # # Keep the aggregate min/max of each metric passing through. # [[aggregators.minmax]] # ## General Aggregator Arguments: # ## The period on which to flush & clear the aggregator. # period = "30s" # ## If true, the original metric will be dropped by the # ## aggregator and will not get sent to the output plugins. # drop_original = false ############################################################################### # INPUT PLUGINS # ############################################################################### # Read metrics about cpu usage [[inputs.cpu]] ## Whether to report per-cpu stats or not percpu = true ## Whether to report total system cpu stats or not totalcpu = true ## If true, collect raw CPU time metrics. collect_cpu_time = false ## If true, compute and report the sum of all non-idle CPU states. report_active = false # Read metrics about disk usage by mount point [[inputs.disk]] ## By default, telegraf gather stats for all mountpoints. ## Setting mountpoints will restrict the stats to the specified mountpoints. # mount_points = ["/"] ## Ignore some mountpoints by filesystem type. For example (dev)tmpfs (usually ## present on /run, /var/run, /dev/shm or /dev). ignore_fs = ["tmpfs", "devtmpfs", "devfs"] # Read metrics about disk IO by device [[inputs.diskio]] ## By default, telegraf will gather stats for all devices including ## disk partitions. ## Setting devices will restrict the stats to the specified devices. # devices = ["sda", "sdb"] ## Uncomment the following line if you need disk serial numbers. # skip_serial_number = false # ## On systems which support it, device metadata can be added in the form of ## tags. ## Currently only Linux is supported via udev properties. You can view ## available properties for a device by running: ## 'udevadm info -q property -n /dev/sda' # device_tags = ["ID_FS_TYPE", "ID_FS_USAGE"] # ## Using the same metadata source as device_tags, you can also customize the ## name of the device via templates. ## The 'name_templates' parameter is a list of templates to try and apply to ## the device. The template may contain variables in the form of '$PROPERTY' or ## '${PROPERTY}'. The first template which does not contain any variables not ## present for the device is used as the device name tag. ## The typical use case is for LVM volumes, to get the VG/LV name instead of ## the near-meaningless DM-0 name. # name_templates = ["$ID_FS_LABEL","$DM_VG_NAME/$DM_LV_NAME"] # Get kernel statistics from /proc/stat [[inputs.kernel]] # no configuration # Read metrics about memory usage [[inputs.mem]] # no configuration # Get the number of processes and group them by status [[inputs.processes]] # no configuration # Read metrics about swap memory usage [[inputs.swap]] # no configuration # Read metrics about system load & uptime [[inputs.system]] # no configuration # # Read stats from aerospike server(s) # [[inputs.aerospike]] # ## Aerospike servers to connect to (with port) # ## This plugin will query all namespaces the aerospike # ## server has configured and get stats for them. # servers = ["localhost:3000"] # # Read Apache status information (mod_status) # [[inputs.apache]] # ## An array of URLs to gather from, must be directed at the machine # ## readable version of the mod_status page including the auto query string. # ## Default is "http://localhost/server-status?auto". # urls = ["http://localhost/server-status?auto"] # # ## Credentials for basic HTTP authentication. # # username = "myuser" # # password = "mypassword" # # ## Maximum time to receive response. # # response_timeout = "5s" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read metrics of bcache from stats_total and dirty_data # [[inputs.bcache]] # ## Bcache sets path # ## If not specified, then default is: # bcachePath = "/sys/fs/bcache" # # ## By default, telegraf gather stats for all bcache devices # ## Setting devices will restrict the stats to the specified # ## bcache devices. # bcacheDevs = ["bcache0"] # # Read Cassandra metrics through Jolokia # [[inputs.cassandra]] # # This is the context root used to compose the jolokia url # context = "/jolokia/read" # ## List of cassandra servers exposing jolokia read service # servers = ["myuser:mypassword@10.10.10.1:8778","10.10.10.2:8778",":8778"] # ## List of metrics collected on above servers # ## Each metric consists of a jmx path. # ## This will collect all heap memory usage metrics from the jvm and # ## ReadLatency metrics for all keyspaces and tables. # ## "type=Table" in the query works with Cassandra3.0. Older versions might # ## need to use "type=ColumnFamily" # metrics = [ # "/java.lang:type=Memory/HeapMemoryUsage", # "/org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=ReadLatency" # ] # # Collects performance metrics from the MON and OSD nodes in a Ceph storage cluster. # [[inputs.ceph]] # ## This is the recommended interval to poll. Too frequent and you will lose # ## data points due to timeouts during rebalancing and recovery # interval = '1m' # # ## All configuration values are optional, defaults are shown below # # ## location of ceph binary # ceph_binary = "/usr/bin/ceph" # # ## directory in which to look for socket files # socket_dir = "/var/run/ceph" # # ## prefix of MON and OSD socket files, used to determine socket type # mon_prefix = "ceph-mon" # osd_prefix = "ceph-osd" # # ## suffix used to identify socket files # socket_suffix = "asok" # # ## Ceph user to authenticate as # ceph_user = "client.admin" # # ## Ceph configuration to use to locate the cluster # ceph_config = "/etc/ceph/ceph.conf" # # ## Whether to gather statistics via the admin socket # gather_admin_socket_stats = true # # ## Whether to gather statistics via ceph commands # gather_cluster_stats = false # # Read specific statistics per cgroup # [[inputs.cgroup]] # ## Directories in which to look for files, globs are supported. # ## Consider restricting paths to the set of cgroups you really # ## want to monitor if you have a large number of cgroups, to avoid # ## any cardinality issues. # # paths = [ # # "/cgroup/memory", # # "/cgroup/memory/child1", # # "/cgroup/memory/child2/*", # # ] # ## cgroup stat fields, as file names, globs are supported. # ## these file names are appended to each path from above. # # files = ["memory.*usage*", "memory.limit_in_bytes"] # # Get standard chrony metrics, requires chronyc executable. # [[inputs.chrony]] # ## If true, chronyc tries to perform a DNS lookup for the time server. # # dns_lookup = false # # Pull Metric Statistics from Amazon CloudWatch # [[inputs.cloudwatch]] # ## Amazon Region # region = "us-east-1" # # ## Amazon Credentials # ## Credentials are loaded in the following order # ## 1) Assumed credentials via STS if role_arn is specified # ## 2) explicit credentials from 'access_key' and 'secret_key' # ## 3) shared profile from 'profile' # ## 4) environment variables # ## 5) shared credentials file # ## 6) EC2 Instance Profile # #access_key = "" # #secret_key = "" # #token = "" # #role_arn = "" # #profile = "" # #shared_credential_file = "" # # # The minimum period for Cloudwatch metrics is 1 minute (60s). However not all # # metrics are made available to the 1 minute period. Some are collected at # # 3 minute, 5 minute, or larger intervals. See https://aws.amazon.com/cloudwatch/faqs/#monitoring. # # Note that if a period is configured that is smaller than the minimum for a # # particular metric, that metric will not be returned by the Cloudwatch API # # and will not be collected by Telegraf. # # # ## Requested CloudWatch aggregation Period (required - must be a multiple of 60s) # period = "5m" # # ## Collection Delay (required - must account for metrics availability via CloudWatch API) # delay = "5m" # # ## Recomended: use metric 'interval' that is a multiple of 'period' to avoid # ## gaps or overlap in pulled data # interval = "5m" # # ## Configure the TTL for the internal cache of metrics. # ## Defaults to 1 hr if not specified # #cache_ttl = "10m" # # ## Metric Statistic Namespace (required) # namespace = "AWS/ELB" # # ## Maximum requests per second. Note that the global default AWS rate limit is # ## 400 reqs/sec, so if you define multiple namespaces, these should add up to a # ## maximum of 400. Optional - default value is 200. # ## See http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html # ratelimit = 200 # # ## Metrics to Pull (optional) # ## Defaults to all Metrics in Namespace if nothing is provided # ## Refreshes Namespace available metrics every 1h # #[[inputs.cloudwatch.metrics]] # # names = ["Latency", "RequestCount"] # # # # ## Dimension filters for Metric (optional) # # [[inputs.cloudwatch.metrics.dimensions]] # # name = "LoadBalancerName" # # value = "p-example" # # Collects conntrack stats from the configured directories and files. # [[inputs.conntrack]] # ## The following defaults would work with multiple versions of conntrack. # ## Note the nf_ and ip_ filename prefixes are mutually exclusive across # ## kernel versions, as are the directory locations. # # ## Superset of filenames to look for within the conntrack dirs. # ## Missing files will be ignored. # files = ["ip_conntrack_count","ip_conntrack_max", # "nf_conntrack_count","nf_conntrack_max"] # # ## Directories to search within for the conntrack files above. # ## Missing directrories will be ignored. # dirs = ["/proc/sys/net/ipv4/netfilter","/proc/sys/net/netfilter"] # # Gather health check statuses from services registered in Consul # [[inputs.consul]] # ## Most of these values defaults to the one configured on a Consul's agent level. # ## Optional Consul server address (default: "localhost") # # address = "localhost" # ## Optional URI scheme for the Consul server (default: "http") # # scheme = "http" # ## Optional ACL token used in every request (default: "") # # token = "" # ## Optional username used for request HTTP Basic Authentication (default: "") # # username = "" # ## Optional password used for HTTP Basic Authentication (default: "") # # password = "" # ## Optional data centre to query the health checks from (default: "") # # datacentre = "" # # Read metrics from one or many couchbase clusters # [[inputs.couchbase]] # ## specify servers via a url matching: # ## [protocol://][:password]@address[:port] # ## e.g. # ## http://couchbase-0.example.com/ # ## http://admin:secret@couchbase-0.example.com:8091/ # ## # ## If no servers are specified, then localhost is used as the host. # ## If no protocol is specifed, HTTP is used. # ## If no port is specified, 8091 is used. # servers = ["http://localhost:8091"] # # Read CouchDB Stats from one or more servers # [[inputs.couchdb]] # ## Works with CouchDB stats endpoints out of the box # ## Multiple HOSTs from which to read CouchDB stats: # hosts = ["http://localhost:8086/_stats"] # # Read metrics from one or many disque servers # [[inputs.disque]] # ## An array of URI to gather stats about. Specify an ip or hostname # ## with optional port and password. # ## ie disque://localhost, disque://10.10.3.33:18832, 10.0.0.1:10000, etc. # ## If no servers are specified, then localhost is used as the host. # servers = ["localhost"] # # Provide a native collection for dmsetup based statistics for dm-cache # [[inputs.dmcache]] # ## Whether to report per-device stats or not # per_device = true # # Query given DNS server and gives statistics # [[inputs.dns_query]] # ## servers to query # servers = ["8.8.8.8"] # # ## Network is the network protocol name. # # network = "udp" # # ## Domains or subdomains to query. # # domains = ["."] # # ## Query record type. # ## Posible values: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, SRV. # # record_type = "A" # # ## Dns server port. # # port = 53 # # ## Query timeout in seconds. # # timeout = 2 # # Read metrics about docker containers # [[inputs.docker]] # ## Docker Endpoint # ## To use TCP, set endpoint = "tcp://[ip]:[port]" # ## To use environment variables (ie, docker-machine), set endpoint = "ENV" # endpoint = "unix:///var/run/docker.sock" # # ## Only collect metrics for these containers, collect all if empty # container_names = [] # # ## Containers to include and exclude. Globs accepted. # ## Note that an empty array for both will include all containers # container_name_include = [] # container_name_exclude = [] # # ## Timeout for docker list, info, and stats commands # timeout = "5s" # # ## Whether to report for each container per-device blkio (8:0, 8:1...) and # ## network (eth0, eth1, ...) stats or not # perdevice = true # ## Whether to report for each container total blkio and network stats or not # total = false # ## Which environment variables should we use as a tag # ##tag_env = ["JAVA_HOME", "HEAP_SIZE"] # # ## docker labels to include and exclude as tags. Globs accepted. # ## Note that an empty array for both will include all labels as tags # docker_label_include = [] # docker_label_exclude = [] # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read statistics from one or many dovecot servers # [[inputs.dovecot]] # ## specify dovecot servers via an address:port list # ## e.g. # ## localhost:24242 # ## # ## If no servers are specified, then localhost is used as the host. # servers = ["localhost:24242"] # ## Type is one of "user", "domain", "ip", or "global" # type = "global" # ## Wildcard matches like "*.com". An empty string "" is same as "*" # ## If type = "ip" filters should be # filters = [""] # # Read stats from one or more Elasticsearch servers or clusters # [[inputs.elasticsearch]] # ## specify a list of one or more Elasticsearch servers # # you can add username and password to your url to use basic authentication: # # servers = ["http://user:pass@localhost:9200"] # servers = ["http://localhost:9200"] # # ## Timeout for HTTP requests to the elastic search server(s) # http_timeout = "5s" # # ## When local is true (the default), the node will read only its own stats. # ## Set local to false when you want to read the node stats from all nodes # ## of the cluster. # local = true # # ## Set cluster_health to true when you want to also obtain cluster health stats # cluster_health = false # # ## Set cluster_stats to true when you want to also obtain cluster stats from the # ## Master node. # cluster_stats = false # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read metrics from one or more commands that can output to stdout # [[inputs.exec]] # ## Commands array # commands = [ # "/tmp/test.sh", # "/usr/bin/mycollector --foo=bar", # "/tmp/collect_*.sh" # ] # # ## Timeout for each command to complete. # timeout = "5s" # # ## measurement name suffix (for separating different commands) # name_suffix = "_mycollector" # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # Read metrics from fail2ban. # [[inputs.fail2ban]] # ## fail2ban-client require root access. # ## Setting 'use_sudo' to true will make use of sudo to run fail2ban-client. # ## Users must configure sudo to allow telegraf user to run fail2ban-client with no password. # ## This plugin run only "fail2ban-client status". # use_sudo = false # # Read stats about given file(s) # [[inputs.filestat]] # ## Files to gather stats about. # ## These accept standard unix glob matching rules, but with the addition of # ## ** as a "super asterisk". ie: # ## "/var/log/**.log" -> recursively find all .log files in /var/log # ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log # ## "/var/log/apache.log" -> just tail the apache log file # ## # ## See https://github.com/gobwas/glob for more examples # ## # files = ["/var/log/**.log"] # ## If true, read the entire file and calculate an md5 checksum. # md5 = false # # Read metrics exposed by fluentd in_monitor plugin # [[inputs.fluentd]] # ## This plugin reads information exposed by fluentd (using /api/plugins.json endpoint). # ## # ## Endpoint: # ## - only one URI is allowed # ## - https is not supported # endpoint = "http://localhost:24220/api/plugins.json" # # ## Define which plugins have to be excluded (based on "type" field - e.g. monitor_agent) # exclude = [ # "monitor_agent", # "dummy", # ] # # Read flattened metrics from one or more GrayLog HTTP endpoints # [[inputs.graylog]] # ## API endpoint, currently supported API: # ## # ## - multiple (Ex http://:12900/system/metrics/multiple) # ## - namespace (Ex http://:12900/system/metrics/namespace/{namespace}) # ## # ## For namespace endpoint, the metrics array will be ignored for that call. # ## Endpoint can contain namespace and multiple type calls. # ## # ## Please check http://[graylog-server-ip]:12900/api-browser for full list # ## of endpoints # servers = [ # "http://[graylog-server-ip]:12900/system/metrics/multiple", # ] # # ## Metrics list # ## List of metrics can be found on Graylog webservice documentation. # ## Or by hitting the the web service api at: # ## http://[graylog-host]:12900/system/metrics # metrics = [ # "jvm.cl.loaded", # "jvm.memory.pools.Metaspace.committed" # ] # # ## Username and password # username = "" # password = "" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read metrics of haproxy, via socket or csv stats page # [[inputs.haproxy]] # ## An array of address to gather stats about. Specify an ip on hostname # ## with optional port. ie localhost, 10.10.3.33:1936, etc. # ## Make sure you specify the complete path to the stats endpoint # ## including the protocol, ie http://10.10.3.33:1936/haproxy?stats # # ## If no servers are specified, then default to 127.0.0.1:1936/haproxy?stats # servers = ["http://myhaproxy.com:1936/haproxy?stats"] # # ## You can also use local socket with standard wildcard globbing. # ## Server address not starting with 'http' will be treated as a possible # ## socket, so both examples below are valid. # # servers = ["socket:/run/haproxy/admin.sock", "/run/haproxy/*.sock"] # # ## By default, some of the fields are renamed from what haproxy calls them. # ## Setting this option to true results in the plugin keeping the original # ## field names. # # keep_field_names = true # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Monitor disks' temperatures using hddtemp # [[inputs.hddtemp]] # ## By default, telegraf gathers temps data from all disks detected by the # ## hddtemp. # ## # ## Only collect temps from the selected disks. # ## # ## A * as the device name will return the temperature values of all disks. # ## # # address = "127.0.0.1:7634" # # devices = ["sda", "*"] # # HTTP/HTTPS request given an address a method and a timeout # [[inputs.http_response]] # ## Server address (default http://localhost) # # address = "http://localhost" # # ## Set response_timeout (default 5 seconds) # # response_timeout = "5s" # # ## HTTP Request Method # # method = "GET" # # ## Whether to follow redirects from the server (defaults to false) # # follow_redirects = false # # ## Optional HTTP Request Body # # body = ''' # # {'fake':'data'} # # ''' # # ## Optional substring or regex match in body of the response # # response_string_match = "\"service_status\": \"up\"" # # response_string_match = "ok" # # response_string_match = "\".*_status\".?:.?\"up\"" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## HTTP Request Headers (all values must be strings) # # [inputs.http_response.headers] # # Host = "github.com" # # Read flattened metrics from one or more JSON HTTP endpoints # [[inputs.httpjson]] # ## NOTE This plugin only reads numerical measurements, strings and booleans # ## will be ignored. # # ## Name for the service being polled. Will be appended to the name of the # ## measurement e.g. httpjson_webserver_stats # ## # ## Deprecated (1.3.0): Use name_override, name_suffix, name_prefix instead. # name = "webserver_stats" # # ## URL of each server in the service's cluster # servers = [ # "http://localhost:9999/stats/", # "http://localhost:9998/stats/", # ] # ## Set response_timeout (default 5 seconds) # response_timeout = "5s" # # ## HTTP method to use: GET or POST (case-sensitive) # method = "GET" # # ## List of tag names to extract from top-level of JSON server response # # tag_keys = [ # # "my_tag_1", # # "my_tag_2" # # ] # # ## HTTP parameters (all values must be strings). For "GET" requests, data # ## will be included in the query. For "POST" requests, data will be included # ## in the request body as "x-www-form-urlencoded". # # [inputs.httpjson.parameters] # # event_type = "cpu_spike" # # threshold = "0.75" # # ## HTTP Headers (all values must be strings) # # [inputs.httpjson.headers] # # X-Auth-Token = "my-xauth-token" # # apiVersion = "v1" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read InfluxDB-formatted JSON metrics from one or more HTTP endpoints # [[inputs.influxdb]] # ## Works with InfluxDB debug endpoints out of the box, # ## but other services can use this format too. # ## See the influxdb plugin's README for more details. # # ## Multiple URLs from which to read InfluxDB-formatted JSON # ## Default is "http://localhost:8086/debug/vars". # urls = [ # "http://localhost:8086/debug/vars" # ] # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## http request & header timeout # timeout = "5s" # # Collect statistics about itself # [[inputs.internal]] # ## If true, collect telegraf memory stats. # # collect_memstats = true # # This plugin gathers interrupts data from /proc/interrupts and /proc/softirqs. # [[inputs.interrupts]] # ## To filter which IRQs to collect, make use of tagpass / tagdrop, i.e. # # [inputs.interrupts.tagdrop] # # irq = [ "NET_RX", "TASKLET" ] # # Read metrics from the bare metal servers via IPMI # [[inputs.ipmi_sensor]] # ## optionally specify the path to the ipmitool executable # # path = "/usr/bin/ipmitool" # # # ## optionally specify one or more servers via a url matching # ## [username[:password]@][protocol[(address)]] # ## e.g. # ## root:passwd@lan(127.0.0.1) # ## # ## if no servers are specified, local machine sensor stats will be queried # ## # # servers = ["USERID:PASSW0RD@lan(192.168.1.1)"] # # ## Recomended: use metric 'interval' that is a multiple of 'timeout' to avoid # ## gaps or overlap in pulled data # interval = "30s" # # ## Timeout for the ipmitool command to complete # timeout = "20s" # # Gather packets and bytes throughput from iptables # [[inputs.iptables]] # ## iptables require root access on most systems. # ## Setting 'use_sudo' to true will make use of sudo to run iptables. # ## Users must configure sudo to allow telegraf user to run iptables with no password. # ## iptables can be restricted to only list command "iptables -nvL". # use_sudo = false # ## Setting 'use_lock' to true runs iptables with the "-w" option. # ## Adjust your sudo settings appropriately if using this option ("iptables -wnvl") # use_lock = false # ## defines the table to monitor: # table = "filter" # ## defines the chains to monitor. # ## NOTE: iptables rules without a comment will not be monitored. # ## Read the plugin documentation for more information. # chains = [ "INPUT" ] # # Read JMX metrics through Jolokia # [[inputs.jolokia]] # ## This is the context root used to compose the jolokia url # ## NOTE that Jolokia requires a trailing slash at the end of the context root # ## NOTE that your jolokia security policy must allow for POST requests. # context = "/jolokia/" # # ## This specifies the mode used # # mode = "proxy" # # # ## When in proxy mode this section is used to specify further # ## proxy address configurations. # ## Remember to change host address to fit your environment. # # [inputs.jolokia.proxy] # # host = "127.0.0.1" # # port = "8080" # # ## Optional http timeouts # ## # ## response_header_timeout, if non-zero, specifies the amount of time to wait # ## for a server's response headers after fully writing the request. # # response_header_timeout = "3s" # ## # ## client_timeout specifies a time limit for requests made by this client. # ## Includes connection time, any redirects, and reading the response body. # # client_timeout = "4s" # # ## Attribute delimiter # ## # ## When multiple attributes are returned for a single # ## [inputs.jolokia.metrics], the field name is a concatenation of the metric # ## name, and the attribute name, separated by the given delimiter. # # delimiter = "_" # # ## List of servers exposing jolokia read service # [[inputs.jolokia.servers]] # name = "as-server-01" # host = "127.0.0.1" # port = "8080" # # username = "myuser" # # password = "mypassword" # # ## List of metrics collected on above servers # ## Each metric consists in a name, a jmx path and either # ## a pass or drop slice attribute. # ## This collect all heap memory usage metrics. # [[inputs.jolokia.metrics]] # name = "heap_memory_usage" # mbean = "java.lang:type=Memory" # attribute = "HeapMemoryUsage" # # ## This collect thread counts metrics. # [[inputs.jolokia.metrics]] # name = "thread_count" # mbean = "java.lang:type=Threading" # attribute = "TotalStartedThreadCount,ThreadCount,DaemonThreadCount,PeakThreadCount" # # ## This collect number of class loaded/unloaded counts metrics. # [[inputs.jolokia.metrics]] # name = "class_count" # mbean = "java.lang:type=ClassLoading" # attribute = "LoadedClassCount,UnloadedClassCount,TotalLoadedClassCount" # # Read Kapacitor-formatted JSON metrics from one or more HTTP endpoints # [[inputs.kapacitor]] # ## Multiple URLs from which to read Kapacitor-formatted JSON # ## Default is "http://localhost:9092/kapacitor/v1/debug/vars". # urls = [ # "http://localhost:9092/kapacitor/v1/debug/vars" # ] # # ## Time limit for http requests # timeout = "5s" # # Get kernel statistics from /proc/vmstat # [[inputs.kernel_vmstat]] # # no configuration # # Read metrics from the kubernetes kubelet api # [[inputs.kubernetes]] # ## URL for the kubelet # url = "http://1.1.1.1:10255" # # ## Use bearer token for authorization # # bearer_token = /path/to/bearer/token # # ## Optional SSL Config # # ssl_ca = /path/to/cafile # # ssl_cert = /path/to/certfile # # ssl_key = /path/to/keyfile # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read metrics from a LeoFS Server via SNMP # [[inputs.leofs]] # ## An array of URLs of the form: # ## "udp://" host [ ":" port] # servers = ["udp://127.0.0.1:4020"] # # Provides Linux sysctl fs metrics # [[inputs.linux_sysctl_fs]] # # no configuration # # Read metrics from local Lustre service on OST, MDS # [[inputs.lustre2]] # ## An array of /proc globs to search for Lustre stats # ## If not specified, the default will work on Lustre 2.5.x # ## # # ost_procfiles = [ # # "/proc/fs/lustre/obdfilter/*/stats", # # "/proc/fs/lustre/osd-ldiskfs/*/stats", # # "/proc/fs/lustre/obdfilter/*/job_stats", # # ] # # mds_procfiles = [ # # "/proc/fs/lustre/mdt/*/md_stats", # # "/proc/fs/lustre/mdt/*/job_stats", # # ] # # Gathers metrics from the /3.0/reports MailChimp API # [[inputs.mailchimp]] # ## MailChimp API key # ## get from https://admin.mailchimp.com/account/api/ # api_key = "" # required # ## Reports for campaigns sent more than days_old ago will not be collected. # ## 0 means collect all. # days_old = 0 # ## Campaign ID to get, if empty gets all campaigns, this option overrides days_old # # campaign_id = "" # # Read metrics from one or many memcached servers # [[inputs.memcached]] # ## An array of address to gather stats about. Specify an ip on hostname # ## with optional port. ie localhost, 10.0.0.1:11211, etc. # servers = ["localhost:11211"] # # unix_sockets = ["/var/run/memcached.sock"] # # Telegraf plugin for gathering metrics from N Mesos masters # [[inputs.mesos]] # ## Timeout, in ms. # timeout = 100 # ## A list of Mesos masters. # masters = ["localhost:5050"] # ## Master metrics groups to be collected, by default, all enabled. # master_collections = [ # "resources", # "master", # "system", # "agents", # "frameworks", # "tasks", # "messages", # "evqueue", # "registrar", # ] # ## A list of Mesos slaves, default is [] # # slaves = [] # ## Slave metrics groups to be collected, by default, all enabled. # # slave_collections = [ # # "resources", # # "agent", # # "system", # # "executors", # # "tasks", # # "messages", # # ] # # Collects scores from a minecraft server's scoreboard using the RCON protocol # [[inputs.minecraft]] # ## server address for minecraft # # server = "localhost" # ## port for RCON # # port = "25575" # ## password RCON for mincraft server # # password = "" # # Read metrics from one or many MongoDB servers # [[inputs.mongodb]] # ## An array of URLs of the form: # ## "mongodb://" [user ":" pass "@"] host [ ":" port] # ## For example: # ## mongodb://user:auth_key@10.10.3.30:27017, # ## mongodb://10.10.3.33:18832, # servers = ["mongodb://127.0.0.1:27017"] # gather_perdb_stats = false # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Read metrics from one or many mysql servers # [[inputs.mysql]] # ## specify servers via a url matching: # ## [username[:password]@][protocol[(address)]]/[?tls=[true|false|skip-verify|custom]] # ## see https://github.com/go-sql-driver/mysql#dsn-data-source-name # ## e.g. # ## servers = ["user:passwd@tcp(127.0.0.1:3306)/?tls=false"] # ## servers = ["user@tcp(127.0.0.1:3306)/?tls=false"] # # # ## If no servers are specified, then localhost is used as the host. # servers = ["tcp(127.0.0.1:3306)/"] # ## the limits for metrics form perf_events_statements # perf_events_statements_digest_text_limit = 120 # perf_events_statements_limit = 250 # perf_events_statements_time_limit = 86400 # # # ## if the list is empty, then metrics are gathered from all databasee tables # table_schema_databases = [] # # # ## gather metrics from INFORMATION_SCHEMA.TABLES for databases provided above list # gather_table_schema = false # # # ## gather thread state counts from INFORMATION_SCHEMA.PROCESSLIST # gather_process_list = true # # # ## gather thread state counts from INFORMATION_SCHEMA.USER_STATISTICS # gather_user_statistics = true # # # ## gather auto_increment columns and max values from information schema # gather_info_schema_auto_inc = true # # # ## gather metrics from INFORMATION_SCHEMA.INNODB_METRICS # gather_innodb_metrics = true # # # ## gather metrics from SHOW SLAVE STATUS command output # gather_slave_status = true # # # ## gather metrics from SHOW BINARY LOGS command output # gather_binary_logs = false # # # ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_TABLE # gather_table_io_waits = false # # # ## gather metrics from PERFORMANCE_SCHEMA.TABLE_LOCK_WAITS # gather_table_lock_waits = false # # # ## gather metrics from PERFORMANCE_SCHEMA.TABLE_IO_WAITS_SUMMARY_BY_INDEX_USAGE # gather_index_io_waits = false # # # ## gather metrics from PERFORMANCE_SCHEMA.EVENT_WAITS # gather_event_waits = false # # # ## gather metrics from PERFORMANCE_SCHEMA.FILE_SUMMARY_BY_EVENT_NAME # gather_file_events_stats = false # # # ## gather metrics from PERFORMANCE_SCHEMA.EVENTS_STATEMENTS_SUMMARY_BY_DIGEST # gather_perf_events_statements = false # # # ## Some queries we may want to run less often (such as SHOW GLOBAL VARIABLES) # interval_slow = "30m" # # ## Optional SSL Config (will be used if tls=custom parameter specified in server uri) # ssl_ca = "/etc/telegraf/ca.pem" # ssl_cert = "/etc/telegraf/cert.pem" # ssl_key = "/etc/telegraf/key.pem" # # Read metrics about network interface usage # [[inputs.net]] # ## By default, telegraf gathers stats from any up interface (excluding loopback) # ## Setting interfaces will tell it to gather these explicit interfaces, # ## regardless of status. # ## # # interfaces = ["eth0"] # # TCP or UDP 'ping' given url and collect response time in seconds # [[inputs.net_response]] # ## Protocol, must be "tcp" or "udp" # ## NOTE: because the "udp" protocol does not respond to requests, it requires # ## a send/expect string pair (see below). # protocol = "tcp" # ## Server address (default localhost) # address = "localhost:80" # ## Set timeout # timeout = "1s" # # ## Set read timeout (only used if expecting a response) # read_timeout = "1s" # # ## The following options are required for UDP checks. For TCP, they are # ## optional. The plugin will send the given string to the server and then # ## expect to receive the given 'expect' string back. # ## string sent to the server # # send = "ssh" # ## expected string in answer # # expect = "ssh" # # Read TCP metrics such as established, time wait and sockets counts. # [[inputs.netstat]] # # no configuration # # Read Nginx's basic status information (ngx_http_stub_status_module) # [[inputs.nginx]] # # An array of Nginx stub_status URI to gather stats. # urls = ["http://localhost/server_status"] # # # TLS/SSL configuration # ssl_ca = "/etc/telegraf/ca.pem" # ssl_cert = "/etc/telegraf/cert.cer" # ssl_key = "/etc/telegraf/key.key" # insecure_skip_verify = false # # # HTTP response timeout (default: 5s) # response_timeout = "5s" # # Read NSQ topic and channel statistics. # [[inputs.nsq]] # ## An array of NSQD HTTP API endpoints # endpoints = ["http://localhost:4151"] # # Collect kernel snmp counters and network interface statistics # [[inputs.nstat]] # ## file paths for proc files. If empty default paths will be used: # ## /proc/net/netstat, /proc/net/snmp, /proc/net/snmp6 # ## These can also be overridden with env variables, see README. # proc_net_netstat = "/proc/net/netstat" # proc_net_snmp = "/proc/net/snmp" # proc_net_snmp6 = "/proc/net/snmp6" # ## dump metrics with 0 values too # dump_zeros = true # # Get standard NTP query metrics, requires ntpq executable. # [[inputs.ntpq]] # ## If false, set the -n ntpq flag. Can reduce metric gather time. # dns_lookup = true # # OpenLDAP cn=Monitor plugin # [[inputs.openldap]] # host = "localhost" # port = 389 # # # ldaps, starttls, or no encryption. default is an empty string, disabling all encryption. # # note that port will likely need to be changed to 636 for ldaps # # valid options: "" | "starttls" | "ldaps" # ssl = "" # # # skip peer certificate verification. Default is false. # insecure_skip_verify = false # # # Path to PEM-encoded Root certificate to use to verify server certificate # ssl_ca = "/etc/ssl/certs.pem" # # # dn/password to bind with. If bind_dn is empty, an anonymous bind is performed. # bind_dn = "" # bind_password = "" # # Read metrics of passenger using passenger-status # [[inputs.passenger]] # ## Path of passenger-status. # ## # ## Plugin gather metric via parsing XML output of passenger-status # ## More information about the tool: # ## https://www.phusionpassenger.com/library/admin/apache/overall_status_report.html # ## # ## If no path is specified, then the plugin simply execute passenger-status # ## hopefully it can be found in your PATH # command = "passenger-status -v --show=xml" # # Read metrics of phpfpm, via HTTP status page or socket # [[inputs.phpfpm]] # ## An array of addresses to gather stats about. Specify an ip or hostname # ## with optional port and path # ## # ## Plugin can be configured in three modes (either can be used): # ## - http: the URL must start with http:// or https://, ie: # ## "http://localhost/status" # ## "http://192.168.130.1/status?full" # ## # ## - unixsocket: path to fpm socket, ie: # ## "/var/run/php5-fpm.sock" # ## or using a custom fpm status path: # ## "/var/run/php5-fpm.sock:fpm-custom-status-path" # ## # ## - fcgi: the URL must start with fcgi:// or cgi://, and port must be present, ie: # ## "fcgi://10.0.0.12:9000/status" # ## "cgi://10.0.10.12:9001/status" # ## # ## Example of multiple gathering from local socket and remove host # ## urls = ["http://192.168.1.20/status", "/tmp/fpm.sock"] # urls = ["http://localhost/status"] # # Ping given url(s) and return statistics # [[inputs.ping]] # ## NOTE: this plugin forks the ping command. You may need to set capabilities # ## via setcap cap_net_raw+p /bin/ping # # # ## List of urls to ping # urls = ["www.google.com"] # required # ## number of pings to send per collection (ping -c ) # # count = 1 # ## interval, in s, at which to ping. 0 == default (ping -i ) # # ping_interval = 1.0 # ## per-ping timeout, in s. 0 == no timeout (ping -W ) # # timeout = 1.0 # ## interface to send ping from (ping -I ) # # interface = "" # # Read metrics from one or many postgresql servers # [[inputs.postgresql]] # ## specify address via a url matching: # ## postgres://[pqgotest[:password]]@localhost[/dbname]\ # ## ?sslmode=[disable|verify-ca|verify-full] # ## or a simple string: # ## host=localhost user=pqotest password=... sslmode=... dbname=app_production # ## # ## All connection parameters are optional. # ## # ## Without the dbname parameter, the driver will default to a database # ## with the same name as the user. This dbname is just for instantiating a # ## connection with the server and doesn't restrict the databases we are trying # ## to grab metrics for. # ## # address = "host=localhost user=postgres sslmode=disable" # # ## A list of databases to explicitly ignore. If not specified, metrics for all # ## databases are gathered. Do NOT use with the 'databases' option. # # ignored_databases = ["postgres", "template0", "template1"] # # ## A list of databases to pull metrics about. If not specified, metrics for all # ## databases are gathered. Do NOT use with the 'ignored_databases' option. # # databases = ["app_production", "testing"] # # Read metrics from one or many postgresql servers # [[inputs.postgresql_extensible]] # ## specify address via a url matching: # ## postgres://[pqgotest[:password]]@localhost[/dbname]\ # ## ?sslmode=[disable|verify-ca|verify-full] # ## or a simple string: # ## host=localhost user=pqotest password=... sslmode=... dbname=app_production # # # ## All connection parameters are optional. # # ## Without the dbname parameter, the driver will default to a database # ## with the same name as the user. This dbname is just for instantiating a # ## connection with the server and doesn't restrict the databases we are trying # ## to grab metrics for. # # # address = "host=localhost user=postgres sslmode=disable" # ## A list of databases to pull metrics about. If not specified, metrics for all # ## databases are gathered. # ## databases = ["app_production", "testing"] # # # # outputaddress = "db01" # ## A custom name for the database that will be used as the "server" tag in the # ## measurement output. If not specified, a default one generated from # ## the connection address is used. # # # ## Define the toml config where the sql queries are stored # ## New queries can be added, if the withdbname is set to true and there is no # ## databases defined in the 'databases field', the sql query is ended by a # ## 'is not null' in order to make the query succeed. # ## Example : # ## The sqlquery : "SELECT * FROM pg_stat_database where datname" become # ## "SELECT * FROM pg_stat_database where datname IN ('postgres', 'pgbench')" # ## because the databases variable was set to ['postgres', 'pgbench' ] and the # ## withdbname was true. Be careful that if the withdbname is set to false you # ## don't have to define the where clause (aka with the dbname) the tagvalue # ## field is used to define custom tags (separated by commas) # ## The optional "measurement" value can be used to override the default # ## output measurement name ("postgresql"). # # # ## Structure : # ## [[inputs.postgresql_extensible.query]] # ## sqlquery string # ## version string # ## withdbname boolean # ## tagvalue string (comma separated) # ## measurement string # [[inputs.postgresql_extensible.query]] # sqlquery="SELECT * FROM pg_stat_database" # version=901 # withdbname=false # tagvalue="" # measurement="" # [[inputs.postgresql_extensible.query]] # sqlquery="SELECT * FROM pg_stat_bgwriter" # version=901 # withdbname=false # tagvalue="postgresql.stats" # # Read metrics from one or many PowerDNS servers # [[inputs.powerdns]] # ## An array of sockets to gather stats about. # ## Specify a path to unix socket. # unix_sockets = ["/var/run/pdns.controlsocket"] # # Monitor process cpu and memory usage # [[inputs.procstat]] # ## Must specify one of: pid_file, exe, or pattern # ## PID file to monitor process # pid_file = "/var/run/nginx.pid" # ## executable name (ie, pgrep ) # # exe = "nginx" # ## pattern as argument for pgrep (ie, pgrep -f ) # # pattern = "nginx" # ## user as argument for pgrep (ie, pgrep -u ) # # user = "nginx" # # ## override for process_name # ## This is optional; default is sourced from /proc//status # # process_name = "bar" # ## Field name prefix # prefix = "" # ## comment this out if you want raw cpu_time stats # fielddrop = ["cpu_time_*"] # ## This is optional; moves pid into a tag instead of a field # pid_tag = false # # Read metrics from one or many prometheus clients # [[inputs.prometheus]] # ## An array of urls to scrape metrics from. # urls = ["http://localhost:9100/metrics"] # # ## Use bearer token for authorization # # bearer_token = /path/to/bearer/token # # ## Specify timeout duration for slower prometheus clients (default is 3s) # # response_timeout = "3s" # # ## Optional SSL Config # # ssl_ca = /path/to/cafile # # ssl_cert = /path/to/certfile # # ssl_key = /path/to/keyfile # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Reads last_run_summary.yaml file and converts to measurments # [[inputs.puppetagent]] # ## Location of puppet last run summary file # location = "/var/lib/puppet/state/last_run_summary.yaml" # # Reads metrics from RabbitMQ servers via the Management Plugin # [[inputs.rabbitmq]] # ## Management Plugin url. (default: http://localhost:15672) # # url = "http://localhost:15672" # ## Tag added to rabbitmq_overview series; deprecated: use tags # # name = "rmq-server-1" # ## Credentials # # username = "guest" # # password = "guest" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Optional request timeouts # ## # ## ResponseHeaderTimeout, if non-zero, specifies the amount of time to wait # ## for a server's response headers after fully writing the request. # # header_timeout = "3s" # ## # ## client_timeout specifies a time limit for requests made by this client. # ## Includes connection time, any redirects, and reading the response body. # # client_timeout = "4s" # # ## A list of nodes to pull metrics about. If not specified, metrics for # ## all nodes are gathered. # # nodes = ["rabbit@node1", "rabbit@node2"] # # Read raindrops stats (raindrops - real-time stats for preforking Rack servers) # [[inputs.raindrops]] # ## An array of raindrops middleware URI to gather stats. # urls = ["http://localhost:8080/_raindrops"] # # Read metrics from one or many redis servers # [[inputs.redis]] # ## specify servers via a url matching: # ## [protocol://][:password]@address[:port] # ## e.g. # ## tcp://localhost:6379 # ## tcp://:password@192.168.99.100 # ## unix:///var/run/redis.sock # ## # ## If no servers are specified, then localhost is used as the host. # ## If no port is specified, 6379 is used # servers = ["tcp://localhost:6379"] # # Read metrics from one or many RethinkDB servers # [[inputs.rethinkdb]] # ## An array of URI to gather stats about. Specify an ip or hostname # ## with optional port add password. ie, # ## rethinkdb://user:auth_key@10.10.3.30:28105, # ## rethinkdb://10.10.3.33:18832, # ## 10.0.0.1:10000, etc. # servers = ["127.0.0.1:28015"] # ## # ## If you use actual rethinkdb of > 2.3.0 with username/password authorization, # ## protocol have to be named "rethinkdb2" - it will use 1_0 H. # # servers = ["rethinkdb2://username:password@127.0.0.1:28015"] # ## # ## If you use older versions of rethinkdb (<2.2) with auth_key, protocol # ## have to be named "rethinkdb". # # servers = ["rethinkdb://username:auth_key@127.0.0.1:28015"] # # Read metrics one or many Riak servers # [[inputs.riak]] # # Specify a list of one or more riak http servers # servers = ["http://localhost:8098"] # # Read API usage and limits for a Salesforce organisation # [[inputs.salesforce]] # ## specify your credentials # ## # username = "your_username" # password = "your_password" # ## # ## (optional) security token # # security_token = "your_security_token" # ## # ## (optional) environment type (sandbox or production) # ## default is: production # ## # # environment = "production" # ## # ## (optional) API version (default: "39.0") # ## # # version = "39.0" # # Monitor sensors, requires lm-sensors package # [[inputs.sensors]] # ## Remove numbers from field names. # ## If true, a field name like 'temp1_input' will be changed to 'temp_input'. # # remove_numbers = true # # Retrieves SNMP values from remote agents # [[inputs.snmp]] # agents = [ "127.0.0.1:161" ] # ## Timeout for each SNMP query. # timeout = "5s" # ## Number of retries to attempt within timeout. # retries = 3 # ## SNMP version, values can be 1, 2, or 3 # version = 2 # # ## SNMP community string. # community = "public" # # ## The GETBULK max-repetitions parameter # max_repetitions = 10 # # ## SNMPv3 auth parameters # #sec_name = "myuser" # #auth_protocol = "md5" # Values: "MD5", "SHA", "" # #auth_password = "pass" # #sec_level = "authNoPriv" # Values: "noAuthNoPriv", "authNoPriv", "authPriv" # #context_name = "" # #priv_protocol = "" # Values: "DES", "AES", "" # #priv_password = "" # # ## measurement name # name = "system" # [[inputs.snmp.field]] # name = "hostname" # oid = ".1.0.0.1.1" # [[inputs.snmp.field]] # name = "uptime" # oid = ".1.0.0.1.2" # [[inputs.snmp.field]] # name = "load" # oid = ".1.0.0.1.3" # [[inputs.snmp.field]] # oid = "HOST-RESOURCES-MIB::hrMemorySize" # # [[inputs.snmp.table]] # ## measurement name # name = "remote_servers" # inherit_tags = [ "hostname" ] # [[inputs.snmp.table.field]] # name = "server" # oid = ".1.0.0.0.1.0" # is_tag = true # [[inputs.snmp.table.field]] # name = "connections" # oid = ".1.0.0.0.1.1" # [[inputs.snmp.table.field]] # name = "latency" # oid = ".1.0.0.0.1.2" # # [[inputs.snmp.table]] # ## auto populate table's fields using the MIB # oid = "HOST-RESOURCES-MIB::hrNetworkTable" # # DEPRECATED! PLEASE USE inputs.snmp INSTEAD. # [[inputs.snmp_legacy]] # ## Use 'oids.txt' file to translate oids to names # ## To generate 'oids.txt' you need to run: # ## snmptranslate -m all -Tz -On | sed -e 's/"//g' > /tmp/oids.txt # ## Or if you have an other MIB folder with custom MIBs # ## snmptranslate -M /mycustommibfolder -Tz -On -m all | sed -e 's/"//g' > oids.txt # snmptranslate_file = "/tmp/oids.txt" # [[inputs.snmp.host]] # address = "192.168.2.2:161" # # SNMP community # community = "public" # default public # # SNMP version (1, 2 or 3) # # Version 3 not supported yet # version = 2 # default 2 # # SNMP response timeout # timeout = 2.0 # default 2.0 # # SNMP request retries # retries = 2 # default 2 # # Which get/bulk do you want to collect for this host # collect = ["mybulk", "sysservices", "sysdescr"] # # Simple list of OIDs to get, in addition to "collect" # get_oids = [] # # [[inputs.snmp.host]] # address = "192.168.2.3:161" # community = "public" # version = 2 # timeout = 2.0 # retries = 2 # collect = ["mybulk"] # get_oids = [ # "ifNumber", # ".1.3.6.1.2.1.1.3.0", # ] # # [[inputs.snmp.get]] # name = "ifnumber" # oid = "ifNumber" # # [[inputs.snmp.get]] # name = "interface_speed" # oid = "ifSpeed" # instance = "0" # # [[inputs.snmp.get]] # name = "sysuptime" # oid = ".1.3.6.1.2.1.1.3.0" # unit = "second" # # [[inputs.snmp.bulk]] # name = "mybulk" # max_repetition = 127 # oid = ".1.3.6.1.2.1.1" # # [[inputs.snmp.bulk]] # name = "ifoutoctets" # max_repetition = 127 # oid = "ifOutOctets" # # [[inputs.snmp.host]] # address = "192.168.2.13:161" # #address = "127.0.0.1:161" # community = "public" # version = 2 # timeout = 2.0 # retries = 2 # #collect = ["mybulk", "sysservices", "sysdescr", "systype"] # collect = ["sysuptime" ] # [[inputs.snmp.host.table]] # name = "iftable3" # include_instances = ["enp5s0", "eth1"] # # # SNMP TABLEs # # table without mapping neither subtables # [[inputs.snmp.table]] # name = "iftable1" # oid = ".1.3.6.1.2.1.31.1.1.1" # # # table without mapping but with subtables # [[inputs.snmp.table]] # name = "iftable2" # oid = ".1.3.6.1.2.1.31.1.1.1" # sub_tables = [".1.3.6.1.2.1.2.2.1.13"] # # # table with mapping but without subtables # [[inputs.snmp.table]] # name = "iftable3" # oid = ".1.3.6.1.2.1.31.1.1.1" # # if empty. get all instances # mapping_table = ".1.3.6.1.2.1.31.1.1.1.1" # # if empty, get all subtables # # # table with both mapping and subtables # [[inputs.snmp.table]] # name = "iftable4" # oid = ".1.3.6.1.2.1.31.1.1.1" # # if empty get all instances # mapping_table = ".1.3.6.1.2.1.31.1.1.1.1" # # if empty get all subtables # # sub_tables could be not "real subtables" # sub_tables=[".1.3.6.1.2.1.2.2.1.13", "bytes_recv", "bytes_send"] # # Read metrics from Microsoft SQL Server # [[inputs.sqlserver]] # ## Specify instances to monitor with a list of connection strings. # ## All connection parameters are optional. # ## By default, the host is localhost, listening on default port, TCP 1433. # ## for Windows, the user is the currently running AD user (SSO). # ## See https://github.com/denisenkom/go-mssqldb for detailed connection # ## parameters. # # servers = [ # # "Server=192.168.1.10;Port=1433;User Id=;Password=;app name=telegraf;log=1;", # # ] # # Sysstat metrics collector # [[inputs.sysstat]] # ## Path to the sadc command. # # # ## Common Defaults: # ## Debian/Ubuntu: /usr/lib/sysstat/sadc # ## Arch: /usr/lib/sa/sadc # ## RHEL/CentOS: /usr/lib64/sa/sadc # sadc_path = "/usr/lib/sa/sadc" # required # # # # # ## Path to the sadf command, if it is not in PATH # # sadf_path = "/usr/bin/sadf" # # # # # ## Activities is a list of activities, that are passed as argument to the # ## sadc collector utility (e.g: DISK, SNMP etc...) # ## The more activities that are added, the more data is collected. # # activities = ["DISK"] # # # # # ## Group metrics to measurements. # ## # ## If group is false each metric will be prefixed with a description # ## and represents itself a measurement. # ## # ## If Group is true, corresponding metrics are grouped to a single measurement. # # group = true # # # # # ## Options for the sadf command. The values on the left represent the sadf # ## options and the values on the right their description (wich are used for # ## grouping and prefixing metrics). # ## # ## Run 'sar -h' or 'man sar' to find out the supported options for your # ## sysstat version. # [inputs.sysstat.options] # -C = "cpu" # -B = "paging" # -b = "io" # -d = "disk" # requires DISK activity # "-n ALL" = "network" # "-P ALL" = "per_cpu" # -q = "queue" # -R = "mem" # -r = "mem_util" # -S = "swap_util" # -u = "cpu_util" # -v = "inode" # -W = "swap" # -w = "task" # # -H = "hugepages" # only available for newer linux distributions # # "-I ALL" = "interrupts" # requires INT activity # # # # # ## Device tags can be used to add additional tags for devices. # ## For example the configuration below adds a tag vg with value rootvg for # ## all metrics with sda devices. # # [[inputs.sysstat.device_tags.sda]] # # vg = "rootvg" # # Gather metrics from the Tomcat server status page. # [[inputs.tomcat]] # ## URL of the Tomcat server status # # url = "http://127.0.0.1:8080/manager/status/all?XML=true" # # ## HTTP Basic Auth Credentials # # username = "tomcat" # # password = "s3cret" # # ## Request timeout # # timeout = "5s" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # Inserts sine and cosine waves for demonstration purposes # [[inputs.trig]] # ## Set the amplitude # amplitude = 10.0 # # Read Twemproxy stats data # [[inputs.twemproxy]] # ## Twemproxy stats address and port (no scheme) # addr = "localhost:22222" # ## Monitor pool name # pools = ["redis_pool", "mc_pool"] # # A plugin to collect stats from Varnish HTTP Cache # [[inputs.varnish]] # ## If running as a restricted user you can prepend sudo for additional access: # #use_sudo = false # # ## The default location of the varnishstat binary can be overridden with: # binary = "/usr/bin/varnishstat" # # ## By default, telegraf gather stats for 3 metric points. # ## Setting stats will override the defaults shown below. # ## Glob matching can be used, ie, stats = ["MAIN.*"] # ## stats may also be set to ["*"], which will collect all stats # stats = ["MAIN.cache_hit", "MAIN.cache_miss", "MAIN.uptime"] # # Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, and pools # [[inputs.zfs]] # ## ZFS kstat path. Ignored on FreeBSD # ## If not specified, then default is: # # kstatPath = "/proc/spl/kstat/zfs" # # ## By default, telegraf gather all zfs stats # ## If not specified, then default is: # # kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"] # # ## By default, don't gather zpool stats # # poolMetrics = false # # Reads 'mntr' stats from one or many zookeeper servers # [[inputs.zookeeper]] # ## An array of address to gather stats about. Specify an ip or hostname # ## with port. ie localhost:2181, 10.0.0.1:2181, etc. # # ## If no servers are specified, then localhost is used as the host. # ## If no port is specified, 2181 is used # servers = [":2181"] ############################################################################### # SERVICE INPUT PLUGINS # ############################################################################### # # AMQP consumer plugin # [[inputs.amqp_consumer]] # ## AMQP url # url = "amqp://localhost:5672/influxdb" # ## AMQP exchange # exchange = "telegraf" # ## AMQP queue name # queue = "telegraf" # ## Binding Key # binding_key = "#" # # ## Maximum number of messages server should give to the worker. # prefetch_count = 50 # # ## Auth method. PLAIN and EXTERNAL are supported # ## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism_ssl plugin as # ## described here: https://www.rabbitmq.com/plugins.html # # auth_method = "PLAIN" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md # data_format = "influx" # # Influx HTTP write listener # [[inputs.http_listener]] # ## Address and port to host HTTP listener on # service_address = ":8186" # # ## maximum duration before timing out read of the request # read_timeout = "10s" # ## maximum duration before timing out write of the response # write_timeout = "10s" # # ## Maximum allowed http request body size in bytes. # ## 0 means to use the default of 536,870,912 bytes (500 mebibytes) # max_body_size = 0 # # ## Maximum line size allowed to be sent in bytes. # ## 0 means to use the default of 65536 bytes (64 kibibytes) # max_line_size = 0 # # Read metrics from Kafka topic(s) # [[inputs.kafka_consumer]] # ## kafka servers # brokers = ["localhost:9092"] # ## topic(s) to consume # topics = ["telegraf"] # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Optional SASL Config # # sasl_username = "kafka" # # sasl_password = "secret" # # ## the name of the consumer group # consumer_group = "telegraf_metrics_consumers" # ## Offset (must be either "oldest" or "newest") # offset = "oldest" # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # ## Maximum length of a message to consume, in bytes (default 0/unlimited); # ## larger messages are dropped # max_message_len = 65536 # # Read metrics from Kafka topic(s) # [[inputs.kafka_consumer_legacy]] # ## topic(s) to consume # topics = ["telegraf"] # ## an array of Zookeeper connection strings # zookeeper_peers = ["localhost:2181"] # ## Zookeeper Chroot # zookeeper_chroot = "" # ## the name of the consumer group # consumer_group = "telegraf_metrics_consumers" # ## Offset (must be either "oldest" or "newest") # offset = "oldest" # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # ## Maximum length of a message to consume, in bytes (default 0/unlimited); # ## larger messages are dropped # max_message_len = 65536 # # Stream and parse log file(s). # [[inputs.logparser]] # ## Log files to parse. # ## These accept standard unix glob matching rules, but with the addition of # ## ** as a "super asterisk". ie: # ## /var/log/**.log -> recursively find all .log files in /var/log # ## /var/log/*/*.log -> find all .log files with a parent dir in /var/log # ## /var/log/apache.log -> only tail the apache log file # files = ["/var/log/apache/access.log"] # # ## Read files that currently exist from the beginning. Files that are created # ## while telegraf is running (and that match the "files" globs) will always # ## be read from the beginning. # from_beginning = false # # ## Parse logstash-style "grok" patterns: # ## Telegraf built-in parsing patterns: https://goo.gl/dkay10 # [inputs.logparser.grok] # ## This is a list of patterns to check the given log file(s) for. # ## Note that adding patterns here increases processing time. The most # ## efficient configuration is to have one pattern per logparser. # ## Other common built-in patterns are: # ## %{COMMON_LOG_FORMAT} (plain apache & nginx access logs) # ## %{COMBINED_LOG_FORMAT} (access logs + referrer & agent) # patterns = ["%{COMBINED_LOG_FORMAT}"] # # ## Name of the outputted measurement name. # measurement = "apache_access_log" # # ## Full path(s) to custom pattern files. # custom_pattern_files = [] # # ## Custom patterns can also be defined here. Put one pattern per line. # custom_patterns = ''' # # ## Timezone allows you to provide an override for timestamps that # ## don't already include an offset # ## e.g. 04/06/2016 12:41:45 data one two 5.43µs # ## # ## Default: "" which renders UTC # ## Options are as follows: # ## 1. Local -- interpret based on machine localtime # ## 2. "Canada/Eastern" -- Unix TZ values like those found in https://en.wikipedia.org/wiki/List_of_tz_database_time_zones # ## 3. UTC -- or blank/unspecified, will return timestamp in UTC # timezone = "Canada/Eastern" # ''' # # Read metrics from MQTT topic(s) # [[inputs.mqtt_consumer]] # servers = ["localhost:1883"] # ## MQTT QoS, must be 0, 1, or 2 # qos = 0 # # ## Topics to subscribe to # topics = [ # "telegraf/host01/cpu", # "telegraf/+/mem", # "sensors/#", # ] # # # if true, messages that can't be delivered while the subscriber is offline # # will be delivered when it comes back (such as on service restart). # # NOTE: if true, client_id MUST be set # persistent_session = false # # If empty, a random client ID will be generated. # client_id = "" # # ## username and password to connect MQTT server. # # username = "telegraf" # # password = "metricsmetricsmetricsmetrics" # # ## Optional SSL Config # # ssl_ca = "/etc/telegraf/ca.pem" # # ssl_cert = "/etc/telegraf/cert.pem" # # ssl_key = "/etc/telegraf/key.pem" # ## Use SSL but skip chain & host verification # # insecure_skip_verify = false # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # Read metrics from NATS subject(s) # [[inputs.nats_consumer]] # ## urls of NATS servers # # servers = ["nats://localhost:4222"] # ## Use Transport Layer Security # # secure = false # ## subject(s) to consume # # subjects = ["telegraf"] # ## name a queue group # # queue_group = "telegraf_consumers" # # ## Sets the limits for pending msgs and bytes for each subscription # ## These shouldn't need to be adjusted except in very high throughput scenarios # # pending_message_limit = 65536 # # pending_bytes_limit = 67108864 # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # Read NSQ topic for metrics. # [[inputs.nsq_consumer]] # ## An string representing the NSQD TCP Endpoint # server = "localhost:4150" # topic = "telegraf" # channel = "consumer" # max_in_flight = 100 # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # Generic socket listener capable of handling multiple socket types. # [[inputs.socket_listener]] # ## URL to listen on # # service_address = "tcp://:8094" # # service_address = "tcp://127.0.0.1:http" # # service_address = "tcp4://:8094" # # service_address = "tcp6://:8094" # # service_address = "tcp6://[2001:db8::1]:8094" # # service_address = "udp://:8094" # # service_address = "udp4://:8094" # # service_address = "udp6://:8094" # # service_address = "unix:///tmp/telegraf.sock" # # service_address = "unixgram:///tmp/telegraf.sock" # # ## Maximum number of concurrent connections. # ## Only applies to stream sockets (e.g. TCP). # ## 0 (default) is unlimited. # # max_connections = 1024 # # ## Read timeout. # ## Only applies to stream sockets (e.g. TCP). # ## 0 (default) is unlimited. # # read_timeout = "30s" # # ## Maximum socket buffer size in bytes. # ## For stream sockets, once the buffer fills up, the sender will start backing up. # ## For datagram sockets, once the buffer fills up, metrics will start dropping. # ## Defaults to the OS default. # # read_buffer_size = 65535 # # ## Period between keep alive probes. # ## Only applies to TCP sockets. # ## 0 disables keep alive probes. # ## Defaults to the OS configuration. # # keep_alive_period = "5m" # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # # data_format = "influx" # # Statsd UDP/TCP Server # [[inputs.statsd]] # ## Protocol, must be "tcp" or "udp" (default=udp) # protocol = "udp" # # ## MaxTCPConnection - applicable when protocol is set to tcp (default=250) # max_tcp_connections = 250 # # ## Address and port to host UDP listener on # service_address = ":8125" # # ## The following configuration options control when telegraf clears it's cache # ## of previous values. If set to false, then telegraf will only clear it's # ## cache when the daemon is restarted. # ## Reset gauges every interval (default=true) # delete_gauges = true # ## Reset counters every interval (default=true) # delete_counters = true # ## Reset sets every interval (default=true) # delete_sets = true # ## Reset timings & histograms every interval (default=true) # delete_timings = true # # ## Percentiles to calculate for timing & histogram stats # percentiles = [90] # # ## separator to use between elements of a statsd metric # metric_separator = "_" # # ## Parses tags in the datadog statsd format # ## http://docs.datadoghq.com/guides/dogstatsd/ # parse_data_dog_tags = false # # ## Statsd data translation templates, more info can be read here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md#graphite # # templates = [ # # "cpu.* measurement*" # # ] # # ## Number of UDP messages allowed to queue up, once filled, # ## the statsd server will start dropping packets # allowed_pending_messages = 10000 # # ## Number of timing/histogram values to track per-measurement in the # ## calculation of percentiles. Raising this limit increases the accuracy # ## of percentiles but also increases the memory usage and cpu time. # percentile_limit = 1000 # # Stream a log file, like the tail -f command # [[inputs.tail]] # ## files to tail. # ## These accept standard unix glob matching rules, but with the addition of # ## ** as a "super asterisk". ie: # ## "/var/log/**.log" -> recursively find all .log files in /var/log # ## "/var/log/*/*.log" -> find all .log files with a parent dir in /var/log # ## "/var/log/apache.log" -> just tail the apache log file # ## # ## See https://github.com/gobwas/glob for more examples # ## # files = ["/var/mymetrics.out"] # ## Read file from beginning. # from_beginning = false # ## Whether file is a named pipe # pipe = false # # ## Data format to consume. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md # data_format = "influx" # # Generic TCP listener # [[inputs.tcp_listener]] # # DEPRECATED: the TCP listener plugin has been deprecated in favor of the # # socket_listener plugin # # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener # # Generic UDP listener # [[inputs.udp_listener]] # # DEPRECATED: the TCP listener plugin has been deprecated in favor of the # # socket_listener plugin # # see https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener # # A Webhooks Event collector # [[inputs.webhooks]] # ## Address and port to host Webhook listener on # service_address = ":1619" # # [inputs.webhooks.filestack] # path = "/filestack" # # [inputs.webhooks.github] # path = "/github" # # secret = "" # # [inputs.webhooks.mandrill] # path = "/mandrill" # # [inputs.webhooks.rollbar] # path = "/rollbar" # # [inputs.webhooks.papertrail] # path = "/papertrail" # # This plugin implements the Zipkin http server to gather trace and timing data needed to troubleshoot latency problems in microservice architectures. # [[inputs.zipkin]] # # path = "/api/v1/spans" # URL path for span data # # port = 9411 # Port on which Telegraf listens