トレースデータの表示

トレースデータは、 Snowsight、またはトレースデータが保存されているイベントテーブルをクエリすることで表示することができます。

注釈

トレースデータの使用を開始する前に、 テレメトリデータ収集 を有効にする必要があります。

Snowsight でトレースエントリを表示します。

注釈

Snowsight ロギングとトレースのサポートは、すべてのアカウントで利用可能なプレビュー機能です。

Snowsight を使って、イベント・テーブルに取り込まれたトレース・データを表示することができます。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Monitoring » Traces and Logs を選択します。

  3. Traces & Logs ページでは、以下の列でトレースエントリを表示することができます。

    説明

    Date

    エントリが記録された日付。

    期間

    トレースの開始から終了までの長さ。

    トレース名

    イベントを生成する実行可能ファイルの名前。 RESOURCE_ATTRIBUTES 列 snow.executable.name の値から取得します。

    ステータス

    Error トレースがエラーを報告した場合、または Success

    スパン

    トレース内のスパンの数。

  4. Traces & Logs ページでは、以下を実行できます。

    • 表示された行をフィルタリングするには、ページ上部のドロップダウンメニューを使用します。次の特徴でフィルタリングができます。

      • エントリが記録された日付範囲

      • トレースのステータス、例えば Success または Error

      • トレースが実行されたデータベース

    • 行を並べ替えるには、並べ替えたい列の名前を選択します。

  5. エントリの詳細情報を Trace Details ページで表示するには、エントリの行を選択します。

  6. Traces Details ページでは、スパンのリストを表示することができます。

    スパン・オブジェクトは、トレース・イベントを含みます。詳細については、 Snowflakeがトレースイベントを表す方法 をご参照ください。

    • 表示された行をフィルタリングするには、ページ上部のドロップダウンメニューを使用します。 Span Type でフィルタリングできます。UDF 手順、Streamlitです。

    • 行に表示されたデータを説明する凡例を表示するには、 Legend ドロップダウンを選択し、表示したい凡例を選択します。

    • エントリの詳細情報を表示するには、エントリの行を選択します。

      このパネルでは、イベント・テーブルに保存されている詳細情報を表示することができます。以下の表は、パネルの値について説明したものです。

      詳細タブ

      詳細

      説明

      トレース ID

      クエリからの呼び出しに対する一意の識別子。 TRACE 列 trace_id 値から取得します。詳細については、 トレース値 をご参照ください。

      スパン ID

      スレッドモデルに関連付けられた一意の識別子。 TRACE 列 span_id 値から取得します。詳細については、 トレース値 をご参照ください。

      範囲

      イベントを出力するコードの名前空間。 SCOPE 列 から取得。

      期間

      スパンの開始から終了までの期間。詳細については、 SPAN RECORD_TYPE の場合 をご参照ください。

      名前

      スパンの名前。 RECORD 列 name の値から取得します。

      親のスパン ID

      選択されているスパンを含むスパンの一意な ID。

      ステータスコード

      スパンのステータスコード。 RECORD 列 status の値から取得します。

      その他の属性

      ユーザーコードによって追加された属性と値。

      クエリ ID

      トレースを開始したクエリの ID RESOURCE_ATTRIBUTES 列 snow.query.id の値から取得します。

      名前

      イベントを生成する実行可能ファイルの名前。 RESOURCE_ATTRIBUTES 列 snow.executable.name の値から取得します。

      イベントを発生させた実行ファイルのタイプ。 RESOURCE_ATTRIBUTES 列 snow.executable.type の値から取得します。

      ユーザー

      ユーザーが実行する関数の名前。Streamlitアプリの場合、特定のイベントでアプリを表示していたユーザーの名前。 RESOURCE_ATTRIBUTES 列 db.user の値から取得します。

      所有者

      実行可能ファイルの OWNERSHIP 権限を持つロールの名前。 RESOURCE_ATTRIBUTES 列 snow.owner.name の値から取得します。

      ロール

      セッション内のプライマリロールの名前。 RESOURCE_ATTRIBUTES 列 snow.session.role.primary.name の値から取得します。

      ウェアハウス

      イベントを生成するクエリを実行しているウェアハウスの名前。 RESOURCE_ATTRIBUTES 列 snow.warehouse.name の値から取得します。

      データベース

      実行可能ファイルを含んでいるデータベースの名前。 RESOURCE_ATTRIBUTES 列 snow.database.name の値から取得します。

      スキーマ

      実行可能ファイルを含んでいるスキーマの名前。 RESOURCE_ATTRIBUTES 列 snow.schema.name の値から取得します。

      スパンイベントタブ

      トレースイベントに記録されたデータを表示します。詳細については、 記録されたイベントデータ をご参照ください。

      関連指標タブ

      Snowpark Python ストアドプロシージャおよび UDFs によるリソース消費について、 CPU およびメモリメトリクスのチャートを表示します。UDF に関連するメトリクスは、特定のクエリに対するものです。リストから UDF スパンを選択すると、同じクエリについて 1 つ以上の UDF スパンに関連するメトリックが表示されます。リストからプロシージャーを選択すると、単一スパンのプロシージャ・メトリクスが表示されます。

      ログタブ

      イベントでログに記録された値を表示します。 VALUE 列 から取得。

