SlideShare une entreprise Scribd logo
1  sur  30
Samantha Wang
Product Manager, InfluxData
Best Practices on How
to Transform Your
Data Using Telegraf
and Flux
© 2020 InfluxData. All rights reserved. 2
Why do we transform data?
Problems:
● Resource-intensive.
● Lack of expertise and carelessness
● Better-organization
● Facilitates compatibility between applications, systems,
and types of data
© 2020 InfluxData. All rights reserved. 3
Goals:
1. How to transform your data to fit the optimal state of your
monitoring environment
2. Tools for transformation BEFORE data ingestion
a. The power of Telegraf processors and aggregators
3. Tools for transformation AFTER data ingestion
a. The power of Flux transformation queries
Basic data Concepts of
InfluxDB
© 2020 InfluxData. All rights reserved. 5
What you’re
collecting
Data
ingestion
Database!!
Visualizations
Analytics
transform!
transform!
© 2020 InfluxData. All rights reserved. 6
© 2020 InfluxData. All rights reserved. 7
weather,location=us-midwest temperature=82,humidity=71 1465839830100400200
InfluxDB Line Protocol
tag(s) field(s) timestamp
weather location=us-midwest temperature=82,humidity=71
BEFORE load:
Transforming data with
Telegraf
© 2020 InfluxData. All rights reserved. 9
Telegraf
CPU
Mem
Disk
Docker
Kubernetes
/metrics
Kafka
MySQL
Process
- transform
- decorate
- filter
Aggregate
- mean
- min,max
- count
- variance
- stddev
InfluxDB
File
Kafka
CloudWatch
CloudWatch
Input Output
© 2020 InfluxData. All rights reserved. 10
Why manipulate data with Telegraf?
● Convert tags ↔ fields or data types
● Rename field names or values
● Aggregate data
● Clean up or filter data
● Perform data transformation as close to the device
● Improve performance
© 2020 InfluxData. All rights reserved. 11
Convert Data:
[[processors.converter]]
[processors.converter.tags]
measurement = []
string = []
integer = []
unsigned = []
boolean = []
float = []
[processors.converter.fields]
measurement = []
tag = []
string = []
processors.converter
© 2020 InfluxData. All rights reserved. 12
Convert tags ↔ fields
Convert port tag to a string field:
[[processors.converter]]
[processors.converter.tags]
string = ["port"]
- apache,port=80,server=debian-stretch-apache BytesPerReq=0
+ apache,server=debian-stretch-apache port="80",BytesPerReq=0
[[processors.converter]]
[processors.converter.fields]
tag = ["port"]
- apache,server=debian-stretch-apache port="80",BytesPerReq=0
+ apache,port=80,server=debian-stretch-apache BytesPerReq=0
Convert port field to a tag:
© 2020 InfluxData. All rights reserved. 13
Convert data types
Convert all scboard_* fields to
an integer: [[processors.converter]]
[processors.converter.fields]
integer = ["scboard_*"]
- apache scboard_open=100,scboard_reading=0,scboard_sending=1,scboard_starting=0,scboard_waiting=49
+ apache scboard_open=100i,scboard_reading=0i,scboard_sending=1i,scboard_starting=0i,scboard_waiting=49i
© 2020 InfluxData. All rights reserved. 14
Mapping:
[[processors.enum]]
[[processors.enum.mapping]]
tag = "StorageType"
dest = "StorageName"
[processors.enum.mapping.value_mappings]
".1.3.6.1.2.1.25.2.1.1" = "Other"
".1.3.6.1.2.1.25.2.1.2" = "RAM"
".1.3.6.1.2.1.25.2.1.3" = "Virtual Memory"
".1.3.6.1.2.1.25.2.1.4" = "Fixed Disk"
".1.3.6.1.2.1.25.2.1.5" = "Removable Disk"
".1.3.6.1.2.1.25.2.1.6" = "Floppy Disk"
".1.3.6.1.2.1.25.2.1.7" = "Compact Disc"
".1.3.6.1.2.1.25.2.1.8" = "RAM Disk"
- snmp StorageType=".1.3.6.1.2.1.25.2.1.6" 1502489900000000000
+ snmp StorageName="Floppy Disk",StorageType=".1.3.6.1.2.1.25.2.1.6" 1502489900000000000
Enum Processor:
● value mappings for metric tags
or fields
● Common use case is to map
status codes
processors.enum
© 2020 InfluxData. All rights reserved. 15
Transform tags and fields:
Regex Processor:
● Change tags and manipulate field values with regex patterns
● Can replace existing field OR produce new tags and fields
while maintaining existing ones
processors.regex
© 2020 InfluxData. All rights reserved. 16
- nginx,resp_code=200 request="/api/search/?category=plugins&q=regex&sort=asc",referrer="-",ident="-
",http_version=1.1,client_ip="127.0.0.1" 1519652321000000000
+ nginx,resp_code=2xx
request="/api/search/?category=plugins&q=regex&sort=asc",method="/search/",search_category="p
lugins",referrer="-",ident="-",http_version=1.1,client_ip="127.0.0.1" 1519652321000000000
[[processors.regex]]
namepass = ["nginx"]
[[processors.regex.tags]]
key = "resp_code"
pattern = "^(d)dd$"
replacement = "${1}xx"
[[processors.regex.fields]]
key = "request"
pattern = "^/api(?P<method>/[w/]+)S*"
replacement = "${method}"
result_key = "method"
[[processors.regex.fields]]
key = "request"
pattern = ".*category=(w+).*"
replacement = "${1}"
result_key = "search_category"
© 2020 InfluxData. All rights reserved. 17
Math & Logic Operations:
● Dialect of Python
● Starlark specification
(google/starlark-go) has details
about the syntax and available
functions
● Use Cases:
○ Math operations
○ Logic operations
○ Some string operations
○ Add or remove
tags/fields/metrics
[[processors.starlark]]
## Source of the Starlark script.
source = '''
def apply(metric):
return metric
'''
## File containing a Starlark
script.
# script =
"/usr/local/bin/myscript.star"
processors.starlark
© 2020 InfluxData. All rights reserved. 18
Basic Math - IoT
Example w/ Modbus Plugin:
Calculate power from voltage
& current
P = I * V
[[processors.starlark]]
source = '''
def apply(metric):
I = metric.fields['current']
V = metric.fields['voltage']
metric.fields['power'] = I * V
return metric
'''
- modbus.InputRegisters,host=localhost current=550,frequency=60,voltage=12.93223 1554079521000000000
+ modbus.InputRegisters,host=localhost current=550,frequency=60,voltage=12.93223,power=7112.7265 1554079521000000000
© 2020 InfluxData. All rights reserved. 19
Other useful transformations
Clone - creates a copy of each metric to preserve the original metric and allow modifications in the
copied metric
Date - adds the metric timestamp as a human readable tag
Dedup - filters metrics whose field values are exact repetitions of the previous values.
Ifname - processor plugin looks up network interface names using SNMP.
Parser - defined fields containing the specified data format and creates new metrics based on the
contents of the field
Pivot - rotate single valued metrics into a multi field metric
Rename - renames InfluxDB measurements, fields, and tags
Strings - maps certain Go string functions onto InfluxDB measurement, tag, and field values
TopK - filter designed to get the top series over a period of time
© 2020 InfluxData. All rights reserved. 20
And aggregators!
BasicStats - count, max, min, mean, s2(variance), and stdev for
a set of values, emitting the aggregate every period seconds
Final - emits the last metric of a contiguous series
Merge - merges metrics together and generates line protocol
with multiple fields per line
MinMax - aggregates min and max values of each field it sees
ValueCounter - counts the occurrence of values in fields and
emits the counter once every ‘period’ seconds
AFTER load: Transforming
data with Flux
© 2020 InfluxData. All rights reserved. 22
Why Flux?
InfluxData’s functional data scripting language designed for
querying, analyzing, and acting on data
Flux allows for a lot of capabilities you wouldn’t get with InfluxQL
https://docs.influxdata.com/influxdb/v2.0/query
-data/get-started/
© 2020 InfluxData. All rights reserved. 23
map() functions
Map operates on a row one at a time...
map(fn: (r) => ({ _value: r._value * r._value }))
...re-maps the row record with what it’s operating unless you use
with
map(fn: (r) => ({ r with newColumn: r._value * 2 }))
Things to do with map():
- Basic Mathematical operations
- Conditional Logic
- Adding new columns and tables
© 2020 InfluxData. All rights reserved. 24
Mathematical Operations
import "math"
Flux Math package result
Basic Math math.pi * 6.12 ^ 2.0 117.66646788461355
Basic Math r._value + r._value 2 * r._value
Round math.floor(x: 1.22) 1
Trig math.cos(x: 3.14) -0.9999987317275396
|> map(fn: (r) => ({r with
pizza: math.pi * r._value ^ 2 }))
© 2020 InfluxData. All rights reserved. 25
String manipulations and data shaping
Flux String package result
Concatenation strings.joinStr(arr: ["rain on me", "rain", "rain"], v: ",")
"rain on me, rain,
rain"
Splitting strings.split(v: "rain on me", t: " ") ["rain", "on", "me"]
Substring strings.substring(v: "Lady Gaga", start: 5, end: 8) “Gaga”
Case
conversion
strings.toUpper(v: "chromatica") “CHROMATICA”
Searching
strings.containsStr(v: "it’s coming down on me", substr: "down")
strings.countStr(v: "rain gain pain", substr: "ain")
true
3
import "strings"
|> map(fn: (r) => ({r with
content: strings.replace(v: r.content, t: "Mariah Carey", u: "Lady Gaga", i: 3)}))
© 2020 InfluxData. All rights reserved. 26
Conditional logic: if/then/else
● Conditionally transform column values with map()
if r._value >= 29 then "playoffs!!!"
else if r._value < 29 and r._value >= 26 then "so close"
else "better luck next year"
© 2020 InfluxData. All rights reserved. 27
League Division Name _field _value
AL West Angels Wins 26
AL West Astros Wins 29
AL West Athletics Wins 36
AL East Blue Jays Wins 32
AL Central Indians Wins 35
AL West Mariners Wins 27
AL East Orioles Wins 25
AL West Rangers Wins 22
AL East Rays Wins 40
AL East Red Sox Wins 24
AL Central Royals Wins 26
AL Central Tigers Wins 23
AL Central Twins Wins 36
AL Central White Sox Wins 35
AL East Yankees Wins 33
Conditional logic: if/then/else
|> map(fn: (r) => ({
r with
postseason:
if r._value >= 29
then "playoffs!!!"
else if r._value < 29 and r._value >= 26
then "so close"
else "better luck next year"
})
)
postseason
so close
playoffs!!!
playoffs!!!
playoffs!!!
playoffs!!!
so close
better luck next year
better luck next year
playoffs!!!
better luck next year
so close
better luck next year
playoffs!!!
playoffs!!!
playoffs!!!
Telegraf and Flux both
sound super great!
© 2020 InfluxData. All rights reserved. 29
When to do something in Telegraf or Flux?
Telegraf:
● Tag/field manipulation for data Routing
● Cleaning up data
● Permanent transformations to improve performance on the
query side
Flux:
● Optimizing data for query and analysis
● Creating new columns or tables
● Flexibility
© 2020 InfluxData. All rights reserved. 30
Thank You!!
Telegraf Processors:
https://docs.influxdata.com/telegraf/latest/plugins/
Flux docs: https://docs.influxdata.com/flux

