X-Ray SDK for .NET を使用してセグメントに注釈とメタデータを追加する - AWS X-Ray

X-Ray SDK for .NET を使用してセグメントに注釈とメタデータを追加する

アプリケーションが注釈やメタデータで行うリクエストや環境や、作業に関する追加情報を記録します。X-Ray SDK が作成するセグメントまたは作成するカスタムサブセグメントに、注釈およびメタデータを追加できます。

注釈は文字列、数値、またはブール値を使用したキーと値のペアです。注釈は、フィルタ式用にインデックス付けされます。注釈を使用して、コンソールでトレースをグループ化するため、またはGetTraceSummaries API を呼び出すときに使用するデータを記録します。

メタデータは、オブジェクトとリストを含む、任意のタイプの値を持つことができるキーバリューのペアですが、フィルタ式に使用するためにインデックスは作成されません。メタデータを使用してトレースに保存する追加のデータを記録しますが、トレースの検索用に使用する必要はありません。

X-Ray SDK を使用して.NET の注釈を記録する

注釈を使用して、検索用にインデックスを作成するセグメントまたはサブセグメントに情報を記録します。

X-Ray のすべての注釈には以下が必要です。

注釈の要件
  • キー – X-Ray 注釈のキーには最大 500 文字の英数字を使用できます。スペースまたはドットやピリオド (.) 以外の記号は使用できません。

  • – X-Ray 注釈の値には最大 1,000 の Unicode 文字を使用できます。

  • 注釈の数 – トレースごとに最大 50 の注釈を使用できます。

AWS Lambda 関数の外部に注釈を記録するには
  1. AWSXRayRecorder のインスタンスを取得します。

    using Amazon.XRay.Recorder.Core; ... AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
  2. 文字列キー、およびブール値、Int32、Int64、Double、文字列値を使用して addAnnotation を呼び出します。

    recorder.AddAnnotation("mykey", "my value");

    次の例は、ドット、ブール値、数値、または文字列値を含む文字列キーを使用して putAnnotation を呼び出す方法を示しています。

    document.putAnnotation("testkey.test", "my value");
AWS Lambda 関数の内部に注釈を記録するには

Lambda ランタイム環境では Lambda 関数内のセグメントとサブセグメントの両方が管理されます。Lambda 関数内のセグメントまたはサブセグメントに注釈を追加する場合は、以下の内容を実行する必要があります。

  1. Lambda 関数内にセグメントまたはサブセグメントを作成します。

  2. セグメントまたはサブセグメントに注釈を追加します。

  3. セグメントまたはサブセグメントを終了します。

次のコード例は、Lambda 関数内のサブセグメントに注釈を追加する方法を示しています。

#Create the subsegment AWSXRayRecorder.Instance.BeginSubsegment("custom method"); #Add an annotation AWSXRayRecorder.Instance.AddAnnotation("My", "Annotation"); try { YourProcess(); #Your function } catch (Exception e) { AWSXRayRecorder.Instance.AddException(e); } finally #End the subsegment { AWSXRayRecorder.Instance.EndSubsegment(); }

X-Ray SDK は、セグメントドキュメントの annotations オブジェクトにキーと値のペアとして、注釈を記録します。同じキーで addAnnotation を 2 回呼び出すと、同じセグメントまたはサブセグメントに以前記録された値は上書きされます。

特定の値を持つ注釈のあるトレースを見つけるには、annotation[key]フィルタ式 キーワードを使用します。

X-Ray SDK for .NET

メタデータを使用して、検索内でインデックスを使用する必要がないセグメントまたはサブセグメントに情報を記録します。メタデータ値は、文字列、数値、ブール値、または JSON オブジェクトや JSON 配列にシリアル化できるその他の任意のオブジェクトになります。

メタデータを記録するには
  1. 次のコード例に示すように、AWSXRayRecorder のインスタンスを取得します。

    using Amazon.XRay.Recorder.Core; ... AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
  2. 次のコード例に示すように、文字列名前空間、文字列キー、およびオブジェクト値を使用して AddMetadata を呼び出します。

    recorder.AddMetadata("my namespace", "my key", "my value");

    次のコード例に示すように、キーと値のペアのみを使用して AddMetadata オペレーションを呼び出すこともできます。

    recorder.AddMetadata("my key", "my value");

名前空間の値を指定しない場合、X-Ray SDK は default を使用します。同じキーで AddMetadata を 2 回呼び出すと、同じセグメントまたはサブセグメントに以前記録された値は上書きされます。