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

timeslice

timeslice operator は、期間ごとにデータを分割することで、固定間隔に基づいてバケットに分けられた結果 (例: 5 分バケット) を作成します。timeslice は、固定されたバケットの目標数 (例: 過去 60 分で 150 バケット) もサポートします。

この operator には、主に 2 つの使用事例があります。

  1. 集計分析用にデータをタイムスライスされたバケットにグループ化する
  2. 時系列の視覚的な分析用にデータをタイムスライスされたバケットにグループ化する

ユーザがサービスに正常にログインするたびにログを記録していて、毎時のログイン数を日単位でトラッキングしたいとします。timeslice operator を使用することで、データを 1 時間ごとに分割し、過去 24 時間分のデータを表示することができます。

構文 

  • timeslice <#><time_period> [as <field>] | <aggregating_operator> by <field> 
  • timeslice <#> buckets [as <field>] | <aggregating_operator> by <field>

サポートされている<time_period> 値は、週 (w)、日 (d)、時 (h)、分 (m)、および秒 (s) です。

データを月 (M) ごとにグループ化するには、次のように formatDate operator を使用して、_timeslice を月形式に形式します。

timeslice 1d
| formatDate(_timeslice,"MM-01-yyyy") as month
| parseDate(month,"MM-dd-yyyy") as _timeslice 
| <aggregating_operator> by _timeslice 

ルール

  • timeslice のエイリアス フィールドは省略可能です。エイリアスを指定しないと、デフォルトで _timeslice フィールドが作成され、タイムスライスの開始時刻がミリ秒数で格納されます。
  • __timeslice_end フィールドが作成され、タイムスライスの終了時刻がミリ秒数で格納されます。
  • 多くの場合、timeslice operator は transpose operator と一緒に使用されます。データをバケットにタイムスライスしたら、transpose operator によって集計データを時系列でグラフ化できます。
  • timeslice operator は、count by や group by などの aggregation operator と一緒に使用する必要があります。
  • クエリに含まれるバケット数は、目標値または最大値であり、返されるバケット数と同じである必要はありません。たとえば、クエリで 150 のバケットを指定している場合、Sumo Logic はクロックに揃えた適切な精度で約 150 のバケットをクエリ結果に返します。
  • timeslice operator と compare または outlier operator を一緒に使用する場合は、timeslice ではエイリアスを指定しないでください。これらは _timeslice というフィールド名を想定します。

毎時の成功したログイン

     _sourceCategory=exampleApplication*
    | parse "login_status=*" as login_status
    | where login_status="success"
    | timeslice 1h
    | count by _timeslice

Aggregates.png

既知の問題

timeslice operator では、サマータイム (Daylight Savings Time: DST) で問題が発生することがわかっています。時計を早めると、DST 開始日にまたがるタイムスライス オペレーションに影響が出ます。このため、その日の結果には 1 つ多くのエントリが含まれることがあります。 

たとえば、オーストラリアでは 10 月 2 日から春の DST が始まります。この日の 1d タイムスライスでは、同じ日に 2 つのエントリ (1 つは午前 12 時、もう 1 つは午後 11 時) が含まれてしまいます。

また、4h タイムスライスを使用している場合、通常なら午前 12 時、午前 4 時、午前 8 時、午後 12 時、というように結果が返されます。しかし、ここで DST が絡むと、午前 12 時の次の結果が秋には午前 3 時、春には午前 5 時になってしまいます。 

timeslice operator の例

基本的な例

timeslice 5m 
5 分の固定サイズ バケットです。出力フィールドは default _timeslice となります。

timeslice 2h as 2hrs 
2 時間の固定サイズ バケットです。出力フィールド名は 2hrs というエイリアスになります。

timeslice 150 buckets 
検索結果で 150 のバケットが生成されます。

timeslice 1m as my_time_bucket_field_name 
各 1 分の固定サイズ バケットです。出力フィールド名は my_time_bucket_field_name. というエイリアスになります。

クエリでの例

* | timeslice 5m | count by _timeslice 
[Aggregates (集計)] タブに _count と _timeslice という列を持つテーブルが出力され、タイムスライスの間隔は 5 分になります。

* | timeslice 5m as my_field_name_alias | count by _sourceCategory, my_field_name_alias 
_count_sourceCategory、および my_field_name_alias という 3 つの列を出力します。

* | timeslice 10 buckets | count by _sourceCategory, _timeslice 
_count_sourceCategory、および _timeslice という列を持ち、検索期間全体をカバーするメッセージがあれば各 _sourceCategory に対して 10 行のデータが格納されたテーブルが [Aggregates (集計)] タブに出力されます。

その他の例

例 1: ロード バランサが正常に機能していることを確認するため、サーバの経時的な分散状況を返します。

_sourceCategory=Apache/Access 
| timeslice 1h 
| parse regex "(?<ip_address>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})"
| count _timeslice, ip_address 
| transpose row _timeslice column ip_address

このクエリは、[Aggregates (集計)] タブに次の結果を返し、縦棒グラフとして表示できます。

タイムスライス順

例 2: すべてのコンピュータから Sumo Logic への経時的なアクセスを返します。

_sourceCategory=*IIS*
| parse "* * * * * * * * " as date, time, csmethod, cs_uri_stem, cs_uri_query, s_port, s_ip, cs_useragent
| timeslice 1m 
| count by _timeslice, s_ip
| transpose row _timeslice column s_ip

このクエリは、[Aggregates (集計)] タブに次の結果を返し、積み上げ縦棒グラフとして表示できます。

タイムスライスの例

例 3: Apache サーバで非正常ステータスコード (400 と 500) をモニタリングします。

_sourceCategory=Apache/Access
| parse "HTTP/1.1\" * " as status_code
| where status_code >= 400
| timeslice 5m
| count as count by _timeslice,_sourceHost
| transpose row _timeslice column _sourceHost

このクエリは、[Aggregates (集計)] タブに次の結果を返し、面グラフとして表示できます。

タイムスライスの例

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