Contenu connexe

Tendances

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...InfluxData
 
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのかApache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのかToshihiro Suzuki
 
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020onozaty
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介VirtualTech Japan Inc.
 
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月VirtualTech Japan Inc.
 
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティElasticsearch
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Yahoo!デベロッパーネットワーク
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮Hibino Hisashi
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with PrometheusShiao-An Yuan
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをi_yudai
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheusKasper Nissen
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたKohei Nakamura
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについてmoai kids
 
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CISecure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CIMitchell Pronschinske
 

Tendances (20)

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...
 
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのかApache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
 
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
知っておくべきCephのIOアクセラレーション技術とその活用方法 - OpenStack最新情報セミナー 2015年9月
 
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
 
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
Micrometer/Prometheusによる大規模システムモニタリング #jsug #sf_26
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
猿でもわかる Helm
猿でもわかる Helm猿でもわかる Helm
猿でもわかる Helm
 
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
Monitoring with prometheus
Monitoring with prometheusMonitoring with prometheus
Monitoring with prometheus
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
 
Twitterのsnowflakeについて
TwitterのsnowflakeについてTwitterのsnowflakeについて
Twitterのsnowflakeについて
 
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CISecure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
Secure Infrastructure Provisioning with Terraform Cloud, Vault + GitLab CI
 
