PromSqlの書き方の詳細
3357 ワード
一:紹介
PromSqlはPrometheusのデータベースクエリー構文であり、監視指標の値を簡単に検索し、数学的な演算を行うことで、データの統計を迅速かつ容易に行い、アラートしきい値を設定することができます.また、Promsqlクエリーはタイミングデータベースであり、履歴データをクエリーしてもすぐであり、zabbixに比べて優れています.
二:Promsql公式ドキュメント
公式サイト
公式の例
3:エクスプレッション言語データ型(Expression language data types)
(1)文字列額面(String literals):文字列の数値、例は以下の通り
(2)浮動小数点型数値(Float literals):つまり、私たちがよく言う小数点、例えば
(3)ベクトルセレクタ(Instant vector selectors)
次の比較関係が含まれています 例:
このブログのアドレス:https://blog.csdn.net/knight_zhou/article/details/104422672
(4)タイムセレクタ 例:
四PromSql常用関数
(1)絶対値をとる(abs関数)
(2)上向き整列(ceil関数)
(3)ceil関数とは反対に下向きに整列(floor関数)する
(4)四捨五入(round関数)
(5)sum()関数:すべてのvalueを見つけた値を求める
(6)avg()関数:平均値を求める
(7)irate()関数:統計平均レート
(8)rate()関数:統計レート
rate(v range-vector)関数、入力:範囲ベクトル、出力:key:value=メトリック指標なし、ラベルリスト:(last値-first値)/時間差のみ.
注意:irateは急速に変化するカウンタ(counter)に適しており、rateは緩やかに変化するカウンタ(counter)に適しています.
(9)by(ラベル名)
(10)delta関数
五:PromSql演算
プラス(+)マイナス(-)乗算(*)除算(/)
たとえば、メモリ使用率の計算
六:Promsql書き方の例
1.cpuの個数を計算する
2.判断負荷
PromSqlはPrometheusのデータベースクエリー構文であり、監視指標の値を簡単に検索し、数学的な演算を行うことで、データの統計を迅速かつ容易に行い、アラートしきい値を設定することができます.また、Promsqlクエリーはタイミングデータベースであり、履歴データをクエリーしてもすぐであり、zabbixに比べて優れています.
二:Promsql公式ドキュメント
公式サイト
公式の例
3:エクスプレッション言語データ型(Expression language data types)
(1)文字列額面(String literals):文字列の数値、例は以下の通り
"this is a string"
'these are unescaped:
\\ \t'
`these are not unescaped:
' " \t`
(2)浮動小数点型数値(Float literals):つまり、私たちがよく言う小数点、例えば
3.14
(3)ベクトルセレクタ(Instant vector selectors)
http_requests_total # /
http_requests_total{job="prometheus",group="canary"} #
次の比較関係が含まれています
=
: Select labels that are exactly equal to the provided string.——等しい!=
: Select labels that are not equal to the provided string.——等しくない=~
: Select labels that regex-match the provided string. ——正則マッチング!~
: Select labels that do not regex-match the provided string. —— 正則不整合http_requests_total{environment=~"staging|testing|development",method!="GET"}
{job=~".*"} # Bad!
このブログのアドレス:https://blog.csdn.net/knight_zhou/article/details/104422672
(4)タイムセレクタ
s
-seconds(秒)m
-minutes(分)h
-hours(時間)d
-days(日)w
-weeks(週)y
-years(年)http_requests_total{job="prometheus"}[5m] # 5
四PromSql常用関数
(1)絶対値をとる(abs関数)
go_gc_duration_seconds{quantile="0"}
(2)上向き整列(ceil関数)
ceil(go_gc_duration_seconds{quantile="0"})
(3)ceil関数とは反対に下向きに整列(floor関数)する
floor(go_gc_duration_seconds{quantile="0"})
(4)四捨五入(round関数)
round(go_gc_duration_seconds{quantile="0"})
(5)sum()関数:すべてのvalueを見つけた値を求める
sum(go_gc_duration_seconds_count)
(6)avg()関数:平均値を求める
avg(go_gc_duration_seconds_count)
(7)irate()関数:統計平均レート
##
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)
(8)rate()関数:統計レート
rate(v range-vector)関数、入力:範囲ベクトル、出力:key:value=メトリック指標なし、ラベルリスト:(last値-first値)/時間差のみ.
rate(mysql_global_status_questions[2m])
注意:irateは急速に変化するカウンタ(counter)に適しており、rateは緩やかに変化するカウンタ(counter)に適しています.
(9)by(ラベル名)
avg(go_gc_duration_seconds_count) by (instance) # Element by
(10)delta関数
delta(v range-vector)
関数は、1つの範囲ベクトルvの最初の要素と最後の要素との差を算出する.戻り値:key:value=メトリック指標:差分値、mysqlの遅いクエリー5分などの新規数を示す式の例.delta(mysql_global_status_slow_queries{}[5m])
五:PromSql演算
プラス(+)マイナス(-)乗算(*)除算(/)
たとえば、メモリ使用率の計算
((node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / (node_memory_MemTotal_bytes)) * 100
六:Promsql書き方の例
1.cpuの個数を計算する
count (node_cpu_seconds_total) by (instance)
2.判断負荷
node_load5 > 5