# 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. 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 = true ## 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 [[outputs.influxdb_v2]] ## The URLs of the InfluxDB cluster nodes. ## ## Multiple URLs can be specified for a single cluster, only ONE of the ## urls will be written to each interval. ## urls exp: http://127.0.0.1:9999 urls = ["https://us-central1-1.gcp.cloud2.influxdata.com"] ## Token for authentication. token = "$INFLUX_TOKEN" ## Organization is the name of the organization you wish to write to; must exist. organization = "bnelson@influxdata.com" ## Destination bucket to write into. bucket = "bnelson's Bucket" # Read formatted metrics from one or more HTTP endpoints [[inputs.http]] ## One or more URLs from which to read formatted metrics urls = [ "http://api.bart.gov/api/etd.aspx?cmd=etd&orig=COLM&key=MW9S-E7SL-26DU-VV8V&dir=n&json=y", "http://api.bart.gov/api/etd.aspx?cmd=etd&orig=POWL&key=MW9S-E7SL-26DU-VV8V&dir=s&json=y" ] ## 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 = "json_v2" tagexclude = ["host", "url"] [[inputs.http.json_v2]] [[inputs.http.json_v2.object]] path = "root.station" [[inputs.http.json_v2.object.tag]] path="#.abbr" rename = "from_station" [[inputs.http.json_v2.object.field]] path = "#.etd.0.estimate.0.minutes" rename = "minutes" [[inputs.http.json_v2.object.tag]] path = "#.etd.0.abbreviation" rename = "to_station" [[inputs.http.json_v2.object.tag]] path = "#.etd.0.estimate.0.direction" [[processors.starlark]] ## Reads the Starlark script embedded source = ''' def apply(metric): # Change string Leaving to the number 0 so all metrics are numeric #if metric.fields['minutes'] == "Leaving": # metric.fields['minutes'] = '0' #metric.fields['minutes_as_int'] = int(metric.fields['minutes']) return metric ''' [[outputs.file]] data_format = "influx" files = ["/tmp/telegraf_output.txt"]