Prometheus monitoring
Prometheus monitoringPrometheus monitoring
Prometheus monitoring
 

Similaire à Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Using Telegraf and Flux | InfluxDays Virtual Experience NA 2020

Accelerating analytics on the Sensor and IoT Data.
Accelerating analytics on the Sensor and IoT Data. Accelerating analytics on the Sensor and IoT Data.
Accelerating analytics on the Sensor and IoT Data. Keshav Murthy
 
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...InfluxData
 
strata_spark_streaming.ppt
strata_spark_streaming.pptstrata_spark_streaming.ppt
strata_spark_streaming.pptrveiga100
 
Productionizing your Streaming Jobs
Productionizing your Streaming JobsProductionizing your Streaming Jobs
Productionizing your Streaming JobsDatabricks
 
Distributed Real-Time Stream Processing: Why and How 2.0
Distributed Real-Time Stream Processing:  Why and How 2.0Distributed Real-Time Stream Processing:  Why and How 2.0
Distributed Real-Time Stream Processing: Why and How 2.0Petr Zapletal
 
Pumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency AnalysisPumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency AnalysisUniversity of Illinois,Chicago
 
Pumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency AnalysisPumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency AnalysisUniversity of Illinois,Chicago
 
strata_spark_streaming.ppt
strata_spark_streaming.pptstrata_spark_streaming.ppt
strata_spark_streaming.pptAbhijitManna19
 