トレースデータのイベントテーブルをクエリするには、次を実行します。

イベントテーブルには、ログされたメッセージに関する情報をキャプチャする、次のような事前定義された列のセットがあります。

  • スパンが開始されたときのタイムスタンプ。

  • イベントが作成されたときのタイムスタンプ。

  • データがスパン用かスパンイベント用かなど、記録されたデータの型。

  • スパンまたはイベントの名前。

  • スパンまたはイベントに関連付けられた属性(存在する場合)。

イベントテーブルの列に関する参照情報については、 イベントテーブル列 をご参照ください。

トレースデータクエリの例

次のセクションでは、データ例を使用してイベントテーブルにトレースデータをクエリする方法を説明します。

収集されたデータ

次の例の出力は、Pythonで記述された3つの個別のハンドラーに対してトレースデータがキャプチャされた後の、イベントテーブルから選択された列のサブセットの内容を示しています。

トレースデータを収集するイベントテーブル列の参照情報については、 トレースイベントのデータ をご参照ください。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| TIMESTAMP          | START_TIMESTAMP    | RESOURCE_ATTRIBUTES   | RECORD_TYPE | RECORD                                                                                                  | RECORD_ATTRIBUTES                                                           |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | 2023-04-20 0:45:49 | **See excerpt below** | SPAN        | { "kind": "SPAN_KIND_INTERNAL", "name": "digits_of_number", "status": { "code": "STATUS_CODE_UNSET" } } |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 |                    |                       | SPAN_EVENT  | { "name": "test_udtf_init" }                                                                            |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 |                    |                       | SPAN_EVENT  | { "name": "test_udtf_process" }                                                                         | { "input": "42" }                                                           |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 |                    |                       | SPAN_EVENT  | { "name": "test_udtf_end_partition" }                                                                   |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:00 | 2023-04-20 0:46:00 |                       | SPAN        | { "kind": "SPAN_KIND_INTERNAL", "name": "times_two", "status": { "code": "STATUS_CODE_UNSET" } }        | { "example.func.times_two": "begin", "example.func.times_two.response": 8 } |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:00 |                    |                       | SPAN_EVENT  | { "name": "event_without_attributes" }                                                                  |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:00 |                    |                       | SPAN_EVENT  | { "name": "event_with_attributes" }                                                                     | { "example.key1": "value1", "example.key2": "value2" }                      |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:08 | 2023-04-20 0:46:08 |                       | SPAN        | { "kind": "SPAN_KIND_INTERNAL", "name": "do_tracing", "status": { "code": "STATUS_CODE_UNSET" } }       | { "example.proc.do_tracing": "begin" }                                      |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:08 |                    |                       | SPAN_EVENT  | { "name": "event_with_attributes" }                                                                     | { "example.key1": "value1", "example.key2": "value2" }                      |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RESOURCE_ATTRIBUTES の抜粋

次の JSON の抜粋には、前の出力にデータが含まれている3つのハンドラーの1つごとに、 RESOURCE_ATTRIBUTES 列に含まれる属性のうちの2つが含まれています。これらの抜粋に続く SELECT クエリコードは、これらの属性から値を選択します。

RESOURCE_ATTRIBUTES 列には、イベントのソースに関するデータが含まれています。参照情報については、 RESOURCE_ATTRIBUTES 列 をご参照ください。

{
  ...
  "snow.executable.name": "DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER)",
  "snow.executable.type": "FUNCTION",
  ...
}

{
  ...
  "snow.executable.name": "TIMES_TWO(X NUMBER):NUMBER(38,0)",
  "snow.executable.type": "FUNCTION",
  ...
}

{
  ...
  "snow.executable.name": "DO_TRACING():VARIANT",
  "snow.executable.type": "PROCEDURE",
  ...
}
Copy

SELECT ステートメントを使用したクエリ

データのクエリを実行する場合は、次の形式のように、 括弧表記 を使用して列内の属性値を選択できます。

COLUMN_NAME['attribute_name']
Copy

以下の例のコードは、 DIGITS_OF_NUMBER 関数に関連するデータを分離することを目的として、前のテーブルをクエリします。

SET EVENT_TABLE_NAME='my_db.public.my_events';

SELECT
  TIMESTAMP as time,
  RESOURCE_ATTRIBUTES['snow.executable.name'] as handler_name,
  RESOURCE_ATTRIBUTES['snow.executable.type'] as handler_type,
  RECORD['name'] as event_name,
  RECORD_ATTRIBUTES as attributes
FROM
  IDENTIFIER($event_table_name)
WHERE
  RECORD_TYPE = 'SPAN_EVENT'
  AND HANDLER_NAME LIKE 'DIGITS_OF_NUMBER%';
Copy

クエリ結果

次の例の出力は、クエリの結果を示しています。

-------------------------------------------------------------------------------------------------------------------------------------------
| TIME               | HANDLER_NAME                                          | HANDLER_TYPE | EVENT_NAME              | ATTRIBUTES        |
-------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER) | FUNCTION     | test_udtf_init          |                   |
-------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER) | FUNCTION     | test_udtf_process       | { "input": "42" } |
-------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER) | FUNCTION     | test_udtf_end_partition |                   |
-------------------------------------------------------------------------------------------------------------------------------------------