Save 37% off PRO during our Black Friday Sale! »

PromQL_Compatibility_Testing_Recap

 PromQL_Compatibility_Testing_Recap

24606216ae4bbee28494552cb71cc220?s=128

yosshi_

May 20, 2021
Tweet

Transcript

  1. ç “PromQL Compatibility Testing Verifying Vendor Claims for End User

    Benefit” Recap : PromCon Online 2021 Kubernetes Meetup Tokyo #41 - KubeConEU 2021 Recap @yosshi_
  2. • 吉村 翔太 • ゼットラボ株式会社 ソフトウェアエンジニア • 経歴 SIer 6年、通信事業者のR&D

    2年 etc • Kurbernetes 、Prometheus  etc • 登壇 CNDT “Kubernetes Logging入門” etc • コミュニティ活動 “Cloud Native Developers JP” @yosshi_ 自己紹介 “Prometheus Meetup Tokyo”
  3. 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
  4. What is PromCon? 参考 : promcon.io < https://promcon.io/2021-online/ > •

    Prometheus に関するイベント • 概要 – 日付:2021/5/3 – 時刻:10:00-18:30(CEST) – 場所:Online – 参加費:USD $20
  5. 今回紹介するセッション 参考 : promcononline2021.sched.com < https://sched.co/ibIO > • PromQL の互換性のテストに関する話

  6. その他のセッション • 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 >
  7. Youtube のリスト • PromCon Online EU 2021 < https://www.youtube.com/playlist?list=PLj6h78yzYM2PZb0QuIkm6ZY-xTuNA5zRO >

  8. なぜ PromQL 互換のプロダクトが必要なのか?

  9. What is Prometheus? 参考 : prometheus.io < https://prometheus.io/docs/introduction/overview > 2012年でSoundCloud

    でに作られた Monitoring に関するオープンソースのソフトウェア 発表者の Julius Volz(現在 PromLabs) の方も元 SoundCloud 所属
  10. Github 上の Star の推移

  11. Prometheus を取り巻く状況

  12. Prometheusのアーキテクチャ 参考 : prometheus.io < https://prometheus.io/docs/introduction/overview/ >

  13. Prometheus を運用する上での課題 • 以下の機能がプロダクトの開発のスコープ外 – メトリクスの長期保管 • メトリクスの長期保管が必要な場合は以下の対応が必要だった – Third-party

    Storage の用意 – remote write の対応 参考 : prometheus.io < https://prometheus.io/docs/prometheus/latest/storage/#overview >
  14. Prometheus のユースケース(1/4) • Prometheus と Grafana を使ったケース • それぞれの役割 –

    Prometheus:メトリクスの収集と蓄積、PromQLの実行エンジン – Grafana:可視化 Prometheus Grafana 監視対象 PromQL データ蓄積量に限界が来る
  15. Prometheus のユースケース(2/4) • ユーザのニーズ – メトリクスを長期保管した – 既存の Grafana のダッシュボードをそのまま利用したい

    • 対処方法 – Third-party Storage の利用 ( e.g. InfluxDB ) – remote write/read の利用 Prometheus Grafana 監視対象 PromQL Prometheus (remote read 用) remote write remote read 明言されていないが、実は存在するニーズ
  16. 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 を実装して欲しくなる 監視対象
  17. 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の互換性に依存してくる
  18. Prometheus のユースケース(4/4) • Prometheus を使用しない構成も可能 • それぞれの役割 – Grafana Agent:メトリクスの収集

    – Cortex:メトリクスの蓄積、PromQLの実行エンジン – Grafana:可視化 Grafana Agent Grafana 監視対象 PromQL remote write
  19. PromQL の互換性が維持されることによるメリット • ユーザが混乱せずにどのプロダクトも使用できる – Grafana のダッシュボードがどのプロダクトでも同じように使用できる – Alert が実は検知できていないなどの重大なケースを避けることができる

    • ベンダーロックインの回避 • エコシステムの断片化の回避 – SQL のように各プロダクト毎に方言が存在する状態を避けれる
  20. PromQL の互換性のテスト方法

  21. PromQL のユースケース

  22. 多くのプロダクトやベンダーが PromQL をサポート

  23. PromQL Compliance Tester 参考 : PromQL Compliance Tester < https://github.com/prometheus/compliance/tree/main/promql

    >
  24. 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 >
  25. PromQL 互換のテストによるメリット- ベンダー - • ソースを読まないと仕様が分からない PromQL のテストが容易にできる

  26. PromQL Compliance Test Results 参考 : PromQL Compliance Test Results

    < https://promlabs.com/promql-compliance-tests/ >
  27. Thanos の結果

  28. New Relic の結果(1/2)

  29. New Relic の結果(2/2) 参考 :PromLabs Blog < https://promlabs.com/blog/2020/11/26/an-update-on-promql-compatibility-across-vendors#new-relic >

  30. VictoriaMetrics の結果(1/2)

  31. 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 >
  32. ちょっと細かい話 # 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 >
  33. PromQLについて詳しく知りたい場合は • prometheus.io < https://prometheus.io/docs/prometheus/latest/querying/basics/ > • 入門 Prometheus <

    https://www.oreilly.co.jp/books/9784873118772/ >
  34. 互換テストの今後

  35. Prometheus のその他の使用と互換性のテスト

  36. Prometheus に関する主なインタフェース

  37. 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 >
  38. OpenMetrics Prometheus Remote-Write specification Prometheus に関する主な仕様

  39. Prometheus の互換テスト 参考 : Prometheus Compliance Tests < https://github.com/prometheus/compliance >

  40. OpenMetrics compliance tester Prometheus Remote-Write Compliance Test PromQL Compliance Tester

    Prometheus に関する主な互換テスト