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

count、count_distinct、count_frequent

集計 (group-by) 関数はグループ オペレータおよびフィールド名と組み合わせて使用します。

グループ オペレータを表すのに必要なのは、単語 "by" のみです。count 関数はその右側の項目のオペレータでもあるので、単語 "by" のあるなしに関わらず使用できます。

count

分析対象の時間範囲内でキーワード検索に一致するログの合計数をカウントします。

構文

  • count[(<field>)] [as <field>] [by <field>, ...]

ルール

  • デフォルトのエイリアス フィールド名は _count です。
  • カウントするフィールドを指定しないと、_raw メッセージ全体がカウントされます。

ログの数をカウントするには:

  • | count

指定したフィールドのログの数をカウントするには (次の例ではフィールドは port):

  • | count(port)

他のフィールドでグループ化して、指定したフィールドのログの数をカウントするには: 

  • | count(port) by srcAddress, tgtAddress

上と同じ例でエイリアス フィールド名を countOfPort にして、集計オペレータ avg を追加すると:

  • | count(port) as countOfPort, avg(bytes) by srcAddress, tgtAddress
    | sort by countOfPort

count_distinct

分析対象の時間範囲内でカウントするフィールドの固有値の数のみをカウントします。

構文

  • count_distinct(<field>) [as <field>] [by <field>, ...]

ルール

  • _count_distinct という名前のフィールドを作成します。

  • | count_distinct(username) group by hostname
  • _sourceCategory=*apache*
    | parse "* -" as src_ip
    | count_distinct(src_ip)

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

結果の固有項目の数が 100 未満の場合、count_distinct 関数はその数を返します。結果の固有項目の数が 100 より大きい場合、count_distinct は概算アルゴリズムを使用して、出力結果についての次の説明メッセージを表示します。count_distinct saw more than 100 values, results may be approximate

概算アルゴリズムは 2% の相対誤差パラメータを使用します。たとえば、

  • 65% の確率で結果の誤差は 2% 以内。
  • 95% の確率で結果の誤差は 4% 以内。
  • 99% の確率で結果の誤差は 6% 以内。

このため、たとえば固有項目の正確な数が 1,000 の場合、概算アルゴリズムによる結果は 95% の確率で 950 ~ 1050 の範囲にあります。

count_distinct 関数によって結果をすぐに、拡張可能な方法で得るためには、誤差パラメータ値が重要です。

また、複数のフィールドで固有値の数をカウントする場合、as オペレータ を使用してエイリアスを作成し、_count_distinct フィールドの名前を変更する必要があります。次の例を参照してください。

_sourceCategory=PaloAltoNetworks
| count_distinct(threatid) as cntthreatid, count_distinct(repeatcnt) as cntrepeatcnt

count_frequent

10,000 個以上の個別グループで集計した場合、最も発生数の多い値を特定する場合に count_frequent 関数を使用できます。このクエリは、発生数の多い上位 10,000 の結果をソートして返します。正確なカウントの推定であるため、結果のカウント フィールドは _approxcount と呼ばれます。推定値は不正確な場合もありますが、値が大きくなるだけです (小さくなることはありません)。

count_frequent 関数の直後に 1 つ以上のフィールド名を指定します。

ダッシュボード クエリで count_frequent オペレータを使用できますが、返される結果の数は最も頻度の高い上位 100 件に制限されます。[Search (検索)]  ページで検索を実行した場合はすべての結果が利用できますが、パネルに表示される結果は上位 100 件のみです。

構文

  • count_frequent <field>[, <field2>, field3, ...]

ルール

  • _approxcount という名前のフィールドを作成します。
  • sum または avg など、他の集計関数とともに使用することはできません。
  • クエリではソートが自動的に実行され、デフォルトは降順です。

  • * | parse "srcIP=*, url=*" as srcIP, url 
    | count_frequent srcIP, url
  • この記事は役に立ちましたか?