SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
Michael Desa - Engineering Manager
Intro to InfluxDB
© InfluxData. All rights reserved.
Agenda
By the end of this session, participants should be able to…
● Describe time-series data
● Explain what InfluxDB is in relation to InfluxData
● Understand the InfluxDB Data Model
● Differentiate the Data Model for .x and .x
● Reason about schema decisions
© InfluxData. All rights reserved.
What is time-series data?
© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
Regular vs Irregular Time-Series
© InfluxData. All rights reserved.
Metrics vs Events
© InfluxData. All rights reserved.
Is it time-series?
© InfluxData. All rights reserved.
Is it time-series?
© InfluxData. All rights reserved.
Is it time-series?
© InfluxData. All rights reserved.
Is it time-series?
© InfluxData. All rights reserved.
What is a time-series database
(tsdb)
© InfluxData. All rights reserved.
What is a time-series database
(tsdb)
© InfluxData. All rights reserved.
Time-Series Database
● A database where you manage and store
time-series data
● Efficiently handles time-series data
● Supports common time-series data patterns
○ Data retention enforcement
○ Time-based queries
© InfluxData. All rights reserved.
Time-Series Database
● A database where you manage and store
time-series data
● Efficiently handles time-series data
● Supports common time-series data patterns
○ Data retention enforcement
○ Time-based queries
© InfluxData. All rights reserved.© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
Why couldn’t I just use [...]
© InfluxData. All rights reserved.
Why couldn’t I just use [...]
© InfluxData. All rights reserved.
Time-Series is not just a
database problem
© InfluxData. All rights reserved.
Time-Series is not just a
database problem
© InfluxData. All rights reserved.
Time-Series Problems
● Visualize you time-series
● Monitor & Alert on your time-series
● Process your time-series
© InfluxData. All rights reserved.
Time-Series Problems
● Visualize you time-series
● Monitor & Alert on your time-series
● Process your time-series
© InfluxData. All rights reserved.
What is InfluxData/InfluxDB
© InfluxData. All rights reserved.
What is InfluxData/InfluxDB
© InfluxData. All rights reserved.
InfluxData History
● - Errplane
● - InfluxDB is born
● - Transition to InfluxData
○ A platform for time-series data
● - Development of InfluxDB . begins
● - Delivered InfluxDB Cloud .
© InfluxData. All rights reserved.
InfluxData History
● - Errplane
● - InfluxDB is born
● - Transition to InfluxData
○ A platform for time-series data
● - Development of InfluxDB . begins
● - Delivered InfluxDB Cloud .
© InfluxData. All rights reserved.
InfluxData Values
● Easy to get started with
● Vertically integrated platform for time-series
data
● Aims to solve the time-series problem from
start to finish
● Performant at all scales
© InfluxData. All rights reserved.
InfluxData Values
● Easy to get started with
● Vertically integrated platform for time-series
data
● Aims to solve the time-series problem from
start to finish
● Performant at all scales
InfluxDB Data ModelInfluxDB Data Model
© InfluxData. All rights reserved.
Canonical Time-Series Line Graph
© InfluxData. All rights reserved.
Canonical Time-Series Line Graph
© InfluxData. All rights reserved.
The Measurement (Label)
© InfluxData. All rights reserved.
The Measurement (Label)
© InfluxData. All rights reserved.
Tags (Legend)
© InfluxData. All rights reserved.
Tags (Legend)
© InfluxData. All rights reserved.
Fields (Y-Axis Values)
© InfluxData. All rights reserved.
Fields (Y-Axis Values)
© InfluxData. All rights reserved.
Time (X-Axis)
© InfluxData. All rights reserved.
Time (X-Axis)
© InfluxData. All rights reserved.
Series
stock_price,ticker=A,market=NASDAQ
© InfluxData. All rights reserved.
Series
stock_price,ticker=A,market=NASDAQ
© InfluxData. All rights reserved.
Data Model
● Measurement
○ High level grouping of data (cpu, memory)
● Tags
○ Indexed key-value pairs (host, version)
● Fields
○ Sequenced key-value pairs (value, price)
● Time
● Series
○ Unique combination of measurement,
tags, fields
© InfluxData. All rights reserved.
Data Model
● Measurement
○ High level grouping of data (cpu, memory)
● Tags
○ Indexed key-value pairs (host, version)
● Fields
○ Sequenced key-value pairs (value, price)
● Time
● Series
○ Unique combination of measurement,
tags, fields
© InfluxData. All rights reserved.
How do we express the data?
© InfluxData. All rights reserved.
How do we express the data?
© InfluxData. All rights reserved.
Line Protocol
cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000
Measurement
© InfluxData. All rights reserved.
Line Protocol
cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000
Tags
© InfluxData. All rights reserved.
Line Protocol
cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000
Fields
© InfluxData. All rights reserved.
Line Protocol
cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000
timestamp
© InfluxData. All rights reserved.
Line Protocol
cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000
Series
© InfluxData. All rights reserved.
Line Protocol
cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000
Series
© InfluxData. All rights reserved.
Where is the time-series data stored?
© InfluxData. All rights reserved.
Where is the time-series data stored?
© InfluxData. All rights reserved.
InfluxDB 1.x Data Hierarchy
● Database
○ Contains many Retention Policies
○ Are containers for access control
● Retention Policies
○ Define retention rules for time-series data
○ Contain the actual time-series
© InfluxData. All rights reserved.
InfluxDB 1.x Data Hierarchy
● Database
○ Contains many Retention Policies
○ Are containers for access control
● Retention Policies
○ Define retention rules for time-series data
○ Contain the actual time-series
© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
InfluxDB 2.0 Data Hierarchy
● Buckets
○ Are containers for access control
○ Define retention rules for time-series data
○ Contain the actual time-series
© InfluxData. All rights reserved.
© InfluxData. All rights reserved.
InfluxDB 2.0 Instance Hierarchy
● Organizations
○ Logical groupings of resources
○ Contain Buckets, Dashboards, Tasks, etc...
● Buckets
○ Are containers for access control
○ Define retention rules for time-series data
○ Contain the actual time-series
© InfluxData. All rights reserved.
Querying DataQuerying Data
© InfluxData. All rights reserved.
InfluxData Query Languages
● InfluxQL
○ SQL-like query language
● TICKscript
○ Time-series processing language used in Kapacitor
● Flux
○ Next generation functional data-scripting language
© InfluxData. All rights reserved.
InfluxQL
> SELECT index, id FROM h2o_quality WHERE time > now() - 1w GROUP BY location
name: h2o_quality
tags: location = coyote_creek
time index id
---- ----- ---
2015-08-18T00:00:00Z 41 1
2015-08-18T00:00:00Z 41 1
name: h2o_quality
tags: location = santa_monica
time index id
---- ----- ---
2015-08-18T00:00:00Z 99 2
2015-08-18T00:06:00Z 56 2
© InfluxData. All rights reserved.
TICKscript
var measurement = 'requests'
var data = stream
|from()
.measurement(measurement)
|where(lambda: "is_up" == TRUE)
|where(lambda: "my_field" > 10)
|window()
.period(5m)
.every(5m)
// Count number of points in window
data
|count('value')
.as('the_count')
// Compute mean of data window
data
|mean('value')
.as('the_average')
© InfluxData. All rights reserved.
Flux
// get all data from the telegraf db
from(bucket:”telegraf/autogen”)
// filter that by the last hour
|> range(start:-1h)
// filter further by series with a specific measurement and field
|> filter(fn: (r) => r._measurement == "cpu")
|> filter(fn: (r) => r._field == "usage_user")
© InfluxData. All rights reserved.
Why Flux?
● Composable
○ Users should be able to take pieces of different scripts and
combine them into a single one to solve their own problem
● Extensible
○ Adding new functions and capabilities to flux should be easy
● Shareable
○ Users should be able to create libraries and packages to
solve specific problems
● Flexible
○ Users should be able to solve their entire processing
workload in flux
© InfluxData. All rights reserved.
Why Flux?
● Composable
○ Users should be able to take pieces of different scripts and
combine them into a single one to solve their own problem
● Extensible
○ Adding new functions and capabilities to flux should be easy
● Shareable
○ Users should be able to create libraries and packages to
solve specific problems
● Flexible
○ Users should be able to solve their entire processing
workload in flux
What not to do
Schema Design
What not to do
Schema Design
© InfluxData. All rights reserved.
Don’t Encode Data into the Measurement/Tags
Bad:
cpu.server-5.us-west value=2 1444234982000000000
cpu.server-6.us-west value=4 1444234982000000000
mem-free.server-6.us-west value=2500 1444234982000000000
Good:
cpu,host=server-5,region=us-west value=2 1444234982000000000
cpu,host=server-6,region=us-west value=4 1444234982000000000
mem-free,host=server-6,region=us-west value=2500 1444234982000000
© InfluxData. All rights reserved.
Don’t Use Tags with VERY High Variability
Bad:
response_time,session_id=33254331,request_id=3424347 value=340 14442349820000
Good-ish:
response_time session_id=33254331,request_id=3424347,value=340 14442349820000
© InfluxData. All rights reserved.
Don’t Use too Few Tags
Bad:
cpu,region=us-west host="server1",value=0.5 1444234986000
cpu,region=us-west host="server2",value=4 1444234982000
cpu,region=us-west host="server2",value=1 1444234982000
Good-ish:
cpu,region=us-west,host=server1 value=0.5 1444234986000
cpu,region=us-west,host=server2 value=4 1444234982000
cpu,region=us-west,host=server2 value=1 1444234982000
© InfluxData. All rights reserved.
What should I do?
© InfluxData. All rights reserved.
What should I do?
© InfluxData. All rights reserved.
Designing a Schema
● What dashboards do I need?
● What alerts do I need?
● What data to I want to use to make reports?
● What data do I need readily available if there is an incident?
● In short, what queries do I need to execute?
If you don’t think about these things first, you can easily end up with
dashboards that take quite a bit of time to load.
© InfluxData. All rights reserved.
Designing a Schema
● What dashboards do I need?
● What alerts do I need?
● What data to I want to use to make reports?
● What data do I need readily available if there is an incident?
● In short, what queries do I need to execute?
If you don’t think about these things first, you can easily end up with
dashboards that take quite a bit of time to load.
© InfluxData. All rights reserved.
Schema Example
● I operate a SaaS application
● There are ~ different services I operate
● I want to know the request and error rates for each service
● I want to trigger an alert if the error rate is beyond a theshold for
a specific service
○ Each service will have its own threshold
● I want to see the request rate of the services with the top error
rates
© InfluxData. All rights reserved.
Schema Example
● I operate a SaaS application
● There are ~ different services I operate
● I want to know the request and error rates for each service
● I want to trigger an alert if the error rate is beyond a theshold for
a specific service
○ Each service will have its own threshold
● I want to see the request rate of the services with the top error
rates
© InfluxData. All rights reserved.
Data Available
● app Service name, e.g. user_service, auth_service…
● container_id Container ID of the container running the service
● path HTTP request path
● method HTTP method, e.g. GET, POST, DELETE…
● src Hostname of client making request
● dest Hostname of server being contacted
● status HTTP status code associated with the request
● request_id Unique request identifier
● duration Duration of request
● bytes_tx Number of bytes transmitted
● bytes_rx Number of bytes received
© InfluxData. All rights reserved.
Data Available
● app Service name, e.g. user_service, auth_service…
● container_id Container ID of the container running the service
● path HTTP request path
● method HTTP method, e.g. GET, POST, DELETE…
● src Hostname of client making request
● dest Hostname of server being contacted
● status HTTP status code associated with the request
● request_id Unique request identifier
● duration Duration of request
● bytes_tx Number of bytes transmitted
● bytes_rx Number of bytes received
© InfluxData. All rights reserved.
Question
Why would it be a bad idea to make request_id a tag?
© InfluxData. All rights reserved.
Question
Why would it be a bad idea to make request_id a tag?
© InfluxData. All rights reserved.
Answer
Why would it be a bad idea to make request_id a tag?
request_id has a very high cardinality and would result in the creation of an extremely large number of
series.
© InfluxData. All rights reserved.
Question
How should we organize our data?
© InfluxData. All rights reserved.
Data Available
● app Service name, e.g. user_service, auth_service…
● container_id Container ID of the container running the service
● path HTTP request path
● method HTTP method, e.g. GET, POST, DELETE…
● src Hostname of client making request
● dest Hostname of server being contacted
● status HTTP status code associated with the request
● request_id Unique request identifier
● duration Duration of request
● bytes_tx Number of bytes transmitted
● bytes_rx Number of bytes received
© InfluxData. All rights reserved.
Answer
measurement:
latency
tags:
app container_id path method src dst status
fields:
request_id duration bytes_tx bytes_rx
Thank You!Thank You!Thank You!Thank You!Thank You!Thank You!Thank You!

