SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Downloaden Sie, um offline zu lesen
The Telegraf Toolbelt
It can do that, really?
© 2019 InfluxData. All rights reserved.2
David McKay
Developer Advocate
at InfluxData
@rawkode
🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scottish
🐭 Has 9 Pets
💙 Esoteric Programming Languages
☸ Kubernetes Release Team
🤔 Stoic
© 2019 InfluxData. All rights reserved.3
© 2019 InfluxData. All rights reserved.4
Introduction Demo
© 2019 InfluxData. All rights reserved.5
Telegraf is plugin based
© 2019 InfluxData. All rights reserved.6 © 2019 InfluxData. All rights reserved.6
Over 200 Plugins
➔ 169 Inputs
➔ 35 Outputs
➔ 15 Processors
➔ 14 Parsers
➔ 9 Serializers
➔ 8 Aggregators
© 2019 InfluxData. All rights reserved.7
➔ Outputs
◆ Google Cloud PubSub
➔ Serializers
◆ Nowmetric
◆ Carbon2
V1.10 (May)
➔ Inputs
◆ Google Cloud PubSub
◆ Kinesis Consumer
◆ Kube Inventory
◆ Neptune Apex
◆ Nginx Upstream Checks
◆ Multifile
◆ Stack Driver
© 2019 InfluxData. All rights reserved.8
➔ Outputs
◆ Health
◆ Syslog
➔ Serializers
◆ Wavefront
➔ Aggregators
◆ Final
V1.11 (June)
➔ Inputs
◆ bind9
◆ Cisco GNMI
◆ Cisco MDT
◆ ECS & Fargate
◆ GitHub
◆ OpenWeatherMap
◆ PowerDNS
© 2019 InfluxData. All rights reserved.9
V1.12 (September)
➔ Inputs
◆ apcupsd
◆ Docker Logs
◆ Fireboard
◆ Logstash
◆ MarkLogic
◆ OpenNTPD
◆ uWSGI
➔ Outputs
◆ Exec
➔ Parsers
◆ Form
➔ Processors
◆ Date
◆ Pivot
◆ Unpivot
◆ Tag Limit
© 2019 InfluxData. All rights reserved.10
© 2019 InfluxData. All rights reserved.11
There are 3249 telegraf.conf
files on GitHub
© 2019 InfluxData. All rights reserved.12
© 2019 InfluxData. All rights reserved.13
I used a sample of 1000
telegraf.conf files from GitHub
© 2019 InfluxData. All rights reserved.14 © 2019 InfluxData. All rights reserved.14
Output Plugins
➔ 72% InfluxDB
➔ 5% File
➔ 2% Prometheus Client
➔ .9% Graphite
➔ .6% Kafka
© 2019 InfluxData. All rights reserved.15
Interval
73% Use 10s (Default)
5.6% use 1s
4% use 5s
2% use 1m
1% use 30s
© 2019 InfluxData. All rights reserved.16
Round
Interval
90% True
© 2019 InfluxData. All rights reserved.17
Jitter 90% None
© 2019 InfluxData. All rights reserved.18
Omit
Hostname
90% False
© 2019 InfluxData. All rights reserved.19 © 2019 InfluxData. All rights reserved.19
Output Plugins
➔ 71% 1 Output
➔ 5% 2 Outputs
➔ 2% 0 Outputs
➔ .6% 3 Outputs
© 2019 InfluxData. All rights reserved.20 © 2019 InfluxData. All rights reserved.20
Input Plugins
➔ 17% 1 Input
➔ 12% 9 Inputs
➔ 10% 8 Inputs
➔ 5% 10 Inputs
➔ 5% 11 Inputs
➔ 5% 6 Inputs
➔ 5% 7 Inputs
➔ 1 56 Inputs ?!?!
© 2019 InfluxData. All rights reserved.21 © 2019 InfluxData. All rights reserved.21
Input Plugins
➔ 58% CPU
➔ 53% Mem
➔ 52% Disk
➔ 51% System
➔ 47% DiskIO
➔ 47% Swap
➔ 40% Process
➔ 31% Kernel
➔ 28% Docker
➔ 23% Net
© 2019 InfluxData. All rights reserved.22
Multiple Outputs
© 2019 InfluxData. All rights reserved.23 © 2019 InfluxData. All rights reserved.23
Multiple Outputs
[[outputs.influxdb]]
urls = ["http://influxdb:8086"]
[[outputs.influxdb_v2]]
urls = ["http://influxdb2:9999"]
© 2019 InfluxData. All rights reserved.24
Remote Configuration
© 2019 InfluxData. All rights reserved.25 © 2019 InfluxData. All rights reserved.25
Remote Configuration
telegraf --config <http_uri>
© 2019 InfluxData. All rights reserved.26 © 2019 InfluxData. All rights reserved.26
Remote Configuration
telegraf --config
https://raw.githubusercontent.com
/influxdata/telegraf/master/etc/telegraf.conf
© 2019 InfluxData. All rights reserved.27 © 2019 InfluxData. All rights reserved.27
Remote Configuration
SOME_VAR=abc123 telegraf --config <http_uri>
© 2019 InfluxData. All rights reserved.28 © 2019 InfluxData. All rights reserved.28
Remote Configuration
[agent]
interval = “${INTERVAL}”
[[outputs.influxdb_v2]]
token = “${TOKEN}”
© 2019 InfluxData. All rights reserved.29
Output Resiliency
© 2019 InfluxData. All rights reserved.30 © 2019 InfluxData. All rights reserved.30
Output Resiliency
Use
metric_buffer_limit
to handle downtime of your outputs
© 2019 InfluxData. All rights reserved.31
InfluxDB
Telegraf
Application
Software
Dependencies
Bare Metal
/
VMs
Network
Buffer Batch
© 2019 InfluxData. All rights reserved.32
Telegraf
Application
Software
Dependencies
Bare Metal
/
VMs
Network
Buffer Batch
© 2019 InfluxData. All rights reserved.33
InfluxDB
Telegraf
Application
Software
Dependencies
Bare Metal
/
VMs
Network
Buffer Batch
© 2019 InfluxData. All rights reserved.34 © 2019 InfluxData. All rights reserved.34
Output Resiliency
influxdb_listener
http_listener
© 2019 InfluxData. All rights reserved.35 © 2019 InfluxData. All rights reserved.35
influxdb_listener
Allows Telegraf to serve as a proxy for the /write endpoint of the
InfluxDB HTTP API.
Output Resiliency
© 2019 InfluxData. All rights reserved.36
influxdb_listener
[[inputs.influxdb_listener]]
service_address = ":8086"
© 2019 InfluxData. All rights reserved.37
© 2019 InfluxData. All rights reserved.38
v1 Client Libraries
© 2019 InfluxData. All rights reserved.39
http_listener_v2
Allows Telegraf to accept metrics over HTTP in any supported
format
Output Resiliency
© 2019 InfluxData. All rights reserved.40
http_listener_v2
[[inputs.http_listener_v2]]
service_address = ":8080"
data_format = "json"
© 2019 InfluxData. All rights reserved.41
JSON
[[inputs.http_listener_v2]]
data_format = "json"
json_name_key = "name"
tag_keys = [“go_version”]
Docs
© 2019 InfluxData. All rights reserved.42
Bring Your Own Telegraf
© 2019 InfluxData. All rights reserved.43
Plugins come at a cost
© 2019 InfluxData. All rights reserved.44
➜ docker image ls
byot-sample 15.2MB
telegraf 254MB
© 2019 InfluxData. All rights reserved.45 © 2019 InfluxData. All rights reserved.45
Bring Your Own Telegraf
FROM rawkode/telegraf:byo AS build
FROM alpine:3.7 AS telegraf
COPY --from=build /etc/telegraf /etc/telegraf
COPY --from=build /binary /bin/telegraf
ENTRYPOINT [ "/bin/telegraf" ]
© 2019 InfluxData. All rights reserved.46 © 2019 InfluxData. All rights reserved.46
Bring Your Own Telegraf
BYOT
BYOT Example
Click Me! Click Me!
© 2019 InfluxData. All rights reserved.47
InfluxDB
Telegraf
Application
Software
Dependencies
Bare Metal
/
VMs
Network
Buffer Batch
© 2019 InfluxData. All rights reserved.48
InfluxDB
Application
Software
Dependencies
Bare Metal
/
VMs
Network
Telegraf
Telegraf
Telegraf
Telegraf
© 2019 InfluxData. All rights reserved.49
Internal
© 2019 InfluxData. All rights reserved.50
Internal
➔ Keep an eye on buffer_size
➔ Make sure you alert on metrics_dropped
© 2019 InfluxData. All rights reserved.51
Health Output
© 2019 InfluxData. All rights reserved.52
@app.route("/health")
def healthcheck():
return "OK”
© 2019 InfluxData. All rights reserved.53
@app.route("/health")
def healthcheck():
return "OK”
© 2019 InfluxData. All rights reserved.54 © 2019 InfluxData. All rights reserved.54
Health Output
[[outputs.health]]
service_address = "http://:5559"
namepass = ["web-metrics"]
[[outputs.health.compares]]
field = "response_time"
lt = 0.300
© 2019 InfluxData. All rights reserved.55
Kafka In, Kafka Out
© 2019 InfluxData. All rights reserved.56
InfluxDB
Application
Software
Dependencies
Bare Metal
/
VMs
Network
Telegraf
Telegraf
Telegraf
Telegraf
Kafka
Telegraf
Telegraf
© 2019 InfluxData. All rights reserved.57
Serverless?
© 2019 InfluxData. All rights reserved.58
Demo
© 2019 InfluxData. All rights reserved.59
We’ve covered less than 10 of the
200 plugins
https://speakerdeck.com/rawkode
https://github.com/rawkode/influxdb-examples
@rawkode

