X-Ray SDK for Go を使用してダウンストリーム HTTP ウェブサービスの呼び出しをトレースする - AWS X-Ray

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

X-Ray SDK for Go を使用してダウンストリーム HTTP ウェブサービスの呼び出しをトレースする

注記

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

アプリケーションがマイクロサービスまたはパブリック HTTP API を呼び出すときは、次の例に示すように、xray.Client を使用してこれらの呼び出しを Go アプリケーションのサブセグメントとして計測できます。次の例に示すように、http-client は HTTP クライアントです。

クライアントは、提供された HTTP クライアントのシャローコピーを作成します。これは http.DefaultClient のデフォルトの xray.RoundTripper でラウンドトリップされます。

main.go – HTTP クライアント
myClient := xray.Client(http-client)
main.go — ctxhttp ライブラリを使用したダウンストリームの HTTP 呼び出しのトレース

次の例では、ctxhttp ライブラリを使用して発信 HTTP コールをインストルメントします。xray.Clientctxアップストリームコールから渡すことができます。これにより、既存のセグメントコンテキストが使用されることが保証されます。たとえば、X-Ray では Lambda 関数内に新しいセグメントを作成できないので、既存の Lambda セグメントコンテキストを使用する必要があります。

resp, err := ctxhttp.Get(ctx, xray.Client(nil), url)