新しいPromQL Explorerの活用でPrometheusクエリの記述を迅速化

By 清水 孝郎 - MARCH 3, 2021

SHARE:

本文の内容は、2021年3月3日にHarry Perksが投稿したブログ(https://sysdig.com/blog/write-prometheus-queries-faster-with-our-new-promql-explorer/)を元に日本語に翻訳・再構成した内容となっております。

監視データを簡単に理解するのに役立つ新しいPromQL Explorer for Sysdig Monitorを発表しました。

新しいPromQL Explorerでは、異なるメトリクス間の共通ラベルを自動的に識別することで、PromQLクエリーをより速く書くことができます。また、視覚的なラベルフィルタリングを使用してPromQLの結果をインタラクティブに変更することができます。

ラベルのことばかり

SysdigのPrometheusモニタリングとのネイティブな互換性により、強力なクエリー言語であるPromQLをSysdig Dashboards & Alertsで使用することができます。高度な関数、演算子、ブーリアンロジックを活用してメトリクスをクエリーすることができます。

Prometheusは、メトリクス名とキーと値のペア(ラベル)によって識別される各時系列を保存します:
<metric name>{<label name>=<label value>, ...}
例えば、異なるラベルによってHTTPリクエストを追跡するメトリクスは、以下の時系列を持つことができます:
http_requests_total{status_code="200", method="get", handler="/users"}
http_requests_total{status_code="200", method="post", handler="/order"}
http_requests_total{status_code="500", method="post", handler="/order"} 
これにより、HTTP リクエストをフィルタリングして、「handler /users に対して 200 OK のレスポンスを持つリクエストを与える」というようなクエリーが可能になります。

ラベルは、Prometheusのデータモデルの基本的な要素であり、PromQLを使用すると、メトリクスだけでなくラベルに基づいてフィルタリングや集計を行うことができます。これを効果的に行うには、PromQL クエリーを記述するために結合しようとしている各メトリクスのラベルをすべて知る必要があります。これは、異なるラベルを持つ 2 つのメトリクスを結合するには、共通のラベルを明示的に選択しなければならないためです。

PromQL Explorerで救われる

PromQLを使用してメトリクスをクエリーし、ラベルと値を理解し、Dashboards & Alertsで使用する前に素早くクエリーを作成するためのSysdig Monitorの新機能、PromQL Explorerの発表に興奮しています。

PromQLは、Prometheusエンドポイントから収集したメトリクスだけでなく、エージェントが収集したSysdigネイティブのメトリクスでも使用できます。
using PromQL queries in the new Sysdig Monitor PromQL Explorerラベル フィルタリングを使用すると、複数のメトリクスを組み合わせる際に重要な、メトリクス間の共通ラベルを視覚化することができます。
Use the label filtering to identify common labels between queries for vector matching. In the above example, you can see that A and B metrics have only the container_id label in common.
ラベル・フィルタリングを使用して、ベクトル・マッチングのためのクエリー間で共通のラベルを識別します。この例では、A メトリクスと B メトリクスが共通して container_id ラベルのみを持っていることがわかります。
Animated image showing how to create an alert directly from the new Sysdig Monitor PromQL Explorer
ダッシュボードやアラートで新しいPromQLクエリを簡単に使用することができます。

そして、もっとエキサイティングなことが待っています

今後、数週間の間に、SysdigはPromQLクエリーをより速く書くのに役立つ新機能を紹介します。

SysdigのServiceVision™機能とPromQLを組み合わせることで、Sysdigはお客様の環境で追加のラベルをインストルメントすることなく、Kubernetesとアプリケーションコンテキストを使って自動的にメトリクスをエンリッチメントします。エンリッチメントは、時系列が当社のバックエンドに送信された後に、当社のメトリクス・インジェスト・パイプラインで行われるため、運用の複雑さとコストが削減されます。

したがって、次のようなクエリーを実行することができます。
sum by (cluster,owner_name) (sum by (cluster,namespace,pod) (sysdig_container_cpu_cores_used * on (container_id) group_right kube_pod_container_info) * on (cluster,namespace,pod) group_right kube_pod_owner{owner_kind="Node"}) / on (cluster, owner_name) group_left label_replace(kube_node_status_capacity_cpu_cores, "owner_name", "$1", "node", "(.*)") * 100
もっとシンプルな以下のものへ
sum by (kube_cluster_name,kube_node_name) (sysdig_container_cpu_cores_used) * 100
PromQL クエリーは ServiceVision™ で簡素化され、Kubernetes のコンテキストによるメトリクスのフィルタリングや集計がより簡単になります。

自分の手を汚したくありませんか?

PromQL Explorerは、ホスト型SaaSサービスのユーザーへのデプロイを開始しており、セルフホスト型のお客様は年内にアクセスできるようになる予定です。PromQL ExplorerはSysdig MonitorツールバーのExploreタブの下にあります。

お客様からのフィードバックをお待ちしております。いつでもご連絡ください

Sysdig Monitorは、Kubernetesとアプリケーションのコンテキストでメトリクスをエンリッチメントし、インフラストラクチャーの可視性を得るのに役立ちます。わずか数分でセットアップが完了します。今すぐ無料トライアルをお申し込みください