From b2453e3ec319314d819a414b28c7ac124f4f6e1b Mon Sep 17 00:00:00 2001 From: "David G. Simmons" Date: Fri, 29 Sep 2017 12:57:13 -0400 Subject: [PATCH] Revert "New Particle.io Plugin for Telegraf" This reverts commit c3b11f9cfbfb6f2141cff9c6a4bae9fe50eab43d. Accidentally pushed to master, instead of my fork. Backing it out. --- plugins/inputs/webhooks/particle/README.md | 27 - .../webhooks/particle/particle_webhooks.go | 46 - .../particle/particle_webhooks_events.go | 21 - .../particle_webhooks_events_json_test.go | 38 - .../particle/particle_webhooks_test.go | 48 - plugins/inputs/webhooks/webhooks.go | 5 - telegraf.config | 2352 ----------------- 7 files changed, 2537 deletions(-) delete mode 100644 plugins/inputs/webhooks/particle/README.md delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks.go delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks_events.go delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go delete mode 100644 plugins/inputs/webhooks/particle/particle_webhooks_test.go delete mode 100644 telegraf.config diff --git a/plugins/inputs/webhooks/particle/README.md b/plugins/inputs/webhooks/particle/README.md deleted file mode 100644 index 43b7e6968..000000000 --- a/plugins/inputs/webhooks/particle/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# particle webhooks - -You should configure your Rollbar's Webhooks to point at the `webhooks` service. To do this go to `particle.com/` and click `Settings > Notifications > Webhook`. In the resulting page set `URL` to `http://:1619/particle`, and click on `Enable Webhook Integration`. - -## Events - -Your Particle device should publish an event that contains a JSON in the form of: -``` -String data = String::format("{ \"tags\" : { - \"tag_name\": \"tag_value\", - \"other_tag\": \"other_value\" - }, - \"values\": { - \"value_name\": %f, - \"other_value\": %f, - } - }", value_value, other_value - ); - Particle.publish("event_name", data, PRIVATE); -``` -Escaping the "" is required in the source file. -The number of tag values and field values is not restrictied so you can send as many values per webhook call as you'd like. - -You will need to enable JSON messages in the Webhooks setup of Particle.io - -See [webhook doc](https://docs.particle.io/reference/webhooks/) - diff --git a/plugins/inputs/webhooks/particle/particle_webhooks.go b/plugins/inputs/webhooks/particle/particle_webhooks.go deleted file mode 100644 index b4a2470a5..000000000 --- a/plugins/inputs/webhooks/particle/particle_webhooks.go +++ /dev/null @@ -1,46 +0,0 @@ -package particle - -import ( - "encoding/json" - "github.com/gorilla/mux" - "github.com/influxdata/telegraf" - "io/ioutil" - "log" - "net/http" -) - -type ParticleWebhook struct { - Path string - acc telegraf.Accumulator -} - -func (rb *ParticleWebhook) Register(router *mux.Router, acc telegraf.Accumulator) { - router.HandleFunc(rb.Path, rb.eventHandler).Methods("POST") - log.Printf("I! Started the webhooks_particle on %s\n", rb.Path) - rb.acc = acc -} - -func (rb *ParticleWebhook) eventHandler(w http.ResponseWriter, r *http.Request) { - defer r.Body.Close() - data, err := ioutil.ReadAll(r.Body) - if err != nil { - w.WriteHeader(http.StatusBadRequest) - return - } - dummy := &DummyData{} - if err := json.Unmarshal(data, dummy); err != nil { - w.WriteHeader(http.StatusBadRequest) - return - } - pd := &ParticleData{} - if err := json.Unmarshal([]byte(dummy.Data), pd); err != nil { - w.WriteHeader(http.StatusBadRequest) - return - } - pTime, err := dummy.Time() - if err != nil { - log.Printf("Time Conversion Error") - } - rb.acc.AddFields("particle_webhooks", pd.Fields, pd.Tags, pTime) - w.WriteHeader(http.StatusOK) -} diff --git a/plugins/inputs/webhooks/particle/particle_webhooks_events.go b/plugins/inputs/webhooks/particle/particle_webhooks_events.go deleted file mode 100644 index 93055285c..000000000 --- a/plugins/inputs/webhooks/particle/particle_webhooks_events.go +++ /dev/null @@ -1,21 +0,0 @@ -package particle - -import ( - "time" -) - -type DummyData struct { - Event string `json:"event"` - Data string `json:"data"` - Ttl int `json:"ttl"` - PublishedAt string `json:"published_at"` -} -type ParticleData struct { - Event string `json:"event"` - Tags map[string]string `json:"tags"` - Fields map[string]interface{} `json:"values"` -} - -func (d *DummyData) Time() (time.Time, error) { - return time.Parse("2006-01-02T15:04:05Z", d.PublishedAt) -} diff --git a/plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go b/plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go deleted file mode 100644 index fbb84ac55..000000000 --- a/plugins/inputs/webhooks/particle/particle_webhooks_events_json_test.go +++ /dev/null @@ -1,38 +0,0 @@ -package particle - -func NewItemJSON() string { - return ` - { - "event": "temperature", - "data": "{ - "tags": { - "id": "230035001147343438323536", - "location\": \"TravelingWilbury" - }, - "values": { - "temp_c": 26.680000, - "temp_f": 80.024001, - "humidity": 44.937500, - "pressure": 998.998901, - "altitude": 119.331436, - "broadband": 1266, - "infrared": 528, - "lux": 0 - } - }", - "ttl": 60, - "published_at": "2017-09-28T21:54:10.897Z", - "coreid": "123456789938323536", - "userid": "1234ee123ac8e5ec1231a123d", - "version": 10, - "public": false, - "productID": 1234, - "name": "sensor" - }` -} -func UnknowJSON() string { - return ` - { - "event": "roger" - }` -} diff --git a/plugins/inputs/webhooks/particle/particle_webhooks_test.go b/plugins/inputs/webhooks/particle/particle_webhooks_test.go deleted file mode 100644 index 9b016aaf8..000000000 --- a/plugins/inputs/webhooks/particle/particle_webhooks_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package particle - -import ( - "github.com/influxdata/telegraf/testutil" - "log" - "net/http" - "net/http/httptest" - "strings" - "testing" -) - -func postWebhooks(rb *ParticleWebhook, eventBody string) *httptest.ResponseRecorder { - req, _ := http.NewRequest("POST", "/", strings.NewReader(eventBody)) - log.Printf("eventBody: %s\n", eventBody) - w := httptest.NewRecorder() - w.Code = 500 - - rb.eventHandler(w, req) - - return w -} - -func TestNewItem(t *testing.T) { - var acc testutil.Accumulator - rb := &ParticleWebhook{Path: "/particle", acc: &acc} - resp := postWebhooks(rb, NewItemJSON()) - if resp.Code != http.StatusOK { - t.Errorf("POST new_item returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusOK) - } - - fields := map[string]interface{}{ - "temp_c": 26.680000, - } - - tags := map[string]string{ - "id": "230035001147343438323536", - "location": "TravelingWilbury", - } - - acc.AssertContainsTaggedFields(t, "particle_webhooks", fields, tags) -} -func TestUnknowItem(t *testing.T) { - rb := &ParticleWebhook{Path: "/particle"} - resp := postWebhooks(rb, UnknowJSON()) - if resp.Code != http.StatusOK { - t.Errorf("POST unknown returned HTTP status code %v.\nExpected %v", resp.Code, http.StatusOK) - } -} diff --git a/plugins/inputs/webhooks/webhooks.go b/plugins/inputs/webhooks/webhooks.go index 4420c5ab9..698cde159 100644 --- a/plugins/inputs/webhooks/webhooks.go +++ b/plugins/inputs/webhooks/webhooks.go @@ -15,7 +15,6 @@ import ( "github.com/influxdata/telegraf/plugins/inputs/webhooks/github" "github.com/influxdata/telegraf/plugins/inputs/webhooks/mandrill" "github.com/influxdata/telegraf/plugins/inputs/webhooks/papertrail" - "github.com/influxdata/telegraf/plugins/inputs/webhooks/particle" "github.com/influxdata/telegraf/plugins/inputs/webhooks/rollbar" ) @@ -35,7 +34,6 @@ type Webhooks struct { Mandrill *mandrill.MandrillWebhook Rollbar *rollbar.RollbarWebhook Papertrail *papertrail.PapertrailWebhook - Particle *particle.ParticleWebhook srv *http.Server } @@ -64,9 +62,6 @@ func (wb *Webhooks) SampleConfig() string { [inputs.webhooks.papertrail] path = "/papertrail" - - [inputs.webhooks.particle] - path = "/particle" ` } diff --git a/telegraf.config b/telegraf.config deleted file mode 100644 index 669b6de21..000000000 --- a/telegraf.config +++ /dev/null @@ -1,2352 +0,0 @@ -# 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 - - -# # 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 - - -# # 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 = ":9126" -# -# ## 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 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 - - -# 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 Apache status URI to gather stats. -# ## Default is "http://localhost/server-status?auto". -# urls = ["http://localhost/server-status?auto"] -# ## user credentials for basic HTTP authentication -# username = "myuser" -# password = "mypassword" -# -# ## Timeout to the complete conection and reponse time in seconds -# response_timeout = "25s" ## default to 5 seconds -# -# ## 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"] - - -# # 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 and 5 minutes 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" - - -# # 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"] # required -# -# ## Domains or subdomains to query. "."(root) is default -# domains = ["."] # optional -# -# ## Query record type. Default is "A" -# ## Posible values: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, SRV. -# record_type = "A" # optional -# -# ## Dns server port. 53 is default -# port = 53 # optional -# -# ## Query timeout in seconds. Default is 2 seconds -# timeout = 2 # optional - - -# # 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 = [] -# ## 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 -# -# ## 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 = [] - - -# # 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 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 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 - - -# # HTTP/HTTPS request given an address a method and a timeout -# [[inputs.http_response]] -# ## Server address (default http://localhost) -# address = "http://github.com" -# ## 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 = true -# ## HTTP Request Headers (all values must be strings) -# # [inputs.http_response.headers] -# # Host = "github.com" -# ## 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 - - -# # 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" -# ] -# -# ## 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)"] - - -# # 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" - - -# # 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", -# # ] - - -# # 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]] -# ## 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" - - -# # 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"] -interfaces = ["en0"] - -# # 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/status"] - - -# # 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 - - -# # 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"] - - -# # Read metrics one or many Riak servers -# [[inputs.riak]] -# # Specify a list of one or more riak http servers -# servers = ["http://localhost:8098"] - - -# # 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;", -# # ] - - -# # 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]] -# ## 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]] -# ## 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 = ''' -# ''' - - -# # 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 -# -# ## 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 Server -# [[inputs.statsd]] -# ## 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" - [inputs.webhooks.particle] - path = "/particle"