メインコンテンツまでスキップ
Sumo Logic Japanese

metrics operator

以下の表では、メトリクスでサポートされている operator と、各 operator タイプを含むクエリの例を示します。

operator 説明と構文
accum 行内の各時系列データを現在までの合計に変換します。各時系列における現在までの合計は、時系列内の最初のデータ ポイント値から始まり、次に続く値が反復的に加算されます。

たとえば RequestCount が以下の場合

{ 2, 0, 4, 3, 0, 0 }

RequestCount | accum は以下のようになります。

 { 2, 2, 6, 9, 9, 9 }
RequestCount | accum

avg

生成された時系列データすべての平均を計算します。グループ化が指定されると、各グループの平均が計算されます。

avg [by FIELD [, FIELD, ...]]
dep=prod metric=cpu_system | avg

cluster=search metric=cpu_idle | avg by node
along メトリクス クエリの結合時に使用する場合、Sumo は 1 つ以上のメトリクス フィールドによる総和式を評価します。  

#A + #B along [FIELD (,FIELD, ...]]
以下のような結合メトリクス クエリがあるとします。

metric=CPU_User _sourceHost=cqsplitter-*
metric=CPU_Sys _sourceHost=cqsplitter-*
#A + #B along _sourceHost


along operator により、_sourceHost 値が一致する時系列に対して総和が実行されます。
bottomk クエリ時間範囲にわたって評価される数式の値でソートされる、特定の下位時系列を選択します。

bottomk (number, aggregator)

サポートされている集計関数:

minmaxavgcountsumpct(n)latest
最も高い最大値を持つ、下位 5 つの時系列を取得します。

dep=prod metric=cpu_system | bottomk (5, max)
count クエリに一致する時系列の合計数をカウントします。グループ化が指定されると、各グループの合計数がカウントされます。

count [by FIELD [, FIELD, ...]]
dep=prod | count
cluster=search | count by node
delta 時系列のデータ ポイントごとに後退差分を算出し、時系列での最終値からメトリクスがどの程度変更になったかを判断します。

この operator は、メトリクス タグの値が割り当てられ delta($metric) になります。
metric=Net_InBytes Interface=eth0 | delta
eval ユーザが指定した数式に基づいて、時系列を評価します。

metrics query | eval <math expression>

math expression は、時系列内の各データ ポイントのプレースホルダとして _value を持つ有効な数式です。

サポートされている基本の演算:

+, -, *, /

サポートされている数学関数:

sin, cos, abs, log, round, ceil, floor, tan, exp, sqrt, min, max
_sourceCategory=ApacheHttpServer metrics=request_per_sec | rate | eval max(_value, 0)
_sourceCategory=ApacheHttpServer metrics=cpu_idle | eval _value * 100
filter 一部の集計数量にブール テストを適用して、返される時系列の数を削減できるように、クエリをフィルターします。

filter <aggregator> <boolean operator> <numerical value>

サポートされている集計関数:

minmaxavgcountsumpct(n)latest

max を集計関数として filter に使用する場合は、右側の「例」の列にある 2 番目の例で示すように、上限を設定する必要があります。
クエリが実行される時間範囲での平均が 80% を超える CPU メトリクスのみを表示します。
cpu | filter avg > 80

最小が 20% を超え、最大が 50% より小さい CPU メトリクスのみを表示します。

cpu | filter min > 20 and max < 50

max

クエリに一致する時系列の最大値を計算します。グループ化が指定されると、各グループの最大値が計算される

max [by FIELD [, FIELD, ...]]
dep=prod metric=cpu_system | max

cluster=search metric=cpu_idle | max by node
min クエリに一致する時系列の最小値を計算します。グループ化が指定されると、各グループの最小値が計算されます。

min [by FIELD [, FIELD, ...]]
dep=prod metric=cpu_system | min

cluster=search metric=cpu_idle | min by node
parse 所定のフィールドを parse し、メトリクス クエリで使用する新しいフィールドを作成します。Graphite メトリクスを parse する際にフィールドが指定されない場合、メトリクス名が使用されます。

パターン内の各ワイルドカードは、指定されたフィールドに対応します。parse operator は、最短一致と最長一致の両方のワイルドカードをサポートします。最長一致の場合は '*' を使用し、最長一致の場合は '**' を使用します。

parse [field=FIELD] PATTERN as FIELD [, FIELD, ...]
dep=prod | parse *-search-* as deployment, instance

cluster=frontend | parse field=user **-* as user_id, user_type
pct クエリに一致するメトリクスの指定のパーセンタイルを計算します。グループ化が指定されると、各グループの指定のパーセンタイルが計算されます。

pct(DOUBLE) [by FIELD [, FIELD, ...]]
dep=prod metric=cpu_system | pct(95)

cluster=search metric=cpu_idle | pct(99.9) by node
quantize 期間別に時系列データを分離します。これにより、固定間隔 (5 分間隔など) のバケットで集計結果を作成できる。

quantize to INTERVAL [using ROLLUP]

ROLLUPavgminmaxsum、または count になります。

量子化の詳細については、「メトリクスの量子化」を参照してください。 
_sourceCategory=hostmetrics | quantize to 5m

logins | quantize to 5m using sum

 
rate 時系列内の各時間の前方差分に基づいてレートを計算します。時系列内の現在記録されている値と次回記録される値の差異は、毎秒の値にスケールされます。

この operator は metric タグの値が割り当てられて rate($metric) になり、unit メタデータ フィールドの値が割り当てられて $unit/second になります。

rate
metric=Net_InBytes Interface=eth0 | rate
sum クエリに一致するメトリクス値の合計を計算します。グループ化が指定されると、各グループの合計が計算されます。

sum [by FIELD [, FIELD, ...]]
dep=prod metric=cpu_system | sum

cluster=search metric=cpu_idle | sum by node
timeshift 指定された時間に基づいて、メトリクス クエリから時系列をシフトします。これは、複数期間の時系列を比較する際に役立ちます。

timeshift TIME_INTERVAL
cluster=search metric=cpu_idle | timeshift 5h

dep=prod metric=cpu_system | timeshift -1m
topk クエリ時間範囲にわたって評価される数式の値でソートされる、特定の上位時系列を選択します。

topk (number, aggregator)

サポートされている集計関数:

min, max, avg, count, sum, pct(n), latest
最も高い最大値を持つ、上位 10 の時系列を取得します。

metric=cpu_system | topk (10, max)

それに対して計算 (最大/平均 *2) を実行して、各時系列を削減します。この削減された値でソートして、上位 10 の値を取得します。

metric=cpu_system |topk (10, max /avg * 2)
 
  • この記事は役に立ちましたか?