SlideShare a Scribd company logo
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!

More Related Content

What's hot (20)

PPTX
Hive+Tez: A performance deep dive
t3rmin4t0r
 
PPTX
Apache Flink in the Cloud-Native Era
Flink Forward
 
PPTX
How Scylla Manager Handles Backups
ScyllaDB
 
PDF
Airflow presentation
Ilias Okacha
 
PPTX
Prometheus 101
Paul Podolny
 
PDF
Catalogs - Turning a Set of Parquet Files into a Data Set
InfluxData
 
PDF
Batch Processing at Scale with Flink & Iceberg
Flink Forward
 
PDF
What is new in Apache Hive 3.0?
DataWorks Summit
 
PDF
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
InfluxData
 
PPTX
Extending Flink SQL for stream processing use cases
Flink Forward
 
PDF
Blazing Performance with Flame Graphs
Brendan Gregg
 
PDF
Understanding InfluxDB’s New Storage Engine
InfluxData
 
PPTX
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 
PPTX
Introduction to Storm
Chandler Huang
 
PPTX
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
Flink Forward
 
PPTX
InfluxDB Roadmap: What’s New and What’s Coming
InfluxData
 
PDF
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Andrew Lamb
 
PPTX
Practical learnings from running thousands of Flink jobs
Flink Forward
 
PDF
Intro to Telegraf
InfluxData
 
PDF
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
Hive+Tez: A performance deep dive
t3rmin4t0r
 
Apache Flink in the Cloud-Native Era
Flink Forward
 
How Scylla Manager Handles Backups
ScyllaDB
 
Airflow presentation
Ilias Okacha
 
Prometheus 101
Paul Podolny
 
Catalogs - Turning a Set of Parquet Files into a Data Set
InfluxData
 
Batch Processing at Scale with Flink & Iceberg
Flink Forward
 
What is new in Apache Hive 3.0?
DataWorks Summit
 
Best Practices: How to Analyze IoT Sensor Data with InfluxDB
InfluxData
 
Extending Flink SQL for stream processing use cases
Flink Forward
 
Blazing Performance with Flame Graphs
Brendan Gregg
 
Understanding InfluxDB’s New Storage Engine
InfluxData
 
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 
Introduction to Storm
Chandler Huang
 
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
Flink Forward
 
InfluxDB Roadmap: What’s New and What’s Coming
InfluxData
 
Introduction to DataFusion An Embeddable Query Engine Written in Rust
Andrew Lamb
 
Practical learnings from running thousands of Flink jobs
Flink Forward
 
Intro to Telegraf
InfluxData
 
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 

Similar to InfluxDB 101 - Concepts and Architecture | Michael DeSa | InfluxData (20)

PPTX
Why You Should NOT Be Using an RDBMS for Time-stamped Data
DevOps.com
 
PPTX
Why You Should NOT Be Using an RDBS for Time-stamped Data
DevOps.com
 
PDF
Intro to InfluxDB
InfluxData
 
PDF
Intro to Time Series
InfluxData
 
PDF
Virtual training intro to InfluxDB - June 2021
InfluxData
 
PDF
Solving Manufacturing Challenges with Time Series Data.pdf
Suyash Joshi
 
PPTX
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
InfluxData
 
PDF
Power Your Predictive Analytics with InfluxDB
InfluxData
 
PDF
Time Series to Vectors: Leveraging InfluxDB and Milvus for Similarity Search
Zilliz
 
PDF
InfluxDB Internals
InfluxData
 
PPTX
Paul Dix [InfluxData] | InfluxDays Keynote: Future of InfluxDB | InfluxDays N...
InfluxData
 
PDF
Flux QL - Nexgen Management of Time Series Inspired by JS
Ivo Andreev
 
PDF
Introducing InfluxDB Cloud Dedicated
InfluxData
 
PDF
Introduction to Time Series: The Fastest Growing Database Category
DevOps.com
 
PDF
How to Gain a Competitive Edge with an Open Source, Purpose-built Time Series...
DevOps.com
 
PDF
TimeSeries Machine Learning - PyData London 2025
Suyash Joshi
 
PDF
Devoxx france 2015 influx db
Nicolas Muller
 