Contenu connexe

Tendances

High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
ScyllaDB
 

Tendances (20)

hbaseconasia2019 HBCK2: Concepts, trends, and recipes for fixing issues in HB...
hbaseconasia2019 HBCK2: Concepts, trends, and recipes for fixing issues in HB...hbaseconasia2019 HBCK2: Concepts, trends, and recipes for fixing issues in HB...
hbaseconasia2019 HBCK2: Concepts, trends, and recipes for fixing issues in HB...
 
Evening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in FlinkEvening out the uneven: dealing with skew in Flink
Evening out the uneven: dealing with skew in Flink
 
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia GuptaIntro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
Intro to InfluxDB 2.0 and Your First Flux Query by Sonia Gupta
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization Opportunities
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & InternalsApache Spark in Depth: Core Concepts, Architecture & Internals
Apache Spark in Depth: Core Concepts, Architecture & Internals
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
 
SeaweedFS introduction
SeaweedFS introductionSeaweedFS introduction
SeaweedFS introduction
 
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and PinotExactly-Once Financial Data Processing at Scale with Flink and Pinot
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
 
Funnel Analysis with Apache Spark and Druid
Funnel Analysis with Apache Spark and DruidFunnel Analysis with Apache Spark and Druid
Funnel Analysis with Apache Spark and Druid
 
