Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
InfluxDB + Prometheus
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Paul Dix
August 18, 2017
Programming
2
3.3k
InfluxDB + Prometheus
Slides from my Promcon2017 talk on integrating InfluxDB and Prometheus.
Paul Dix
August 18, 2017
Tweet
Share
More Decks by Paul Dix
See All by Paul Dix
InfluxDB IOx Project Update - 2021-02-10
pauldix
0
260
InfluxDB IOx data lifecycle and object store persistence
pauldix
1
670
InfluxDB 2.0 and Flux
pauldix
1
760
Flux and InfluxDB 2.0
pauldix
1
1.5k
Querying Prometheus with Flux
pauldix
1
960
Flux (#fluxlang): a new (time series) data scripting language
pauldix
7
5.3k
At Scale, Everything is Hard
pauldix
2
740
IFQL and the future of InfluxData
pauldix
2
1.4k
Time series & monitoring with InfluxDB and the TICK stack
pauldix
0
490
Other Decks in Programming
See All in Programming
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
310
ご飯食べながらエージェントが開発できる。そう、Agentic Engineeringならね。
yokomachi
1
260
浮動小数の比較について
kishikawakatsumi
0
350
Raku Raku Notion 20260128
hareyakayuruyaka
0
420
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
140
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
170
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
2.7k
今更考える「単一責任原則」 / Thinking about the Single Responsibility Principle
tooppoo
2
960
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
kztakasaki
2
430
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
190
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1.1k
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
220
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
My Coaching Mixtape
mlcsv
0
61
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
77
The browser strikes back
jonoalderson
0
730
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Rails Girls Zürich Keynote
gr2m
96
14k
Building Applications with DynamoDB
mza
96
6.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.3k
We Have a Design System, Now What?
morganepeng
55
8k
Balancing Empowerment & Direction
lara
5
920
Abbi's Birthday
coloredviolet
2
5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
170
Transcript
InfluxDB + Prometheus Paul Dix CTO @ InfluxData @pauldix paul@influxdb.com
Open Source Time Series Database
• OSS - MIT License • Written in Go •
SQL-ish query language • Time Series Merge Tree storage engine & inverted index • Commercial Enterprise - HA + Scale Out Clustering
Data Model Measurement cpu,host=serverA,num=1,region=west idle=1.667,system=2342.2 1492214400000000000 Tags Fields nanosecond epoch
float64, int64, bool, string uint64 in next release
Example Query select percentile(90, value) from cpu where time >
now() - 12h and “region” = ‘west’ group by time(10m), host
Process: • OSS - MIT License • Written in Go
• Process, monitor, alert, act/execute • TICK script • Streaming & Batch • Store data back into InfluxDB • User Defined Functions • Service Discovery & Pull
Collect: • OSS - MIT License • Written in Go
• Agent deployed across infrastructure • Input plugins - system, docker, postgres, mysql, cassandra, elastic, hadoop, redis, nginx, apache, etc. • Output plugins - InfluxDB, Graphite, Kafka, etc.
Why is a competitor at Promcon?
What is Prometheus?
Prometheus Server
Alert Manager
Exposition Format
Client Libraries • Supported • Go • Java • Python
• Ruby • Community • C++ • C# • Node.js • PHP • etc…
PromQL
API /api/v1/series /api/v1/label/<name>/values
Remote Read/Write API
Prometheus is more than just the server
Influx + Prometheus today
We’re embracing pull & push
Prometheus Scrape Targets Kapacitor
https://github.com/prometheus/prometheus/issues/2911 https://github.com/influxdata/prometheus_metric_normalizer
Remote Read/Write
Prometheus Config # Remote write configuration (for Graphite, OpenTSDB, or
InfluxDB). remote_write: - url: "http://localhost:9201/write" # Remote read configuration (for InfluxDB only at the moment). remote_read: - url: "http://localhost:9201/read"
metric -> measurement labels -> tags value -> only field
(float64)
Remote Read Protobuf over HTTP
Reads message Query { int64 start_timestamp_ms = 1; int64 end_timestamp_ms
= 2; repeated LabelMatcher matchers = 3; } enum MatchType { EQUAL = 0; NOT_EQUAL = 1; REGEX_MATCH = 2; REGEX_NO_MATCH = 3; } message LabelMatcher { MatchType type = 1; string name = 2; string value = 3; }
Remote Read JSON over HTTP
Unnecessary Overhead
Can we push down processing?
Influx + Prometheus future
First, pull remote gateway into InfluxDB!
Influx Data Model tags + value + time
Like Prometheus message Sample { double value = 1; int64
timestamp_ms = 2; } message LabelPair { string name = 1; string value = 2; } message TimeSeries { repeated LabelPair labels = 1; // Sorted by time, oldest sample first. repeated Sample samples = 2; }
metric is __name__ label
But we’ll continue to support int64, bool, string, and uint64
IFQL - (Influx Functional Query Language) select(database:"foo",where:{'metric'="requests"}) .range(start:-4h) .window(period:10m) .sum()
.interpolate(start:-4h,every:10m,value:{mean($)})
Decouple QL from Processing from Storage
None
DAG { "operations": [ { "id": "select", "kind": "select", "spec":
{ "database": "mydb" } }, { "id": "range", "kind": "range", "spec": { "start": "-4h", "stop": "now" } }, { "id": "sum", "kind": "sum" } ], "edges": [ { "parent": "select", "child": "range" }, { "parent": "range", "child": "sum" } ] } }
Pushdown Predicates
Opportunities to improve storage/remote?
Bulk Write
Long term storage and query for Prometheus SaaS & On-Premise
Thank you @pauldix paul@influxdb.com