strata_spark_streaming.ppt
strata_spark_streaming.pptstrata_spark_streaming.ppt
strata_spark_streaming.pptsnowflakebatch
 
strata spark streaming strata spark streamingsrata spark streaming
strata spark streaming strata spark streamingsrata spark streamingstrata spark streaming strata spark streamingsrata spark streaming
strata spark streaming strata spark streamingsrata spark streamingShidrokhGoudarzi1
 
Taking Spark Streaming to the Next Level with Datasets and DataFrames
Taking Spark Streaming to the Next Level with Datasets and DataFramesTaking Spark Streaming to the Next Level with Datasets and DataFrames
Taking Spark Streaming to the Next Level with Datasets and DataFramesDatabricks
 
Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...
Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...
Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...InfluxData
 
R programming & Machine Learning
R programming & Machine LearningR programming & Machine Learning
R programming & Machine LearningAmanBhalla14
 
R the unsung hero of Big Data
R the unsung hero of Big DataR the unsung hero of Big Data
R the unsung hero of Big DataDhafer Malouche
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelJenny Liu
 
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17spark-project
 
Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das
Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das
Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das Databricks
 

Similaire à Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Using Telegraf and Flux | InfluxDays Virtual Experience NA 2020 (20)

Accelerating analytics on the Sensor and IoT Data.
Accelerating analytics on the Sensor and IoT Data. Accelerating analytics on the Sensor and IoT Data.
Accelerating analytics on the Sensor and IoT Data.
 
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
Anais Dotis-Georgiou & Faith Chikwekwe [InfluxData] | Top 10 Hurdles for Flux...
 