InfluxDb
InfluxDbInfluxDb
InfluxDb
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
The InfluxDB 2.0 Storage Engine | Jacob Marble | InfluxData
The InfluxDB 2.0 Storage Engine | Jacob Marble | InfluxDataThe InfluxDB 2.0 Storage Engine | Jacob Marble | InfluxData
The InfluxDB 2.0 Storage Engine | Jacob Marble | InfluxData
 
High-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uringHigh-Performance Networking Using eBPF, XDP, and io_uring
High-Performance Networking Using eBPF, XDP, and io_uring
 
Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain
 
Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)
 
Understanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineUnderstanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage Engine
 
Kafka Streams State Stores Being Persistent
Kafka Streams State Stores Being PersistentKafka Streams State Stores Being Persistent
Kafka Streams State Stores Being Persistent
 
Handle Large Messages In Apache Kafka
Handle Large Messages In Apache KafkaHandle Large Messages In Apache Kafka
Handle Large Messages In Apache Kafka
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 

Similaire à InfluxDB 101 - Concepts and Architecture | Michael DeSa | InfluxData

Similaire à InfluxDB 101 - Concepts and Architecture | Michael DeSa | InfluxData (20)

Virtual training intro to InfluxDB - June 2021
Virtual training  intro to InfluxDB  - June 2021Virtual training  intro to InfluxDB  - June 2021
Virtual training intro to InfluxDB - June 2021
 