PDF
Devoxx france 2015 influxdb
Nicolas Muller
 
PPTX
Announcing InfluxDB Clustered
InfluxData
 
Why You Should NOT Be Using an RDBMS for Time-stamped Data
DevOps.com
 
Why You Should NOT Be Using an RDBS for Time-stamped Data
DevOps.com
 
Intro to InfluxDB
InfluxData
 
Intro to Time Series
InfluxData
 
Virtual training intro to InfluxDB - June 2021
InfluxData
 
Solving Manufacturing Challenges with Time Series Data.pdf
Suyash Joshi
 
InfluxDB 101 – Concepts and Architecture by Michael DeSa, Software Engineer |...
InfluxData
 
Power Your Predictive Analytics with InfluxDB
InfluxData
 
Time Series to Vectors: Leveraging InfluxDB and Milvus for Similarity Search
Zilliz
 
InfluxDB Internals
InfluxData
 
Paul Dix [InfluxData] | InfluxDays Keynote: Future of InfluxDB | InfluxDays N...
InfluxData
 
Flux QL - Nexgen Management of Time Series Inspired by JS
Ivo Andreev
 
Introducing InfluxDB Cloud Dedicated
InfluxData
 
Introduction to Time Series: The Fastest Growing Database Category
DevOps.com
 
How to Gain a Competitive Edge with an Open Source, Purpose-built Time Series...
DevOps.com
 
TimeSeries Machine Learning - PyData London 2025
Suyash Joshi
 
Devoxx france 2015 influx db
Nicolas Muller
 
Devoxx france 2015 influxdb
Nicolas Muller
 
Announcing InfluxDB Clustered
InfluxData
 
Ad

More from InfluxData (20)

PDF
Best Practices for Leveraging the Apache Arrow Ecosystem
InfluxData
 
PDF
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
InfluxData
 
PDF
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
InfluxData
 
PDF
Build an Edge-to-Cloud Solution with the MING Stack
InfluxData
 
PDF
Meet the Founders: An Open Discussion About Rewriting Using Rust
InfluxData
 
PDF
Gain Better Observability with OpenTelemetry and InfluxDB
InfluxData
 
PPTX
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
InfluxData
 
PDF
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
InfluxData
 
PPTX
Introducing InfluxDB’s New Time Series Database Storage Engine
InfluxData
 
PDF
Start Automating InfluxDB Deployments at the Edge with balena
InfluxData
 
PDF
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
InfluxData
 
PPTX
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
InfluxData
 
PDF
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
InfluxData
 
PDF
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
InfluxData
 
PDF
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
InfluxData
 
PDF
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
InfluxData
 
PDF
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
InfluxData
 
PDF
Jay Clifford [InfluxData] | Tips & Tricks for Analyzing IIoT in Real-Time | I...
InfluxData
 
PDF
Brian Gilmore [InfluxData] | Use Case: IIoT Overview | InfluxDays 2022
InfluxData
 
PDF
Gilmore, Palani [InfluxData] | Use Case: Monitoring / Observability | InfluxD...
InfluxData
 
Best Practices for Leveraging the Apache Arrow Ecosystem
InfluxData
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
InfluxData
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
InfluxData
 
Build an Edge-to-Cloud Solution with the MING Stack
InfluxData
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
InfluxData
 
Gain Better Observability with OpenTelemetry and InfluxDB
InfluxData
 
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 ...
InfluxData
 
Introducing InfluxDB’s New Time Series Database Storage Engine
InfluxData
 
Start Automating InfluxDB Deployments at the Edge with balena
InfluxData
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
InfluxData
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
InfluxData
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
InfluxData
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
InfluxData
 
Paul Dix [InfluxData] The Journey of InfluxDB | InfluxDays 2022
InfluxData
 
Jay Clifford [InfluxData] | Tips & Tricks for Analyzing IIoT in Real-Time | I...
InfluxData
 
Brian Gilmore [InfluxData] | Use Case: IIoT Overview | InfluxDays 2022
InfluxData
 
Gilmore, Palani [InfluxData] | Use Case: Monitoring / Observability | InfluxD...
InfluxData
 
Ad

Recently uploaded (20)

PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 

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!