############################################################################### # GENERAL ############################################################################### [agent] ## Global collection frequency interval = "30s" ## How often to flush data to outputs flush_interval = "30s" ## Random jitter to avoid all agents syncing at once collection_jitter = "2s" flush_jitter = "2s" ## Precision of timestamps precision = "1s" ## Enable for more verbose logging # debug = true ## If true, processors do not run again after aggregators. Default is false. skip_processors_after_aggregators=true ############################################################################### # SYSTEM ############################################################################### # CPU usage (user, system, idle) # [[inputs.cpu]] # percpu = false # totalcpu = true # fielddrop = ["usage_nice", "usage_iowait", "usage_irq", "usage_softirq", "usage_steal", "usage_guest", "usage_guest_nice"] # interval = "30s" # Memory (used, free) # [[inputs.mem]] # fieldpass = ["used", "free", "used_percent"] # interval = "30s" # Swap (used, free) # [[inputs.swap]] # fieldpass = ["used", "free", "used_percent"] # interval = "30s" # Disk usage (like df) # [[inputs.disk]] # mount_points = ["/media/docker"] # fieldpass = ["used", "free", "used_percent"] # ignore_fs = ["tmpfs", "devtmpfs"] # interval = "30s" # Disk I/O # [[inputs.diskio]] # devices = ["sda", "sdb", "nvme0n1"] # fieldpass = ["reads", "writes", "read_bytes", "write_bytes"] # interval = "30s" # Load and uptime # [[inputs.system]] # fieldpass = ["load1", "load5", "load15", "uptime"] # interval = "1m" ############################################################################### # MQTT ############################################################################### [[inputs.mqtt_consumer]] servers = ["tcp://host:1883"] username = "${MQTT_USER}" password = "${MQTT_PASS}" topics = [ "borgmatic/stats/#", ] data_format = "value" data_type = "string" name_override = "borgmatic_stats" [[inputs.mqtt_consumer]] servers = ["tcp://host:1883"] username = "${MQTT_USER}" password = "${MQTT_PASS}" topics = [ "borgmatic/split/#" ] data_format = "value" data_type = "string" name_override = "borgmatic_split" ############################################################################### # DATABASE ############################################################################### [[inputs.postgresql_extensible]] address = "host=${DATABASE_HOST} port=${DATABASE_PORT} user=${DATABASE_USER} password=${DATABASE_PASS} dbname=${DATABASE_NAME} sslmode=disable" interval = "1m" [[inputs.postgresql_extensible.query]] sqlquery = """ SELECT datname, pg_database_size(datname) AS size_bytes FROM pg_database WHERE datname NOT IN ('template0', 'template1') """ withdbname = true measurement = "postgresql_database_size" [[inputs.postgresql_extensible.query]] sqlquery = """ SELECT schemaname AS schema_name, tablename AS table_name, pg_total_relation_size(schemaname || '.' || tablename) AS size_bytes FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema') AND schemaname NOT LIKE '_timescaledb_%' """ withdbname = false measurement = "postgresql_table_size" ############################################################################### # OUTPUTS ############################################################################### [[outputs.sql]] driver = "pgx" data_source_name = "host=${DATABASE_HOST} port=${DATABASE_PORT} user=${DATABASE_USER} password=${DATABASE_PASS} dbname=${DATABASE_NAME} sslmode=disable" # Only include specific measurements # include_metrics = ["cpu", "mem", "swap", "disk", "diskio", "system"] [outputs.sql.convert] conversion_style = "literal" integer = "BIGINT" real = "DOUBLE PRECISION" text = "TEXT" timestamp = "TIMESTAMPTZ" defaultvalue = "TEXT" bool = "BOOLEAN" unsigned = "BIGINT" [[outputs.loki]] domain = "http://host:3100" timeout = "10s" [[outputs.mqtt]] servers = ["tcp://host:1883"] username = "${MQTT_USER}" password = "${MQTT_PASS}" topic = "telegraf/metrics" qos = 0 retain = false client_id = "telegraf" data_format = "json"