Share
Embed
PromQL_Compatibility_Testing_Recap
yosshi_
May 20, 2021
Transcript
40 slides
-
ç “PromQL Compatibility Testing Verifying Vendor Claims for End User
Benefit” Recap : PromCon Online 2021 Kubernetes Meetup Tokyo #41 - KubeConEU 2021 Recap @yosshi_ -
• 吉村 翔太 • ゼットラボ株式会社 ソフトウェアエンジニア • 経歴 SIer 6年、通信事業者のR&D
2年 etc • Kurbernetes 、Prometheus etc • 登壇 CNDT “Kubernetes Logging入門” etc • コミュニティ活動 “Cloud Native Developers JP” @yosshi_ 自己紹介 “Prometheus Meetup Tokyo” -
What is Co-Located Events ? 参考 : events.linuxfoundation.org < https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/program/colocated-events/
> • KubeCon + CloudNativeCon に合わせて開催される周辺イベント • 特定の技術やプロダクトに特化したイベントが多数開催される – Cloud Native Rust Day – PromCon Online – Cloud Native Security Day – Cloud Native Wasm Day – K8s AI Day – K8s on Edge Day – ServiceMeshCon – Data on Kubernetes Day etc -
What is PromCon? 参考 : promcon.io < https://promcon.io/2021-online/ > •
Prometheus に関するイベント • 概要 – 日付:2021/5/3 – 時刻:10:00-18:30(CEST) – 場所:Online – 参加費:USD $20 -
その他のセッション • Making Prometheus even more open < https://sched.co/ibIL >
• Making Prometheus even more open < https://sched.co/ibIv > • Ups, let's revert! 🔥 Automating Kubernetes Rollouts with Argo and Prometheus for HA < https://sched.co/ibIj > • The Future is Bright, the Future is Prometheus Remote Write < https://sched.co/ibIj > -
What is Prometheus? 参考 : prometheus.io < https://prometheus.io/docs/introduction/overview > 2012年でSoundCloud
でに作られた Monitoring に関するオープンソースのソフトウェア 発表者の Julius Volz(現在 PromLabs) の方も元 SoundCloud 所属 -
Prometheus を運用する上での課題 • 以下の機能がプロダクトの開発のスコープ外 – メトリクスの長期保管 • メトリクスの長期保管が必要な場合は以下の対応が必要だった – Third-party
Storage の用意 – remote write の対応 参考 : prometheus.io < https://prometheus.io/docs/prometheus/latest/storage/#overview > -
Prometheus のユースケース(1/4) • Prometheus と Grafana を使ったケース • それぞれの役割 –
Prometheus:メトリクスの収集と蓄積、PromQLの実行エンジン – Grafana:可視化 Prometheus Grafana 監視対象 PromQL データ蓄積量に限界が来る -
Prometheus のユースケース(2/4) • ユーザのニーズ – メトリクスを長期保管した – 既存の Grafana のダッシュボードをそのまま利用したい
• 対処方法 – Third-party Storage の利用 ( e.g. InfluxDB ) – remote write/read の利用 Prometheus Grafana 監視対象 PromQL Prometheus (remote read 用) remote write remote read 明言されていないが、実は存在するニーズ -
Prometheus のユースケース(2/4) • ユーザのニーズ – メトリクスを長期保管した – 既存の Grafana のダッシュボードをそのまま利用したい
• 対処方法 – Third-party Storage の利用 ( e.g. InfluxDB ) – remote write/read の利用 Prometheus Grafana PromQL Prometheus (remote read 用) remote write remote read Third-party Storage で PromQL を実装して欲しくなる 監視対象 -
Prometheus のユースケース(3/4) • PromQL もしくは PromQL 互換のクエリ言語を話せるプロダクトの登場 – Native PromQL
: Cortex, Thanos, M3, TimescaleDB etc – PromQL 互換の独自言語: VictoriaMetrics(MetricsQL), New Relic(NRQL) • 対処方法 – Third-party Storage の利用 ( e.g. Cortex ) – remote write の利用 Prometheus Grafana 監視対象 PromQL remote write 既存のダッシュボードを使用できるかどうかは PromQLの互換性に依存してくる -
Prometheus のユースケース(4/4) • Prometheus を使用しない構成も可能 • それぞれの役割 – Grafana Agent:メトリクスの収集
– Cortex:メトリクスの蓄積、PromQLの実行エンジン – Grafana:可視化 Grafana Agent Grafana 監視対象 PromQL remote write -
PromQL の互換性が維持されることによるメリット • ユーザが混乱せずにどのプロダクトも使用できる – Grafana のダッシュボードがどのプロダクトでも同じように使用できる – Alert が実は検知できていないなどの重大なケースを避けることができる
• ベンダーロックインの回避 • エコシステムの断片化の回避 – SQL のように各プロダクト毎に方言が存在する状態を避けれる -
PromQL 互換のテストによるメリット- ユーザ - • ベンダーのドキュメントを読んだだけでは分かりにくい実装の差異を確認できる 参考 : docs.newrelic.com <
https://docs.newrelic.com/docs/integrations/prometheus-integrations/view-query-data/supported-promql-features/ > 参考 : docs.victoriametrics.com < https://docs.victoriametrics.com/MetricsQL.html > -
PromQL Compliance Test Results 参考 : PromQL Compliance Test Results
< https://promlabs.com/promql-compliance-tests/ > -
VictoriaMetrics の結果(2/2) 参考 : PromLabs Blog < https://promlabs.com/blog/2020/08/06/comparing-promql-correctness-across-vendors#victoriametrics > <
https://promlabs.com/blog/2020/11/26/an-update-on-promql-compatibility-across-vendors#victoriametrics > -
ちょっと細かい話 # HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter http_requests_total{method="post",code="200"} 1027 1395066363000 http_requests_total{method="post",code="400"} 3 1395066363000 metrics name sample label 参考 :prometheus.io < https://prometheus.io/docs/concepts/data_model/#samples > • メトリクス 参考 :Prometheus Remote-Write Specification < https://docs.google.com/document/d/1LPhVRSFkGNSuU1fBd81ulhsCPR4hkSZyyBj1SZ8fWOM > -
PromQLについて詳しく知りたい場合は • prometheus.io < https://prometheus.io/docs/prometheus/latest/querying/basics/ > • 入門 Prometheus <
https://www.oreilly.co.jp/books/9784873118772/ > -
Prometheus に関する仕様 参考 : OpenMetrics specification < https://github.com/OpenObservability/OpenMetrics/tree/main/specification > •
OpenMetrics 初回は2020/11/25 IETF に提出 • Prometheus Remote-Write 参考 : Prometheus Remote-Write specification < https://github.com/OpenObservability/OpenMetrics/tree/main/specification >