JavaScript でのトレースイベントの出力

Snowflake JavaScript APIsnowflake クラスを使用して、 JavaScript で記述された関数またはプロシージャハンドラーからトレースイベントを出力できます。JavaScript API は、 JavaScript ハンドラーコードですでに使用可能です。

トレースイベントを出力する前に、必要なデータがイベントテーブルに格納されるようにトレースレベルが設定されていることを確認してください。詳細については、 トレースレベルの設定 をご参照ください。

注釈

トレースイベントの出力を開始する前に、イベントテーブルを設定する必要があります。詳細については、 イベントテーブルの設定 をご参照ください。

イベントテーブルで SELECT コマンドを実行すると、格納されたトレースイベントデータにアクセスできます。詳細については、 トレースデータへのアクセス をご参照ください。

Snowflakeでのログの設定とメッセージの取得に関する一般的な情報については、 関数とプロシージャのイベントをトレースする をご参照ください。

注釈

トレースイベントを追加する際に留意すべきガイドラインについては、 トレースイベントを追加するための一般的なガイドライン をご参照ください。

トレースイベントの追加

トレースイベントを追加するには、 snowflake.addEvent 関数を呼び出してイベントの名前を渡します。オプションで、属性(キーと値のペア)をイベントに関連付けることもできます。

addEvent メソッドは次の形式で使用できます。

snowflake.addEvent(name [, { key:value [, key:value] } ] );
Copy

次の例のハンドラーコードは、2つのイベント name_aname_b を追加します。 name_b を使用すると、コードは2つの属性 scorepass も追加します。

create procedure PI_JS()
  returns double
  language javascript
  as
  $$
    snowflake.addEvent('name_a');  // add an event without attributes
    snowflake.addEvent('name_b', {'score': 89, 'pass': true});
    return 3.14;
  $$
  ;
Copy

これらの属性を設定すると、イベントテーブルに2つの行が作成され、それぞれの RECORD 列に異なる値が含まれます。

{
  "name": "name_a"
}
Copy
{
  "name": "name_b"
}
Copy

name_b イベント行には、行の RECORD_ATTRIBUTES 列に次の属性が含まれています。

{
  "score": 89,
  "pass": true
}
Copy

スパン属性の追加

snowflake.setSpanAttribute 関数を呼び出すと、スパンに関連付けられた属性(キーと値のペア)を設定できます。

setSpanAttribute 関数は次の形式で使用できます。

snowflake.setSpanAttribute(key, value);
Copy

スパンの詳細については、 Snowflakeがトレースイベントを表す方法 をご参照ください。

次の例のコードは4つの属性を作成し、それらの値を設定します。

// Setting span attributes.
snowflake.setSpanAttribute("example.boolean", true);
snowflake.setSpanAttribute("example.long", 2L);
snowflake.setSpanAttribute("example.double", 2.5);
snowflake.setSpanAttribute("example.string", "testAttribute");
Copy

これらの属性を設定すると、イベントテーブルの RECORD_ATTRIBUTES 列が次のようになります。

{
  "example.boolean": true,
  "example.long": 2,
  "example.double": 2.5,
  "example.string": "testAttribute"
}
Copy