The goal of this repository is to have a shared definition of telemetry. By working on a common vocabulary, we can then differentiate tools in an unbiased way. I hope you'll help.
My working definition: Telemetry captures data from multiple sources, aggregates it, and publishes it in a consumable format. What happens after you collect and publish the information is beyond the scope of telemetry.
This gets tricky. I can only start with what I'm curious about, which includes:
Telemetry frameworks are often conflated with entire monitoring solutions. I would like to clarity the differences. To do so, I'm going to focus on only the telemetry portion of lots of tools.
Tools | Release Status | Collection Model | Written In | API |
---|---|---|---|---|
Snap | Beta (0.17.0) | Pull | Go | Yes |
collectd | Released (5.5) | Pull | C | No |
Bosun's scollector | Beta (0.5.0) | Pull | Go | Yes |
OpenTSDB's tcollector | Released (1.3) | Pull | Python | Yes |
diamond | Released (4.0) | Pull | Python | Yes? |
Telegraf | Released (1.0 | Pull | Go | No? |
statsd | Beta (0.8.0) | Push | JavaScript | Yes |
Ceilometer | Released (7.0.0) | Pull | Python | Yes |
cAdvisor | Beta (0.24) | Pull | Go | Yes |
Elastic's metricbeats | Alpha (6.0.0) | Pull | Go | No? |
metricsd | None | Pull | Go | No |
I will focus only on projects that have public releases from this point forward.
The core functionality of telemetry frameworks.
Tools | Default Interval | Custom Interval? | Multiple Intervals? | Collect from multiple sources? | Able to Process data? | Publish to multiple sources? |
---|---|---|---|---|---|---|
Snap | 1 second | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
collectd | 10 seconds | :white_check_mark: | :x: | :white_check_mark: | :x: | |
Bosun's scollector | 1 second | :white_check_mark: | ||||
OpenTSDB's tcollector | 15 seconds | |||||
Diamond | 300 seconds | |||||
Telegraf | 10 seconds | |||||
statsd | N/A | |||||
Ceilometer | 10 minutes | |||||
cAdvisor | 1 second | |||||
Elastic's metricbeats | 10 seconds |
The cost of using these tools, from an operations perspective, is important to consider.
Tools | New metrics | New collectors | New publishers | Version upgrade | Config change |
---|---|---|---|---|---|
Snap | No | No | No | Yes | Yes |
collectd | Yes | Yes | Yes | Yes | Yes |
Bosun's scollector | |||||
OpenTSDB's tcollector | |||||
Diamond | |||||
Telegraf | |||||
statsd | |||||
Ceilometer | |||||
cAdvisor | |||||
Elastic's metricbeats |
The above is a list I'm playing around with. Do you find it helpful? Give it a star to let me know :star: so I know to keep improving it for you. Want to add information? Open a PR following the format above and be sure to support the details with links either in the PR notes or in Notes.md.
What I made:
That I've reviewed:
That I need to explore: