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

グループまたは集計オペレータ

集計関数はメッセージを評価してそれらをグループ化します。グループ オペレータはグループ化関数と組み合わせて使用します。

グループ化関数を使用する場合、単語 "by" でグループ オペレータを表現できます。グループ化関数を使用する際の通常の形式は次のとおりです。

grouping_function by <fieldname>

次の集計 (グループ化) 関数があります。

デフォルトでは、group-by 式を使用して作成したグループ内に並び替えは定義されません。結果を並び替えるには、sort オペレータを使用します。

グループ オペレータ

構文

  • ... | group_by_function <field_to_operate_on> group by <field_to_group_by>[, <field2>, ...]

group by の代わりに by を使用できます。つまり count group by usercount by user と同じです。

ルール

  • LogReduce オペレータとは併用できません。
  • フィールドのパースおよび命名 (エイリアス) を行う場合は、グループ化関数またはその他のオペレータの名前をフィールド名に使用しません。
  • count またはその他のグループ化関数を使用する際は、フィールド名の前にアンダースコアを追加します (_count でのソート)。
  • 複数の集計関数を 1 つの行に記述できますが、数学関数などの関数はクエリの同じ行に入れることはできません。

たとえば、次の使用はできません。

... | avg(x + y) as average, sum(x+y) as total

次のように 2 行にわける必要があります。

... | x + y as z
| avg(z) as average, sum(z) as total

また、次の使用はできません。

avg(abs_latency)/1000/60 as avg_latency_min

この場合は、次のように 2 行にわける必要があります。

avg(abs_latency_ms) as avg_latency_ms
| avg_latency_ms / 1000 / 60 as avg_latency_min

_count でソートして結果を 10 件に制限します。

* | parse "GET * " as url 
| count by url 
| sort by _count 
| limit 10

user でカウントします。

status AND down 
| parse regex "user=(?<user>.*?)"
| parse regex "host=(?<msg_host>.*?)"
| count by user

送信元 IP アドレスでカウントします。

_sourceCategory=apache 
| parse "* " as src_ip
| parse "GET *" as url
| count by src_ip
| sort by _count

1 行に複数のグループ オペレータを使用します。

| count(field1), avg(field2) group by field1, _timeslice

1 行に複数の集計オペレータを使用します。

    | max(amount) as amount_max, count(datetime) as datetime_count, sum(_size) as messages_size_sum, last(query) as last_query

すべての Sumo Logic のシステム生成フィールド名はアンダースコア ("_") で始まります。グループ化関数は、アンダースコア (_) と関数名を連結した名前で Sumo Logic フィールドを作成します。関数 count を使用すると、_count という名前のフィールドをパイプラインに挿入します。関数 count_distinct は _count_distinct という名前のフィールドをパイプラインに挿入します。

  • この記事は役に立ちましたか?