Russ Savage [Ngrok] | InfluxDB QuickStart | InfluxDays NA 2021
Russ Savage [Ngrok] | InfluxDB QuickStart | InfluxDays NA 2021Russ Savage [Ngrok] | InfluxDB QuickStart | InfluxDays NA 2021
Russ Savage [Ngrok] | InfluxDB QuickStart | InfluxDays NA 2021
 
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
Optimizing InfluxDB Performance in the Real World | Sam Dillard | InfluxData
Optimizing InfluxDB Performance in the Real World | Sam Dillard | InfluxDataOptimizing InfluxDB Performance in the Real World | Sam Dillard | InfluxData
Optimizing InfluxDB Performance in the Real World | Sam Dillard | InfluxData
 
Large Data Analyze With PyTables
Large Data Analyze With PyTablesLarge Data Analyze With PyTables
Large Data Analyze With PyTables
 
Py tables
Py tablesPy tables
Py tables
 
PyTables
PyTablesPyTables
PyTables
 
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
Custom Script Execution Environment on TD Workflow @ TD Tech Talk 2018-10-17
 
PyTables
PyTablesPyTables
PyTables
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
 
Ryan Betts [InfluxData] | Influxdays Keynote: Engineering Update | InfluxDays...
Ryan Betts [InfluxData] | Influxdays Keynote: Engineering Update | InfluxDays...Ryan Betts [InfluxData] | Influxdays Keynote: Engineering Update | InfluxDays...
Ryan Betts [InfluxData] | Influxdays Keynote: Engineering Update | InfluxDays...
 
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
 
