X-Ray SDK for Goを使用してカスタムサブセグメントを生成する - AWS X-Ray

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

X-Ray SDK for Goを使用してカスタムサブセグメントを生成する

注記

X-Ray SDK/デーモンメンテナンス通知 – 2026 年 2 月 25 日、 AWS X-Ray SDKsデーモンはメンテナンスモードに移行します。 AWS では、X-Ray SDK とデーモンのリリースがセキュリティの問題にのみ対処するように制限されます。サポートタイムラインの詳細については、「X-Ray SDK とデーモンのサポートタイムライン」を参照してください。OpenTelemetry に移行することをお勧めします。OpenTelemetry への移行の詳細については、「X-Ray による計装から OpenTelemetry による計装への移行」を参照してください。

サブセグメントはリクエストを処理するために行われた作業の詳細を含んだトレースのセグメントを拡張します。計測済みクライアント内で呼び出しを行うたびに、X-Ray SDK によってサブセグメントに生成された情報が記録されます。追加のサブセグメントを作成して、他のサブセグメントをグループ化したり、コードセクションのパフォーマンスを測定したり、注釈とメタデータを記録したりできます。

Capture メソッドを使用して、関数の周囲にサブセグメントを作成します。

例 main.go – カスタムサブセグメント
func criticalSection(ctx context.Context) { //this is an example of a subsegment xray.Capture(ctx, "GameModel.saveGame", func(ctx1 context.Context) error { var err error section.Lock() result := someLockedResource.Go() section.Unlock() xray.AddMetadata(ctx1, "ResourceResult", result) })

次のスクリーンショットは、アプリケーション saveGame のトレースに Scorekeep サブセグメントがどのように表示されるかの例を示しています。

Trace timeline showing Scorekeep application segments, including DynamoDB operations and GameModel saveGame subsegment.