From d17b816a7ba9b1aa34e65d9897df123242905903 Mon Sep 17 00:00:00 2001 From: root on odroid Date: Thu, 13 Apr 2023 12:48:33 +0000 Subject: [PATCH] update telegraf config --- config/telegraf/telegraf.d/mqtt-plug.conf | 77 +++++++++++++++++++ .../telegraf.d/{mqtt.conf => mqtt-temp.conf} | 0 2 files changed, 77 insertions(+) create mode 100644 config/telegraf/telegraf.d/mqtt-plug.conf rename config/telegraf/telegraf.d/{mqtt.conf => mqtt-temp.conf} (100%) diff --git a/config/telegraf/telegraf.d/mqtt-plug.conf b/config/telegraf/telegraf.d/mqtt-plug.conf new file mode 100644 index 0000000..f42621f --- /dev/null +++ b/config/telegraf/telegraf.d/mqtt-plug.conf @@ -0,0 +1,77 @@ +# Configuration for telegraf agent +[agent] + ## Default data collection interval for all inputs + interval = "10s" + round_interval = true + + metric_batch_size = 1000 + + ## Maximum number of unwritten metrics per output. Increasing this value + ## allows for longer periods of output downtime without dropping metrics at the + ## cost of higher maximum memory usage. + 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 = "" + ## 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 + +# Read metrics from MQTT topic(s) +# https://github.com/influxdata/telegraf/blob/release-1.23/plugins/inputs/mqtt_consumer/README.md +[[inputs.mqtt_consumer]] + ## Broker URLs for the MQTT server or cluster. To connect to multiple + ## clusters or standalone servers, use a separate plugin instance. + ## example: servers = ["tcp://localhost:1883"] + ## servers = ["ssl://localhost:1883"] + ## servers = ["ws://localhost:1883"] + servers = ["tcp://mqtt:8883"] + username = "telegraf" + password = "iaveexieyuz0Faewa7rieghoyaeseesh" + + ## Topics that will be subscribed to. +# "plug/#", +# "plug/desk/SENSOR", + topics = [ + "plug/#", + ] + + # https://github.com/influxdata/telegraf/tree/master/plugins/parsers/json + data_format = "json" + + name_override = "plug" +# json_time_key = "Time" +# json_time_format = "2006-01-02T15:04:05" + +[[outputs.postgresql]] +# https://github.com/influxdata/telegraf/blob/release-1.24/plugins/outputs/postgresql/README.md + connection = "postgres://postgres:ood2eeZu@timescaledb" + + tags_as_foreign_keys = true + create_templates = [ + '''CREATE TABLE {{ .table }} ({{ .columns }})''', + '''SELECT create_hypertable({{ .table|quoteLiteral }}, 'time', chunk_time_interval => INTERVAL '1h')''', + '''ALTER TABLE {{ .table }} SET (timescaledb.compress, timescaledb.compress_segmentby = 'tag_id')''', + ] + diff --git a/config/telegraf/telegraf.d/mqtt.conf b/config/telegraf/telegraf.d/mqtt-temp.conf similarity index 100% rename from config/telegraf/telegraf.d/mqtt.conf rename to config/telegraf/telegraf.d/mqtt-temp.conf