Tick
TickTick
Tick
 
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
Jacob Marble [InfluxData] | Observability with InfluxDB IOx and OpenTelemetry...
 
Intro to Kapacitor for Alerting and Anomaly Detection
Intro to Kapacitor for Alerting and Anomaly DetectionIntro to Kapacitor for Alerting and Anomaly Detection
Intro to Kapacitor for Alerting and Anomaly Detection
 
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
Tim Hall and Ryan Betts [InfluxData] | InfluxDB Roadmap and Engineering Updat...
 
Maximizing Real-Time Data Processing with Apache Kafka and InfluxDB: A Compre...
Maximizing Real-Time Data Processing with Apache Kafka and InfluxDB: A Compre...Maximizing Real-Time Data Processing with Apache Kafka and InfluxDB: A Compre...
Maximizing Real-Time Data Processing with Apache Kafka and InfluxDB: A Compre...
 
Why You Should NOT Be Using an RDBS for Time-stamped Data
 Why You Should NOT Be Using an RDBS for Time-stamped Data Why You Should NOT Be Using an RDBS for Time-stamped Data
Why You Should NOT Be Using an RDBS for Time-stamped Data
 
Why Open Source Works for DevOps Monitoring
Why Open Source Works for DevOps MonitoringWhy Open Source Works for DevOps Monitoring
Why Open Source Works for DevOps Monitoring
 

Plus de InfluxData

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
 
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
 
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 2022
InfluxData
 
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
InfluxData
 

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
 
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
 
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
 
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
 
Jay Clifford [InfluxData] | Tips & Tricks for Analyzing IIoT in Real-Time | I...
Jay Clifford [InfluxData] | Tips & Tricks for Analyzing IIoT in Real-Time | I...Jay Clifford [InfluxData] | Tips & Tricks for Analyzing IIoT in Real-Time | I...
Jay Clifford [InfluxData] | Tips & Tricks for Analyzing IIoT in Real-Time | I...
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
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
vu2urc
 

