Last active
August 20, 2021 10:01
-
-
Save burdandrei/692a23698e355b7fdac6342b4342b171 to your computer and use it in GitHub Desktop.
Receive consul and nomad telemetry in influx in usable form
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Templates are updated to be compatible with nomad > 0.7.1 | |
[agent] | |
interval = "10s" | |
round_interval = true | |
metric_batch_size = 1000 | |
metric_buffer_limit = 10000 | |
collection_jitter = "0s" | |
flush_interval = "10s" | |
flush_jitter = "3s" | |
precision = "" | |
debug = false | |
quiet = false | |
hostname = "" | |
omit_hostname = true | |
[[outputs.influxdb]] | |
urls = ["http://influxdb.service.consul:8086"] # required | |
database = "statsd" # required | |
retention_policy = "" | |
timeout = "5s" | |
# Statistics of number of events received and processing time | |
[[inputs.internal]] | |
[inputs.internal.tags] | |
host = "telegraf-statsd-receiver" | |
[[inputs.statsd]] | |
service_address = ":8125" | |
delete_gauges = false | |
delete_counters = false | |
delete_sets = false | |
delete_timings = true | |
percentiles = [90] | |
metric_separator = "_" | |
templates = [ | |
"consul.consul.* measurement.field*", | |
"consul.dns.* measurement.measurement.field*", | |
"consul.memberlist.* measurement.measurement.field*", | |
"consul.raft.* measurement.measurement.field*", | |
"consul.runtime.* measurement.measurement.field*", | |
"consul.serf.queue.* measurement.measurement..queue.field*", | |
"consul.serf.* measurement.measurement.field*", | |
"consul.*.runtime.* measurement.host.measurement.field*", | |
"consul.*.memberlist.* measurement.host.measurement.field", | |
"consul.* measurement.field*", | |
"nomad.client.allocated.network.* measurement.measurement.field.field.node-id.datacenter.interface.hostname", | |
"nomad.client.allocated.* measurement.measurement.field.field.node-id.datacenter.hostname", | |
"nomad.client.allocations.* measurement.measurement.field.field.node-id.datacenter.hostname", | |
"nomad.client.allocs.complete.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname", | |
"nomad.client.allocs.destroy.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname", | |
"nomad.client.allocs.restart.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname", | |
"nomad.client.allocs.running.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname", | |
"nomad.client.allocs.start.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname", | |
"nomad.client.allocs.* measurement.measurement.measurement.field.field.job.task-group.alloc-id.task.hostname", | |
"nomad.client.consul.checks.* measurement.measurement.field.hostname", | |
"nomad.client.consul.services.* measurement.measurement.field.hostname", | |
"nomad.client.consul.* measurement.measurement.field.field.hostname", | |
"nomad.client.host.cpu.* measurement.measurement.measurement.field.field.node-id.datacenter.cpu-core.hostname", | |
"nomad.client.host.disk.* measurement.measurement.measurement.field.field.node-id.datacenter.device-name.hostname", | |
"nomad.client.host.memory.* measurement.measurement.measurement.field.field.node-id.datacenter.hostname", | |
"nomad.client.unallocated.* measurement.measurement.field.field.node-id.datacenter.hostname", | |
"nomad.uptime.* measurement.field.hostname", | |
"nomad.memberlist.tcp.* measurement.measurement.field.field.hostname", | |
"nomad.memberlist.udp.* measurement.measurement.field.field.hostname", | |
"nomad.memberlist.* measurement.measurement.field*", | |
"nomad.nomad.job_summary.* measurement.nomad.field.field.job.task-group.hostname", | |
"nomad.nomad.* measurement.nomad.field.field.hostname", | |
"nomad.raft.replication.*.*.*.*.*.* measurement.field.field.field.ip.ip.ip.ip.hostname", | |
"nomad.raft.replication.*.*.*.*.*.*.* measurement.field.field.field.field.ip.ip.ip.ip.hostname", | |
"nomad.raft.*.* measurement.field.fieldhostname", | |
"nomad.raft.*.*.* measurement.field.field.field.hostname", | |
"nomad.runtime.* measurement.field.field.hostname", | |
"nomad.serf.* measurement.field.field.hostname" | |
] | |
parse_data_dog_tags = false | |
allowed_pending_messages = 10000 | |
percentile_limit = 1000 |
@sundarsrst this config gives you the ability to use your telegraf as statsD listener, and parse the statsD messages to Influx Line protocol, ready to be sent to InfluxDB
Tweaked the template just a bit, to correct a typo and fix the uptime mapping. Using nomad 0.8.7
"nomad.client.allocated.* measurement.measurement.field.field.node-id.datacenter.hostname",
"nomad.client.allocations.* measurement.measurement.field.field.node-id.datacenter.hostname",
"nomad.client.allocs.complete.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname",
"nomad.client.allocs.destroy.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname",
"nomad.client.allocs.restart.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname",
"nomad.client.allocs.running.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname",
"nomad.client.allocs.start.* measurement.measurement.measurement.field.job.task-group.alloc-id.task.hostname",
"nomad.client.allocs.* measurement.measurement.measurement.field.field.job.task-group.alloc-id.task.hostname",
"nomad.client.consul.checks.* measurement.measurement.field.hostname",
"nomad.client.consul.services.* measurement.measurement.field.hostname",
"nomad.client.consul.* measurement.measurement.field.field.hostname",
"nomad.client.host.cpu.* measurement.measurement.measurement.field.field.node-id.datacenter.cpu-core.hostname",
"nomad.client.host.disk.* measurement.measurement.measurement.field.field.node-id.datacenter.device-name.hostname",
"nomad.client.host.memory.* measurement.measurement.measurement.field.field.node-id.datacenter.hostname",
"nomad.client.unallocated.* measurement.measurement.field.field.node-id.datacenter.hostname",
"nomad.client.uptime.* measurement.measurement.field.node-id.datacenter.hostname",
"nomad.memberlist.tcp.* measurement.measurement.field.field.hostname",
"nomad.memberlist.udp.* measurement.measurement.field.field.hostname",
"nomad.memberlist.* measurement.measurement.field*",
"nomad.nomad.job_summary.* measurement.nomad.field.field.job.task-group.hostname",
"nomad.nomad.*.*.* measurement.nomad.field.field.hostname",
"nomad.nomad.*.*.*.* measurement.nomad.field.field.field.hostname",
"nomad.raft.replication.*.*.*.*.*.* measurement.field.field.field.ip.ip.ip.ip.hostname",
"nomad.raft.replication.*.*.*.*.*.*.* measurement.field.field.field.field.ip.ip.ip.ip.hostname",
"nomad.raft.*.* measurement.field.field.hostname",
"nomad.raft.*.*.* measurement.field.field.field.hostname",
"nomad.raft.*.*.*.* measurement.field.field.field.field.hostname",
"nomad.runtime.* measurement.field.field.hostname",
"nomad.serf.* measurement.field.field.field.hostname"```
this made my day, ty ⚡
if you have issues with allocations showing after being deleted:
delete_gauges = true
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
hii, how does the output look like for this code? when i run this code, it shows null result.