Spark streaming
Spark streamingSpark streaming
Spark streaming
 
strata_spark_streaming.ppt
strata_spark_streaming.pptstrata_spark_streaming.ppt
strata_spark_streaming.ppt
 
Analytics with Spark
Analytics with SparkAnalytics with Spark
Analytics with Spark
 
So you think you can stream.pptx
So you think you can stream.pptxSo you think you can stream.pptx
So you think you can stream.pptx
 
Productionizing your Streaming Jobs
Productionizing your Streaming JobsProductionizing your Streaming Jobs
Productionizing your Streaming Jobs
 
Distributed Real-Time Stream Processing: Why and How 2.0
Distributed Real-Time Stream Processing:  Why and How 2.0Distributed Real-Time Stream Processing:  Why and How 2.0
Distributed Real-Time Stream Processing: Why and How 2.0
 
Pumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency AnalysisPumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency Analysis
 
Pumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency AnalysisPumps, Compressors and Turbine Fault Frequency Analysis
Pumps, Compressors and Turbine Fault Frequency Analysis
 
strata_spark_streaming.ppt
strata_spark_streaming.pptstrata_spark_streaming.ppt
strata_spark_streaming.ppt
 
strata_spark_streaming.ppt
strata_spark_streaming.pptstrata_spark_streaming.ppt
strata_spark_streaming.ppt
 
strata spark streaming strata spark streamingsrata spark streaming
strata spark streaming strata spark streamingsrata spark streamingstrata spark streaming strata spark streamingsrata spark streaming
strata spark streaming strata spark streamingsrata spark streaming
 
Taking Spark Streaming to the Next Level with Datasets and DataFrames
Taking Spark Streaming to the Next Level with Datasets and DataFramesTaking Spark Streaming to the Next Level with Datasets and DataFrames
Taking Spark Streaming to the Next Level with Datasets and DataFrames
 
Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...
Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...
Optimizing InfluxDB Performance in the Real World by Dean Sheehan, Senior Dir...
 
R programming & Machine Learning
R programming & Machine LearningR programming & Machine Learning
R programming & Machine Learning
 
R the unsung hero of Big Data
R the unsung hero of Big DataR the unsung hero of Big Data
R the unsung hero of Big Data
 
A Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in ParallelA Tale of Data Pattern Discovery in Parallel
A Tale of Data Pattern Discovery in Parallel
 
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17Deep Dive with Spark Streaming - Tathagata  Das - Spark Meetup 2013-06-17
Deep Dive with Spark Streaming - Tathagata Das - Spark Meetup 2013-06-17
 
Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das
Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das
Apache Spark 2.0: A Deep Dive Into Structured Streaming - by Tathagata Das
 

Plus de InfluxData

Announcing InfluxDB Clustered
Announcing InfluxDB ClusteredAnnouncing InfluxDB Clustered
Announcing InfluxDB ClusteredInfluxData
 
Best Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemBest Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemInfluxData
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...InfluxData
 
Power Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBPower Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBInfluxData
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base InfluxData
 
Build an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackBuild an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackInfluxData
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustMeet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustInfluxData
 
Introducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedIntroducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedInfluxData
 
Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB InfluxData
 
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...InfluxData
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...InfluxData
 
Introducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineIntroducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineInfluxData
 
Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena InfluxData
 
Understanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineUnderstanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineInfluxData
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBStreamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBInfluxData
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...InfluxData
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022InfluxData
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022InfluxData
 

Plus de InfluxData (20)

Announcing InfluxDB Clustered
Announcing InfluxDB ClusteredAnnouncing InfluxDB Clustered
Announcing InfluxDB Clustered
 
Best Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemBest Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow Ecosystem
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
 
Power Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBPower Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDB
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
 
