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

diff

diff オペレータは、連続する行のフィールド値の差分を計算します。結果を出力するには、diff で数値データを含むフィールドを指定する必要があります。数値以外の値は検索結果から削除されます。

diff はデータをソートせずに入力ストリームの順番で行を処理し、フィールドの値を、1 つ前の行の同じフィールドの値から減算します。

結果の最初の行には diff の結果は表示されません。

diff オペレータを使用したクエリに group by 関数を追加することで、各グループの連続値の差を計算できます。(各グループのデータは別々に計算されます。)グループ化は、出力ストリームでの行の順序には影響しません。

構文

  • diff <field> [as <field>] [by <field1>, <field2>, ...]

ルール

  • diff のエイリアスは省略可能です。エイリアスを指定しないと、_diff がデフォルトで使用されます。
  • 指定されるフィールドには数値が含まれている必要があります。
  • 数値以外の値が入っている行はスキップされ、その前の行 (最初に見つかった数値行) が使用されます。
  • 最初の行に対応する diff の結果は常に null (空) になります。
  • diff オペレータを含むクエリをダッシュボードに追加する場合は、diff オペレータの前に group by 関数を指定する必要があります。

diff を使用したタイムポイント間の分量の差分計算。 

diff で値アムスライスを使用して、次のようなクエリを実行すると:

* | parse "bytes transmitted: '*'" as bytes
| timeslice 1m
| sum(bytes) as bytes by _timeslice
| sort _timeslice
| diff bytes as diff_bytes

次のような結果が返されます。

diffoperator.png

複数の diff オペレータの使用。1 つのクエリで複数の diff オペレータを使用できます。たとえば、バイトの差分と圧縮されたバイトの差分を計算するには、次のように指定します。

* | parse "data: '*'" as Bytes 
| diff Bytes as b 
| parse "compress: '*'" as Compressed 
| diff Compressed as c

diff オペレータ クエリのダッシュボードへの追加。diff オペレータを使用したクエリを追加するには、クエリの構文を次のように定義します。

* | parse "encoded: '*'" as e 
| parse "compressed: '*'" as c 
| count by e,c 
| diff e as d

クエリがダッシュボードに対応していないと、ダッシュボードへの追加時にエラー メッセージが表示されます。

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