15章二項演算子
メトリクスは単純に集計する以上の方法で活用したいところだ。二項演算子(binary operator)はそのようなときに役に立つ。二項演算子とは、加算や等価比較のように、ふたつの被演算子(operand)†1を取る演算子である。
[†1] 被演算子をひとつしかとらない単項演算子(unary operator)と区別される。PromQLには、+と-の単項演算子がある。
Prometheusの二項演算子を使えば、インスタントベクトルの単純な算術演算以上のことができる。ラベルによるグルーピングを行った2個のインスタントベクトルに対して二項演算子を適用することもできる。PromQLの真価が発揮されるのはこの部分であり、ほかのほとんどのメトリクスシステムが提供していないレベルの分析が可能になっている。
PromQLの二項演算子は、算術演算子、比較演算子、論理演算子の3種類に分類できる。この章では、それらの使い方を説明する。
15.1 スカラの操作
Prometheusの値には、インスタントベクトルと範囲ベクトルのほかにスカラ(scalar)という第3のデータ型がある†2。スカラとは、次元を持たない単独の数値である。たとえば、0は値0を持つ1個のスカラだが、{} 0は、ラベルがなく値がゼロの1個のサンプルを含むインスタントベクトルである†3。
[†2] PromQLは、内部的には文字列(string)型も持っているが、これはcount_values、label_replace、label_joinの引数として使われるだけである。
[†3] 1個のサンプルを表すための記法として{}: 0も見かけるかもしれない。
15.1.1 算術演算子
インスタントベクトルをともなう算術演算では、インスタントベクトルの値を変えるためにスカラを使うことができる。たとえば、次の式は、 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access