Build an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackBuild an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING Stack
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustMeet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using Rust
 
Introducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedIntroducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud Dedicated
 
Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB
 
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
 
Introducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineIntroducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage Engine
 
Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena
 
Understanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineUnderstanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage Engine
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBStreamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
 

Dernier

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Samantha Wang [InfluxData] | Best Practices on How to Transform Your Data Using Telegraf and Flux | InfluxDays Virtual Experience NA 2020

  • 1. Samantha Wang Product Manager, InfluxData Best Practices on How to Transform Your Data Using Telegraf and Flux
  • 2. © 2020 InfluxData. All rights reserved. 2 Why do we transform data? Problems: ● Resource-intensive. ● Lack of expertise and carelessness ● Better-organization ● Facilitates compatibility between applications, systems, and types of data
  • 3. © 2020 InfluxData. All rights reserved. 3 Goals: 1. How to transform your data to fit the optimal state of your monitoring environment 2. Tools for transformation BEFORE data ingestion a. The power of Telegraf processors and aggregators 3. Tools for transformation AFTER data ingestion a. The power of Flux transformation queries
  • 4. Basic data Concepts of InfluxDB
  • 5. © 2020 InfluxData. All rights reserved. 5 What you’re collecting Data ingestion Database!! Visualizations Analytics transform! transform!
  • 6. © 2020 InfluxData. All rights reserved. 6
  • 7. © 2020 InfluxData. All rights reserved. 7 weather,location=us-midwest temperature=82,humidity=71 1465839830100400200 InfluxDB Line Protocol tag(s) field(s) timestamp weather location=us-midwest temperature=82,humidity=71
  • 9. © 2020 InfluxData. All rights reserved. 9 Telegraf CPU Mem Disk Docker Kubernetes /metrics Kafka MySQL Process - transform - decorate - filter Aggregate - mean - min,max - count - variance - stddev InfluxDB File Kafka CloudWatch CloudWatch Input Output
  • 10. © 2020 InfluxData. All rights reserved. 10 Why manipulate data with Telegraf? ● Convert tags ↔ fields or data types ● Rename field names or values ● Aggregate data ● Clean up or filter data ● Perform data transformation as close to the device ● Improve performance
  • 11. © 2020 InfluxData. All rights reserved. 11 Convert Data: [[processors.converter]] [processors.converter.tags] measurement = [] string = [] integer = [] unsigned = [] boolean = [] float = [] [processors.converter.fields] measurement = [] tag = [] string = [] processors.converter
  • 12. © 2020 InfluxData. All rights reserved. 12 Convert tags ↔ fields Convert port tag to a string field: [[processors.converter]] [processors.converter.tags] string = ["port"] - apache,port=80,server=debian-stretch-apache BytesPerReq=0 + apache,server=debian-stretch-apache port="80",BytesPerReq=0 [[processors.converter]] [processors.converter.fields] tag = ["port"] - apache,server=debian-stretch-apache port="80",BytesPerReq=0 + apache,port=80,server=debian-stretch-apache BytesPerReq=0 Convert port field to a tag:
  • 13. © 2020 InfluxData. All rights reserved. 13 Convert data types Convert all scboard_* fields to an integer: [[processors.converter]] [processors.converter.fields] integer = ["scboard_*"] - apache scboard_open=100,scboard_reading=0,scboard_sending=1,scboard_starting=0,scboard_waiting=49 + apache scboard_open=100i,scboard_reading=0i,scboard_sending=1i,scboard_starting=0i,scboard_waiting=49i
  • 14. © 2020 InfluxData. All rights reserved. 14 Mapping: [[processors.enum]] [[processors.enum.mapping]] tag = "StorageType" dest = "StorageName" [processors.enum.mapping.value_mappings] ".1.3.6.1.2.1.25.2.1.1" = "Other" ".1.3.6.1.2.1.25.2.1.2" = "RAM" ".1.3.6.1.2.1.25.2.1.3" = "Virtual Memory" ".1.3.6.1.2.1.25.2.1.4" = "Fixed Disk" ".1.3.6.1.2.1.25.2.1.5" = "Removable Disk" ".1.3.6.1.2.1.25.2.1.6" = "Floppy Disk" ".1.3.6.1.2.1.25.2.1.7" = "Compact Disc" ".1.3.6.1.2.1.25.2.1.8" = "RAM Disk" - snmp StorageType=".1.3.6.1.2.1.25.2.1.6" 1502489900000000000 + snmp StorageName="Floppy Disk",StorageType=".1.3.6.1.2.1.25.2.1.6" 1502489900000000000 Enum Processor: ● value mappings for metric tags or fields ● Common use case is to map status codes processors.enum
  • 15. © 2020 InfluxData. All rights reserved. 15 Transform tags and fields: Regex Processor: ● Change tags and manipulate field values with regex patterns ● Can replace existing field OR produce new tags and fields while maintaining existing ones processors.regex
  • 16. © 2020 InfluxData. All rights reserved. 16 - nginx,resp_code=200 request="/api/search/?category=plugins&q=regex&sort=asc",referrer="-",ident="- ",http_version=1.1,client_ip="127.0.0.1" 1519652321000000000 + nginx,resp_code=2xx request="/api/search/?category=plugins&q=regex&sort=asc",method="/search/",search_category="p lugins",referrer="-",ident="-",http_version=1.1,client_ip="127.0.0.1" 1519652321000000000 [[processors.regex]] namepass = ["nginx"] [[processors.regex.tags]] key = "resp_code" pattern = "^(d)dd$" replacement = "${1}xx" [[processors.regex.fields]] key = "request" pattern = "^/api(?P<method>/[w/]+)S*" replacement = "${method}" result_key = "method" [[processors.regex.fields]] key = "request" pattern = ".*category=(w+).*" replacement = "${1}" result_key = "search_category"
  • 17. © 2020 InfluxData. All rights reserved. 17 Math & Logic Operations: ● Dialect of Python ● Starlark specification (google/starlark-go) has details about the syntax and available functions ● Use Cases: ○ Math operations ○ Logic operations ○ Some string operations ○ Add or remove tags/fields/metrics [[processors.starlark]] ## Source of the Starlark script. source = ''' def apply(metric): return metric ''' ## File containing a Starlark script. # script = "/usr/local/bin/myscript.star" processors.starlark
  • 18. © 2020 InfluxData. All rights reserved. 18 Basic Math - IoT Example w/ Modbus Plugin: Calculate power from voltage & current P = I * V [[processors.starlark]] source = ''' def apply(metric): I = metric.fields['current'] V = metric.fields['voltage'] metric.fields['power'] = I * V return metric ''' - modbus.InputRegisters,host=localhost current=550,frequency=60,voltage=12.93223 1554079521000000000 + modbus.InputRegisters,host=localhost current=550,frequency=60,voltage=12.93223,power=7112.7265 1554079521000000000
  • 19. © 2020 InfluxData. All rights reserved. 19 Other useful transformations Clone - creates a copy of each metric to preserve the original metric and allow modifications in the copied metric Date - adds the metric timestamp as a human readable tag Dedup - filters metrics whose field values are exact repetitions of the previous values. Ifname - processor plugin looks up network interface names using SNMP. Parser - defined fields containing the specified data format and creates new metrics based on the contents of the field Pivot - rotate single valued metrics into a multi field metric Rename - renames InfluxDB measurements, fields, and tags Strings - maps certain Go string functions onto InfluxDB measurement, tag, and field values TopK - filter designed to get the top series over a period of time
  • 20. © 2020 InfluxData. All rights reserved. 20 And aggregators! BasicStats - count, max, min, mean, s2(variance), and stdev for a set of values, emitting the aggregate every period seconds Final - emits the last metric of a contiguous series Merge - merges metrics together and generates line protocol with multiple fields per line MinMax - aggregates min and max values of each field it sees ValueCounter - counts the occurrence of values in fields and emits the counter once every ‘period’ seconds
  • 22. © 2020 InfluxData. All rights reserved. 22 Why Flux? InfluxData’s functional data scripting language designed for querying, analyzing, and acting on data Flux allows for a lot of capabilities you wouldn’t get with InfluxQL https://docs.influxdata.com/influxdb/v2.0/query -data/get-started/
  • 23. © 2020 InfluxData. All rights reserved. 23 map() functions Map operates on a row one at a time... map(fn: (r) => ({ _value: r._value * r._value })) ...re-maps the row record with what it’s operating unless you use with map(fn: (r) => ({ r with newColumn: r._value * 2 })) Things to do with map(): - Basic Mathematical operations - Conditional Logic - Adding new columns and tables
  • 24. © 2020 InfluxData. All rights reserved. 24 Mathematical Operations import "math" Flux Math package result Basic Math math.pi * 6.12 ^ 2.0 117.66646788461355 Basic Math r._value + r._value 2 * r._value Round math.floor(x: 1.22) 1 Trig math.cos(x: 3.14) -0.9999987317275396 |> map(fn: (r) => ({r with pizza: math.pi * r._value ^ 2 }))
  • 25. © 2020 InfluxData. All rights reserved. 25 String manipulations and data shaping Flux String package result Concatenation strings.joinStr(arr: ["rain on me", "rain", "rain"], v: ",") "rain on me, rain, rain" Splitting strings.split(v: "rain on me", t: " ") ["rain", "on", "me"] Substring strings.substring(v: "Lady Gaga", start: 5, end: 8) “Gaga” Case conversion strings.toUpper(v: "chromatica") “CHROMATICA” Searching strings.containsStr(v: "it’s coming down on me", substr: "down") strings.countStr(v: "rain gain pain", substr: "ain") true 3 import "strings" |> map(fn: (r) => ({r with content: strings.replace(v: r.content, t: "Mariah Carey", u: "Lady Gaga", i: 3)}))
  • 26. © 2020 InfluxData. All rights reserved. 26 Conditional logic: if/then/else ● Conditionally transform column values with map() if r._value >= 29 then "playoffs!!!" else if r._value < 29 and r._value >= 26 then "so close" else "better luck next year"
  • 27. © 2020 InfluxData. All rights reserved. 27 League Division Name _field _value AL West Angels Wins 26 AL West Astros Wins 29 AL West Athletics Wins 36 AL East Blue Jays Wins 32 AL Central Indians Wins 35 AL West Mariners Wins 27 AL East Orioles Wins 25 AL West Rangers Wins 22 AL East Rays Wins 40 AL East Red Sox Wins 24 AL Central Royals Wins 26 AL Central Tigers Wins 23 AL Central Twins Wins 36 AL Central White Sox Wins 35 AL East Yankees Wins 33 Conditional logic: if/then/else |> map(fn: (r) => ({ r with postseason: if r._value >= 29 then "playoffs!!!" else if r._value < 29 and r._value >= 26 then "so close" else "better luck next year" }) ) postseason so close playoffs!!! playoffs!!! playoffs!!! playoffs!!! so close better luck next year better luck next year playoffs!!! better luck next year so close better luck next year playoffs!!! playoffs!!! playoffs!!!
  • 28. Telegraf and Flux both sound super great!
  • 29. © 2020 InfluxData. All rights reserved. 29 When to do something in Telegraf or Flux? Telegraf: ● Tag/field manipulation for data Routing ● Cleaning up data ● Permanent transformations to improve performance on the query side Flux: ● Optimizing data for query and analysis ● Creating new columns or tables ● Flexibility
  • 30. © 2020 InfluxData. All rights reserved. 30 Thank You!! Telegraf Processors: https://docs.influxdata.com/telegraf/latest/plugins/ Flux docs: https://docs.influxdata.com/flux