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

transpose

Excel のピボットテーブルと同じように、transpose オペレータはリストを次の例のように [Aggregates (集計)] タブのテーブルに変換します。  行と列を構成するデータはユーザが指定できます。

transpose を使用しないと、次のクエリは単なる事実を返すだけで有用なテーブルとはなりません。

_sourceCategory=Labs/Apache/Access
| timeslice 5m
| count by _timeslice, status_code

transpose を使用しないテーブル

transpose を使用することで、タイムスライスを行、ステータス コードを列として定義できます。

_sourceCategory=Labs/Apache/Access
| timeslice 5m
| count by _timeslice, status_code
| transpose row _timeslice column status_code

transpose を使用したテーブル

この情報をテーブルとして表現するため、transpose は集計検索結果から列を動的に作成します。これにより、検索結果をフィールドに変換することでクエリの出力を変更できるため、出力スキーマを知らなくてもクエリを設計できます。このように、transpose はダッシュボード パネルのグラフに合わせてデータを正しくフォーマットします。 

たとえば、下の 2 つのスクリーンショットは、同じ時間範囲の同じデータを表していますが、2 つ目のスクリーンショットは transpose オペレータを使用したクエリから生成されています。

transpose を使用しないと、データはタイムスライスに従って表現されますが、ステータス コードでは集計されません。

transpose なし

transpose を使用することで、結果がタイムスライスごとのステータス コードとして読みやすくなります。

transpose あり

構文

  • transpose row [<row fields>] column [<column fields>] as [<output fields>]
  • transpose row [<row fields>] column [<column fields>]

結果は 3 通りの方法で変更できます。

  1. 変数名のコンマ区切りリスト (例: a, b) を使用すると、指定された出力フィールドのみが出力テーブルに表示されます。
  2. 変数名のコンマ区切りリストに続けてコンマとアスタリスク (例: a, b, *) を使用すると、指定された出力フィールドに続いて動的フィールドが出力テーブルに表示されます。
  3. アスタリスクのみ (*) を使用すると、すべての動的フィールドが出力テーブルに表示されます。結果テーブルにすべてのフィールドを追加したい場合は、このオプションを使用してください。
  4. transpose の後でフィールドを参照したい場合は、出力フィールドとしてフィールド名を指定します。

フィールド名に特殊文字 (- など) が含まれる場合は、フィールド名を %"" で囲みます (例: %"test-zz-1")。データから算出された列名には特殊文字が含まれることが多いため、transpose オペレータを使用する際はこのことを忘れないようにしてください。

ルール

  • transpose は join オペレータとは併用できません。
  • transpose は、最大 300 件の動的フィールド (作成される列) をサポートします。
  • フィールドはアルファベット順に戻されます。

モジュールごとのエラーの表示

エラーがモジュールごとにログに記録されるとします。ここでは、モジュール名ごとにエラーを表示します。次のようなクエリを実行するとします。

error | parse "module=*]" as module| timeslice 1m
| count as value by _timeslice, module
| transpose row _timeslice column module as [moduleName1, moduleName2, ...]

結果では、各モジュールが個別の色で表示されます。

Transpose_operator_errors_by_module_675x324.png

[Stacking (積み上げ)] ([Change Properties (プロパティの変更)] の下にあります) の設定を [Normal (標準)] に変更して、グラフがどのように変わるかを見てみましょう。詳細については、「グラフ検索結果」を参照してください。

ユーザによるログイン成功の表示

transpose オペレータは、生成されるフィールドについて事前に知らなくても使用できますので、ユーザや組織ごとのログインの表示に利用できます。次のようなクエリを実行するとします。

_sourceCategory=service
| parse "Successful login for user '*', organization: '*'" as user, org_id
| timeslice 1d
| count _timeslice, user
transpose row _timeslice column user

次のような積み上げグラフが表示されます。

成功したログイン

Web サーバのステータス コードの表示

Apache Web サーバのステータス コードのクエリに戻りましょう。status_code は事前にパースされているフィールドです。

_sourceCategory=Apache/Access
| timeslice 1m
| count by _timeslice, status_code
| transpose row _timeslice column status_code

結果はまず、指定した形式で [Aggregates (集計)] タブに返されます。

Web サーバのステータス コード

次に、[Column (縦棒)] グラフのボタンを選択し、[Change Properties (プロパティの変更)] の下にある [Stacking (積み上げ)] の設定を [Normal (標準)] に変更して、積み上げ縦棒グラフを作成します。

ステータス コードの積み上げグラフ

null フィールドの処理については isNull オペレータを参照してください。

結果の順序変更

前の例に続けて、変数名を指定することで結果を変更できます。詳細については「構文」を参照してください。結果を順序付けるには、transpose オペレーションで返される変数名を知っている必要があります。この例では、200、400、および 500 のステータス コードが返されますので、変数名を次のように指定することで結果の順序を変更できます。

_sourceCategory=Apache/Access
| timeslice 1m
| count by _timeslice, status_code
| transpose row _timeslice column status_code as %"200", %"400", %"500"

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