このページはPrometheus公式ドキュメント和訳+αの一部です。
単純な時系列の選択
http_requests_total
メトリックの全ての時系列を返す
http_requests_total
http_requests_total
メトリックでjob
とhandler
ラベルが指定された値であるものを返す
http_requests_total{job="apiserver", handler="/api/comments"}
ある時間幅(ここでは5分)の全ての値をrange vectorにして返す
http_requests_total{job="apiserver", handler="/api/comments"}[5m]
range vectorを返す式は、直接グラフに表示できないが、Consoleで表としてみることができる。
正規表現でjob
がパターンに合う(ここではserver
で終わる)時系列を選択することができる。
http_requests_total{job=~".*server"}
Prometheusの正規表現はRE2 syntaxを使う。
HTTPステータスが4xx以外のものを選択する
http_requests_total{status!~"4.."}
サブクエリ
このクエリは、メトリックhttp_requests_total
の5分間の増加を過去30分に対して1分の解像度で返す。
rate(http_requests_total[5m])[30m:1m]
これは入れ子になったサブクエリの例である。
関数deriv
に対するサブクエリは、デフォルトの解像度を用いる。
不必要にサブクエリを利用するのは賢明ではない。
max_over_time(deriv(rate(distance_covered_total[5s])[30s:5s])[10m:])
関数、演算子など
直近5分のhttp_requests_total
のrate(秒間)を全て返す
rate(http_requests_total[5m])
http_requests_total
には全てjob
およびinstance
ラベルがあると仮定して、job
軸を残して、instanceのrateを合計する
sum(rate(http_requests_total[5m])) by (job)
同じラベルを持つ二つのメトリクスがある場合、二項演算子を使って、同じラベルを持つ両辺の要素を演算した結果を得ることができる。 この例では、各インスタンスの未使用メモリをMiB単位で返す。
(instance_memory_limit_bytes - instance_memory_usage_bytes) / 1024 / 1024
アプリケーション毎に合計した各インスタンスの未使用メモリは次のように書ける。
sum( instance_memory_limit_bytes - instance_memory_usage_bytes ) by (app, proc) / 1024 / 1024
もし、各インスタンスに対してinstance_cpu_time_ns
が次のようにexposeされているとすると、
instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"} instance_cpu_time_ns{app="elephant", proc="worker", rev="34d0f99", env="prod", job="cluster-manager"} instance_cpu_time_ns{app="turtle", proc="api", rev="4d3a513", env="prod", job="cluster-manager"} instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="cluster-manager"} ...
CPU利用の多いapp
とproc
でグループされた上位3つを取得することができる。
topk(3, sum(rate(instance_cpu_time_ns[5m])) by (app, proc))
このメトリックが稼働中のインスタンスにつき1つの時系列を持っているとすると、アプリケーションごとの稼働中インスタンス数は以下のようにして計算できる。
count(instance_cpu_time_ns) by (app)
参考リンク
おすすめ書籍

入門 Prometheus ―インフラとアプリケーションのパフォーマンスモニタリング
- 作者: Brian Brazil,須田一輝,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/05/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る

- 作者: Mike Julian,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/01/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム
- 作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/08/12
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
和訳活動の支援
Prometheusドキュメント和訳が役に立った方は、以下QRコードからPayPayで活動を支援して頂けるとありがたいです。