Dernier (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
[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
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 

InfluxDB 101 - Concepts and Architecture | Michael DeSa | InfluxData

  • 1. Michael Desa - Engineering Manager Intro to InfluxDB
  • 2. © InfluxData. All rights reserved. Agenda By the end of this session, participants should be able to… ● Describe time-series data ● Explain what InfluxDB is in relation to InfluxData ● Understand the InfluxDB Data Model ● Differentiate the Data Model for .x and .x ● Reason about schema decisions
  • 3. © InfluxData. All rights reserved. What is time-series data?
  • 4. © InfluxData. All rights reserved.
  • 5. © InfluxData. All rights reserved.
  • 6. © InfluxData. All rights reserved.
  • 7. © InfluxData. All rights reserved.
  • 8. © InfluxData. All rights reserved. Regular vs Irregular Time-Series
  • 9. © InfluxData. All rights reserved. Metrics vs Events
  • 10. © InfluxData. All rights reserved. Is it time-series? © InfluxData. All rights reserved. Is it time-series?
  • 11. © InfluxData. All rights reserved. Is it time-series? © InfluxData. All rights reserved. Is it time-series?
  • 12. © InfluxData. All rights reserved. What is a time-series database (tsdb) © InfluxData. All rights reserved. What is a time-series database (tsdb)
  • 13. © InfluxData. All rights reserved. Time-Series Database ● A database where you manage and store time-series data ● Efficiently handles time-series data ● Supports common time-series data patterns ○ Data retention enforcement ○ Time-based queries © InfluxData. All rights reserved. Time-Series Database ● A database where you manage and store time-series data ● Efficiently handles time-series data ● Supports common time-series data patterns ○ Data retention enforcement ○ Time-based queries
  • 14. © InfluxData. All rights reserved.© InfluxData. All rights reserved.
  • 15. © InfluxData. All rights reserved. Why couldn’t I just use [...] © InfluxData. All rights reserved. Why couldn’t I just use [...]
  • 16. © InfluxData. All rights reserved. Time-Series is not just a database problem © InfluxData. All rights reserved. Time-Series is not just a database problem
  • 17. © InfluxData. All rights reserved. Time-Series Problems ● Visualize you time-series ● Monitor & Alert on your time-series ● Process your time-series © InfluxData. All rights reserved. Time-Series Problems ● Visualize you time-series ● Monitor & Alert on your time-series ● Process your time-series
  • 18. © InfluxData. All rights reserved. What is InfluxData/InfluxDB © InfluxData. All rights reserved. What is InfluxData/InfluxDB
  • 19. © InfluxData. All rights reserved. InfluxData History ● - Errplane ● - InfluxDB is born ● - Transition to InfluxData ○ A platform for time-series data ● - Development of InfluxDB . begins ● - Delivered InfluxDB Cloud . © InfluxData. All rights reserved. InfluxData History ● - Errplane ● - InfluxDB is born ● - Transition to InfluxData ○ A platform for time-series data ● - Development of InfluxDB . begins ● - Delivered InfluxDB Cloud .
  • 20. © InfluxData. All rights reserved. InfluxData Values ● Easy to get started with ● Vertically integrated platform for time-series data ● Aims to solve the time-series problem from start to finish ● Performant at all scales © InfluxData. All rights reserved. InfluxData Values ● Easy to get started with ● Vertically integrated platform for time-series data ● Aims to solve the time-series problem from start to finish ● Performant at all scales
  • 22. © InfluxData. All rights reserved. Canonical Time-Series Line Graph © InfluxData. All rights reserved. Canonical Time-Series Line Graph
  • 23. © InfluxData. All rights reserved. The Measurement (Label) © InfluxData. All rights reserved. The Measurement (Label)
  • 24. © InfluxData. All rights reserved. Tags (Legend) © InfluxData. All rights reserved. Tags (Legend)
  • 25. © InfluxData. All rights reserved. Fields (Y-Axis Values) © InfluxData. All rights reserved. Fields (Y-Axis Values)
  • 26. © InfluxData. All rights reserved. Time (X-Axis) © InfluxData. All rights reserved. Time (X-Axis)
  • 27. © InfluxData. All rights reserved. Series stock_price,ticker=A,market=NASDAQ © InfluxData. All rights reserved. Series stock_price,ticker=A,market=NASDAQ
  • 28. © InfluxData. All rights reserved. Data Model ● Measurement ○ High level grouping of data (cpu, memory) ● Tags ○ Indexed key-value pairs (host, version) ● Fields ○ Sequenced key-value pairs (value, price) ● Time ● Series ○ Unique combination of measurement, tags, fields © InfluxData. All rights reserved. Data Model ● Measurement ○ High level grouping of data (cpu, memory) ● Tags ○ Indexed key-value pairs (host, version) ● Fields ○ Sequenced key-value pairs (value, price) ● Time ● Series ○ Unique combination of measurement, tags, fields
  • 29. © InfluxData. All rights reserved. How do we express the data? © InfluxData. All rights reserved. How do we express the data?
  • 30. © InfluxData. All rights reserved. Line Protocol cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 Measurement
  • 31. © InfluxData. All rights reserved. Line Protocol cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 Tags
  • 32. © InfluxData. All rights reserved. Line Protocol cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 Fields
  • 33. © InfluxData. All rights reserved. Line Protocol cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 timestamp
  • 34. © InfluxData. All rights reserved. Line Protocol cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 Series © InfluxData. All rights reserved. Line Protocol cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 Series
  • 35. © InfluxData. All rights reserved. Where is the time-series data stored? © InfluxData. All rights reserved. Where is the time-series data stored?
  • 36. © InfluxData. All rights reserved. InfluxDB 1.x Data Hierarchy ● Database ○ Contains many Retention Policies ○ Are containers for access control ● Retention Policies ○ Define retention rules for time-series data ○ Contain the actual time-series © InfluxData. All rights reserved. InfluxDB 1.x Data Hierarchy ● Database ○ Contains many Retention Policies ○ Are containers for access control ● Retention Policies ○ Define retention rules for time-series data ○ Contain the actual time-series
  • 37. © InfluxData. All rights reserved.
  • 38. © InfluxData. All rights reserved. InfluxDB 2.0 Data Hierarchy ● Buckets ○ Are containers for access control ○ Define retention rules for time-series data ○ Contain the actual time-series
  • 39. © InfluxData. All rights reserved.
  • 40. © InfluxData. All rights reserved. InfluxDB 2.0 Instance Hierarchy ● Organizations ○ Logical groupings of resources ○ Contain Buckets, Dashboards, Tasks, etc... ● Buckets ○ Are containers for access control ○ Define retention rules for time-series data ○ Contain the actual time-series
  • 41. © InfluxData. All rights reserved.
  • 43. © InfluxData. All rights reserved. InfluxData Query Languages ● InfluxQL ○ SQL-like query language ● TICKscript ○ Time-series processing language used in Kapacitor ● Flux ○ Next generation functional data-scripting language
  • 44. © InfluxData. All rights reserved. InfluxQL > SELECT index, id FROM h2o_quality WHERE time > now() - 1w GROUP BY location name: h2o_quality tags: location = coyote_creek time index id ---- ----- --- 2015-08-18T00:00:00Z 41 1 2015-08-18T00:00:00Z 41 1 name: h2o_quality tags: location = santa_monica time index id ---- ----- --- 2015-08-18T00:00:00Z 99 2 2015-08-18T00:06:00Z 56 2
  • 45. © InfluxData. All rights reserved. TICKscript var measurement = 'requests' var data = stream |from() .measurement(measurement) |where(lambda: "is_up" == TRUE) |where(lambda: "my_field" > 10) |window() .period(5m) .every(5m) // Count number of points in window data |count('value') .as('the_count') // Compute mean of data window data |mean('value') .as('the_average')
  • 46. © InfluxData. All rights reserved. Flux // get all data from the telegraf db from(bucket:”telegraf/autogen”) // filter that by the last hour |> range(start:-1h) // filter further by series with a specific measurement and field |> filter(fn: (r) => r._measurement == "cpu") |> filter(fn: (r) => r._field == "usage_user")
  • 47. © InfluxData. All rights reserved. Why Flux? ● Composable ○ Users should be able to take pieces of different scripts and combine them into a single one to solve their own problem ● Extensible ○ Adding new functions and capabilities to flux should be easy ● Shareable ○ Users should be able to create libraries and packages to solve specific problems ● Flexible ○ Users should be able to solve their entire processing workload in flux © InfluxData. All rights reserved. Why Flux? ● Composable ○ Users should be able to take pieces of different scripts and combine them into a single one to solve their own problem ● Extensible ○ Adding new functions and capabilities to flux should be easy ● Shareable ○ Users should be able to create libraries and packages to solve specific problems ● Flexible ○ Users should be able to solve their entire processing workload in flux
  • 48. What not to do Schema Design What not to do Schema Design
  • 49. © InfluxData. All rights reserved. Don’t Encode Data into the Measurement/Tags Bad: cpu.server-5.us-west value=2 1444234982000000000 cpu.server-6.us-west value=4 1444234982000000000 mem-free.server-6.us-west value=2500 1444234982000000000 Good: cpu,host=server-5,region=us-west value=2 1444234982000000000 cpu,host=server-6,region=us-west value=4 1444234982000000000 mem-free,host=server-6,region=us-west value=2500 1444234982000000
  • 50. © InfluxData. All rights reserved. Don’t Use Tags with VERY High Variability Bad: response_time,session_id=33254331,request_id=3424347 value=340 14442349820000 Good-ish: response_time session_id=33254331,request_id=3424347,value=340 14442349820000
  • 51. © InfluxData. All rights reserved. Don’t Use too Few Tags Bad: cpu,region=us-west host="server1",value=0.5 1444234986000 cpu,region=us-west host="server2",value=4 1444234982000 cpu,region=us-west host="server2",value=1 1444234982000 Good-ish: cpu,region=us-west,host=server1 value=0.5 1444234986000 cpu,region=us-west,host=server2 value=4 1444234982000 cpu,region=us-west,host=server2 value=1 1444234982000
  • 52. © InfluxData. All rights reserved. What should I do? © InfluxData. All rights reserved. What should I do?
  • 53. © InfluxData. All rights reserved. Designing a Schema ● What dashboards do I need? ● What alerts do I need? ● What data to I want to use to make reports? ● What data do I need readily available if there is an incident? ● In short, what queries do I need to execute? If you don’t think about these things first, you can easily end up with dashboards that take quite a bit of time to load. © InfluxData. All rights reserved. Designing a Schema ● What dashboards do I need? ● What alerts do I need? ● What data to I want to use to make reports? ● What data do I need readily available if there is an incident? ● In short, what queries do I need to execute? If you don’t think about these things first, you can easily end up with dashboards that take quite a bit of time to load.
  • 54. © InfluxData. All rights reserved. Schema Example ● I operate a SaaS application ● There are ~ different services I operate ● I want to know the request and error rates for each service ● I want to trigger an alert if the error rate is beyond a theshold for a specific service ○ Each service will have its own threshold ● I want to see the request rate of the services with the top error rates © InfluxData. All rights reserved. Schema Example ● I operate a SaaS application ● There are ~ different services I operate ● I want to know the request and error rates for each service ● I want to trigger an alert if the error rate is beyond a theshold for a specific service ○ Each service will have its own threshold ● I want to see the request rate of the services with the top error rates
  • 55. © InfluxData. All rights reserved. Data Available ● app Service name, e.g. user_service, auth_service… ● container_id Container ID of the container running the service ● path HTTP request path ● method HTTP method, e.g. GET, POST, DELETE… ● src Hostname of client making request ● dest Hostname of server being contacted ● status HTTP status code associated with the request ● request_id Unique request identifier ● duration Duration of request ● bytes_tx Number of bytes transmitted ● bytes_rx Number of bytes received © InfluxData. All rights reserved. Data Available ● app Service name, e.g. user_service, auth_service… ● container_id Container ID of the container running the service ● path HTTP request path ● method HTTP method, e.g. GET, POST, DELETE… ● src Hostname of client making request ● dest Hostname of server being contacted ● status HTTP status code associated with the request ● request_id Unique request identifier ● duration Duration of request ● bytes_tx Number of bytes transmitted ● bytes_rx Number of bytes received
  • 56. © InfluxData. All rights reserved. Question Why would it be a bad idea to make request_id a tag? © InfluxData. All rights reserved. Question Why would it be a bad idea to make request_id a tag?
  • 57. © InfluxData. All rights reserved. Answer Why would it be a bad idea to make request_id a tag? request_id has a very high cardinality and would result in the creation of an extremely large number of series.
  • 58. © InfluxData. All rights reserved. Question How should we organize our data?
  • 59. © InfluxData. All rights reserved. Data Available ● app Service name, e.g. user_service, auth_service… ● container_id Container ID of the container running the service ● path HTTP request path ● method HTTP method, e.g. GET, POST, DELETE… ● src Hostname of client making request ● dest Hostname of server being contacted ● status HTTP status code associated with the request ● request_id Unique request identifier ● duration Duration of request ● bytes_tx Number of bytes transmitted ● bytes_rx Number of bytes received
  • 60. © InfluxData. All rights reserved. Answer measurement: latency tags: app container_id path method src dst status fields: request_id duration bytes_tx bytes_rx
  • 61. Thank You!Thank You!Thank You!Thank You!Thank You!Thank You!Thank You!