Weitere ähnliche Inhalte

Ähnlich wie OSMC 2019 | The Telegraf Toolbelt: It Can Do That, Really? by David McKay

Ähnlich wie OSMC 2019 | The Telegraf Toolbelt: It Can Do That, Really? by David McKay (20)

How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin Ecosystem
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
 
Building Your Data Streams for all the IoT
Building Your Data Streams for all the IoTBuilding Your Data Streams for all the IoT
Building Your Data Streams for all the IoT
 
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
Scaling Prometheus Metrics in Kubernetes with Telegraf | Chris Goller | Influ...
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
 
Write your own telegraf plugin
Write your own telegraf pluginWrite your own telegraf plugin
Write your own telegraf plugin
 
Taming the Tiger: Tips and Tricks for Using Telegraf
Taming the Tiger: Tips and Tricks for Using TelegrafTaming the Tiger: Tips and Tricks for Using Telegraf
Taming the Tiger: Tips and Tricks for Using Telegraf
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
 
Sensor Data in InfluxDB by David Simmons, IoT Developer Evangelist | InfluxData
Sensor Data in InfluxDB by David Simmons, IoT Developer Evangelist | InfluxDataSensor Data in InfluxDB by David Simmons, IoT Developer Evangelist | InfluxData
Sensor Data in InfluxDB by David Simmons, IoT Developer Evangelist | InfluxData
 
Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018Intro to Git Devnet-1080 Cisco Live 2018
Intro to Git Devnet-1080 Cisco Live 2018
 
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
 
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaSOverpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
Overpowered Kubernetes: CI/CD for K8s on Enterprise IaaS
 
CloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdfCloudNativeAalborg2023_Jan.pdf
CloudNativeAalborg2023_Jan.pdf
 
eXoer on the grill: eXo Add-ons factory using Docker and Codenvy
eXoer on the grill: eXo Add-ons factory using Docker and CodenvyeXoer on the grill: eXo Add-ons factory using Docker and Codenvy
eXoer on the grill: eXo Add-ons factory using Docker and Codenvy
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 
Why Automate the Network?
Why Automate the Network?Why Automate the Network?
Why Automate the Network?
 
Docker and Jenkins [as code]
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdfAzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
AzureNativeQumulo_HPC_Cloud_Native_Benchmarks.pdf
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024Modern binary build systems - PyCon 2024
Modern binary build systems - PyCon 2024
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit MilanWorkshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
Workshop: Enabling GenAI Breakthroughs with Knowledge Graphs - GraphSummit Milan
 
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
Auto Affiliate  AI Earns First Commission in 3 Hours..pdfAuto Affiliate  AI Earns First Commission in 3 Hours..pdf
Auto Affiliate AI Earns First Commission in 3 Hours..pdf
 
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
Abortion Clinic In Johannesburg ](+27832195400*)[ 🏥 Safe Abortion Pills in Jo...
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 

OSMC 2019 | The Telegraf Toolbelt: It Can Do That, Really? by David McKay

  • 1. The Telegraf Toolbelt It can do that, really?
  • 2. © 2019 InfluxData. All rights reserved.2 David McKay Developer Advocate at InfluxData @rawkode 🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scottish 🐭 Has 9 Pets 💙 Esoteric Programming Languages ☸ Kubernetes Release Team 🤔 Stoic
  • 3. © 2019 InfluxData. All rights reserved.3
  • 4. © 2019 InfluxData. All rights reserved.4 Introduction Demo
  • 5. © 2019 InfluxData. All rights reserved.5 Telegraf is plugin based
  • 6. © 2019 InfluxData. All rights reserved.6 © 2019 InfluxData. All rights reserved.6 Over 200 Plugins ➔ 169 Inputs ➔ 35 Outputs ➔ 15 Processors ➔ 14 Parsers ➔ 9 Serializers ➔ 8 Aggregators
  • 7. © 2019 InfluxData. All rights reserved.7 ➔ Outputs ◆ Google Cloud PubSub ➔ Serializers ◆ Nowmetric ◆ Carbon2 V1.10 (May) ➔ Inputs ◆ Google Cloud PubSub ◆ Kinesis Consumer ◆ Kube Inventory ◆ Neptune Apex ◆ Nginx Upstream Checks ◆ Multifile ◆ Stack Driver
  • 8. © 2019 InfluxData. All rights reserved.8 ➔ Outputs ◆ Health ◆ Syslog ➔ Serializers ◆ Wavefront ➔ Aggregators ◆ Final V1.11 (June) ➔ Inputs ◆ bind9 ◆ Cisco GNMI ◆ Cisco MDT ◆ ECS & Fargate ◆ GitHub ◆ OpenWeatherMap ◆ PowerDNS
  • 9. © 2019 InfluxData. All rights reserved.9 V1.12 (September) ➔ Inputs ◆ apcupsd ◆ Docker Logs ◆ Fireboard ◆ Logstash ◆ MarkLogic ◆ OpenNTPD ◆ uWSGI ➔ Outputs ◆ Exec ➔ Parsers ◆ Form ➔ Processors ◆ Date ◆ Pivot ◆ Unpivot ◆ Tag Limit
  • 10. © 2019 InfluxData. All rights reserved.10
  • 11. © 2019 InfluxData. All rights reserved.11 There are 3249 telegraf.conf files on GitHub
  • 12. © 2019 InfluxData. All rights reserved.12
  • 13. © 2019 InfluxData. All rights reserved.13 I used a sample of 1000 telegraf.conf files from GitHub
  • 14. © 2019 InfluxData. All rights reserved.14 © 2019 InfluxData. All rights reserved.14 Output Plugins ➔ 72% InfluxDB ➔ 5% File ➔ 2% Prometheus Client ➔ .9% Graphite ➔ .6% Kafka
  • 15. © 2019 InfluxData. All rights reserved.15 Interval 73% Use 10s (Default) 5.6% use 1s 4% use 5s 2% use 1m 1% use 30s
  • 16. © 2019 InfluxData. All rights reserved.16 Round Interval 90% True
  • 17. © 2019 InfluxData. All rights reserved.17 Jitter 90% None
  • 18. © 2019 InfluxData. All rights reserved.18 Omit Hostname 90% False
  • 19. © 2019 InfluxData. All rights reserved.19 © 2019 InfluxData. All rights reserved.19 Output Plugins ➔ 71% 1 Output ➔ 5% 2 Outputs ➔ 2% 0 Outputs ➔ .6% 3 Outputs
  • 20. © 2019 InfluxData. All rights reserved.20 © 2019 InfluxData. All rights reserved.20 Input Plugins ➔ 17% 1 Input ➔ 12% 9 Inputs ➔ 10% 8 Inputs ➔ 5% 10 Inputs ➔ 5% 11 Inputs ➔ 5% 6 Inputs ➔ 5% 7 Inputs ➔ 1 56 Inputs ?!?!
  • 21. © 2019 InfluxData. All rights reserved.21 © 2019 InfluxData. All rights reserved.21 Input Plugins ➔ 58% CPU ➔ 53% Mem ➔ 52% Disk ➔ 51% System ➔ 47% DiskIO ➔ 47% Swap ➔ 40% Process ➔ 31% Kernel ➔ 28% Docker ➔ 23% Net
  • 22. © 2019 InfluxData. All rights reserved.22 Multiple Outputs
  • 23. © 2019 InfluxData. All rights reserved.23 © 2019 InfluxData. All rights reserved.23 Multiple Outputs [[outputs.influxdb]] urls = ["http://influxdb:8086"] [[outputs.influxdb_v2]] urls = ["http://influxdb2:9999"]
  • 24. © 2019 InfluxData. All rights reserved.24 Remote Configuration
  • 25. © 2019 InfluxData. All rights reserved.25 © 2019 InfluxData. All rights reserved.25 Remote Configuration telegraf --config <http_uri>
  • 26. © 2019 InfluxData. All rights reserved.26 © 2019 InfluxData. All rights reserved.26 Remote Configuration telegraf --config https://raw.githubusercontent.com /influxdata/telegraf/master/etc/telegraf.conf
  • 27. © 2019 InfluxData. All rights reserved.27 © 2019 InfluxData. All rights reserved.27 Remote Configuration SOME_VAR=abc123 telegraf --config <http_uri>
  • 28. © 2019 InfluxData. All rights reserved.28 © 2019 InfluxData. All rights reserved.28 Remote Configuration [agent] interval = “${INTERVAL}” [[outputs.influxdb_v2]] token = “${TOKEN}”
  • 29. © 2019 InfluxData. All rights reserved.29 Output Resiliency
  • 30. © 2019 InfluxData. All rights reserved.30 © 2019 InfluxData. All rights reserved.30 Output Resiliency Use metric_buffer_limit to handle downtime of your outputs
  • 31. © 2019 InfluxData. All rights reserved.31 InfluxDB Telegraf Application Software Dependencies Bare Metal / VMs Network Buffer Batch
  • 32. © 2019 InfluxData. All rights reserved.32 Telegraf Application Software Dependencies Bare Metal / VMs Network Buffer Batch
  • 33. © 2019 InfluxData. All rights reserved.33 InfluxDB Telegraf Application Software Dependencies Bare Metal / VMs Network Buffer Batch
  • 34. © 2019 InfluxData. All rights reserved.34 © 2019 InfluxData. All rights reserved.34 Output Resiliency influxdb_listener http_listener
  • 35. © 2019 InfluxData. All rights reserved.35 © 2019 InfluxData. All rights reserved.35 influxdb_listener Allows Telegraf to serve as a proxy for the /write endpoint of the InfluxDB HTTP API. Output Resiliency
  • 36. © 2019 InfluxData. All rights reserved.36 influxdb_listener [[inputs.influxdb_listener]] service_address = ":8086"
  • 37. © 2019 InfluxData. All rights reserved.37
  • 38. © 2019 InfluxData. All rights reserved.38 v1 Client Libraries
  • 39. © 2019 InfluxData. All rights reserved.39 http_listener_v2 Allows Telegraf to accept metrics over HTTP in any supported format Output Resiliency
  • 40. © 2019 InfluxData. All rights reserved.40 http_listener_v2 [[inputs.http_listener_v2]] service_address = ":8080" data_format = "json"
  • 41. © 2019 InfluxData. All rights reserved.41 JSON [[inputs.http_listener_v2]] data_format = "json" json_name_key = "name" tag_keys = [“go_version”] Docs
  • 42. © 2019 InfluxData. All rights reserved.42 Bring Your Own Telegraf
  • 43. © 2019 InfluxData. All rights reserved.43 Plugins come at a cost
  • 44. © 2019 InfluxData. All rights reserved.44 ➜ docker image ls byot-sample 15.2MB telegraf 254MB
  • 45. © 2019 InfluxData. All rights reserved.45 © 2019 InfluxData. All rights reserved.45 Bring Your Own Telegraf FROM rawkode/telegraf:byo AS build FROM alpine:3.7 AS telegraf COPY --from=build /etc/telegraf /etc/telegraf COPY --from=build /binary /bin/telegraf ENTRYPOINT [ "/bin/telegraf" ]
  • 46. © 2019 InfluxData. All rights reserved.46 © 2019 InfluxData. All rights reserved.46 Bring Your Own Telegraf BYOT BYOT Example Click Me! Click Me!
  • 47. © 2019 InfluxData. All rights reserved.47 InfluxDB Telegraf Application Software Dependencies Bare Metal / VMs Network Buffer Batch
  • 48. © 2019 InfluxData. All rights reserved.48 InfluxDB Application Software Dependencies Bare Metal / VMs Network Telegraf Telegraf Telegraf Telegraf
  • 49. © 2019 InfluxData. All rights reserved.49 Internal
  • 50. © 2019 InfluxData. All rights reserved.50 Internal ➔ Keep an eye on buffer_size ➔ Make sure you alert on metrics_dropped
  • 51. © 2019 InfluxData. All rights reserved.51 Health Output
  • 52. © 2019 InfluxData. All rights reserved.52 @app.route("/health") def healthcheck(): return "OK”
  • 53. © 2019 InfluxData. All rights reserved.53 @app.route("/health") def healthcheck(): return "OK”
  • 54. © 2019 InfluxData. All rights reserved.54 © 2019 InfluxData. All rights reserved.54 Health Output [[outputs.health]] service_address = "http://:5559" namepass = ["web-metrics"] [[outputs.health.compares]] field = "response_time" lt = 0.300
  • 55. © 2019 InfluxData. All rights reserved.55 Kafka In, Kafka Out
  • 56. © 2019 InfluxData. All rights reserved.56 InfluxDB Application Software Dependencies Bare Metal / VMs Network Telegraf Telegraf Telegraf Telegraf Kafka Telegraf Telegraf
  • 57. © 2019 InfluxData. All rights reserved.57 Serverless?
  • 58. © 2019 InfluxData. All rights reserved.58 Demo
  • 59. © 2019 InfluxData. All rights reserved.59 We’ve covered less than 10 of the 200 plugins