

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

# AWS X-Ray SDK for Go
<a name="xray-sdk-go"></a>

**注記**  
X-Ray SDK/デーモンメンテナンス通知 – 2026 年 2 月 25 日に、 AWS X-Ray SDKs/Daemon はメンテナンスモードに移行します。 AWS は、X-Ray SDK とデーモンのリリースをセキュリティ上の問題にのみ対処するように制限します。サポートタイムラインの詳細については、「[X-Ray SDK とデーモンのサポートタイムライン](xray-sdk-daemon-timeline.md)」を参照してください。OpenTelemetry に移行することをお勧めします。OpenTelemetry への移行の詳細については、「[X-Ray による計装から OpenTelemetry による計装への移行](https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-migration.html)」を参照してください。

 は、X-Ray SDK for Go アプリケーション用のライブラリのセットです。トレースデータを作成して X-Ray デーモンに送信するためのクラスとメソッドを提供します。トレースデータには、アプリケーションによって処理される受信 HTTP リクエストに関する情報と、アプリケーションが AWS SDK、HTTP クライアント、または SQL データベースコネクタを使用してダウンストリームサービスに対して行う呼び出しが含まれます。セグメントを手動で作成し、注釈およびメタデータにデバッグ情報を追加することもできます。

`go get` を使用して [GitHub リポジトリ](https://github.com/aws/aws-xray-sdk-go)から SDK をダウンロードします。

```
$ go get -u github.com/aws/aws-xray-sdk-go/... 
```

ウェブアプリケーションの場合は、[`xray.Handler` 関数を使用](xray-sdk-go-handler.md)して受信リクエストをトレースします。メッセージハンドラーでは、トレース対象リクエストごとに「[セグメント](xray-concepts.md#xray-concepts-segments)」を作成し、レスポンスが送信されるとセグメントを完了します。セグメントが開いている間、SDK クライアントのメソッドを使用してセグメントに情報を追加し、サブセグメントを作成してダウンストリーム呼び出しをトレースできます。また、SDK では、セグメントが開いている間にアプリケーションがスローする例外を自動的に記録します。

インストルメント済みアプリケーションまたはサービスによって呼び出される Lambda 関数の場合、Lambda は [トレースヘッダー](xray-concepts.md#xray-concepts-tracingheader) を読み取り、サンプリングされたリクエストを自動的にトレースします。その他の関数については、[Lambda の設定](xray-services-lambda.md) から受信リクエストのサンプリングとトレースを行うことができます。いずれの場合も、Lambda はセグメントを作成し、X-Ray SDK に提供します。

**注記**  
Lambda では、X-Ray SDK はオプションです。関数でこれを使用しない場合、サービスマップには Lambda サービスのノードと Lambda 関数ごとに 1 つのノードが含まれます。SDK を追加することで、関数コードをインストルメントして、Lambda で記録された関数セグメントにサブセグメントを追加することができます。詳細については「[AWS Lambda および AWS X-Ray](xray-services-lambda.md)」を参照してください。

次に、[クライアントを`AWS` 関数](xray-sdk-go-awssdkclients.md)の呼び出しでラップします。このステップでは、X-Ray 計測が任意のクライアントメソッドを呼び出すようにします。[ 計測が SQL データベースを呼び出す](xray-sdk-go-sqlclients.md)ようにすることもできます。

SDK を入手したら、[レコーダーとミドルウェアを設定](xray-sdk-go-configuration.md)して､その動作をカスタマイズします。プラグインを追加して、アプリケーションを実行しているコンピューティングリソースに関するデータを記録したり、サンプリングルールを定義することでサンプリングの動作をカスタマイズしたり、アプリケーションログに SDK からの情報をより多くあるいは少なく表示するようにログレベルを設定できます。

アプリケーションが[注釈やメタデータ](xray-sdk-go-segment.md)で行うリクエストや作業に関する追加情報を記録します。注釈は、[フィルタ式](xray-console-filters.md)で使用するためにインデックス化されたシンプルなキーと値のペアで、特定のデータが含まれているトレースを検索できます。メタデータのエントリは制約が緩やかで、JSON にシリアル化できるオブジェクトと配列全体を記録できます。

**注釈とメタデータ**  
注釈およびメタデータとは、X-Ray SDK を使用してセグメントに追加する任意のテキストです。注釈は、フィルタ式用にインデックス付けされます。メタデータはインデックス化されませんが、X-Ray コンソールまたは API を使用して raw セグメントで表示できます。X-Ray への読み取りアクセスを許可した人は誰でも、このデータを表示できます。

コードに多数の計測されたクライアントがある場合、単一のリクエストセグメントには計測されたクライアントで行われた呼び出しごとに 1 個の多数のサブセグメントを含めることができます。[カスタムサブセグメント](xray-sdk-go-subsegments.md)で、クライアント呼び出しをラップすることで、サブセグメントを整理してグループできます。関数全体またはコードの任意のセクションのサブセグメントを作成し、親セグメントにすべてのレコードを記述する代わりにサブセグメントにメタデータと注釈を記録できます。

## 要件
<a name="xray-sdk-go-requirements"></a>

X-Ray SDK for Go 1.9 以降が必要です。

SDK は、コンパイル時および実行時に次のライブラリに依存します。
+ AWS SDK for Go バージョン 1.10.0 以降

これらの依存関係は SDK の `README.md` ファイルで宣言されています。

## リファレンスドキュメント
<a name="xray-sdk-go-reference"></a>

SDK をダウンロードしたら、ドキュメントをビルドしてローカルにホストし、ウェブブラウザで表示します。

**リファレンスドキュメントを表示するには**

1. `$GOPATH/src/github.com/aws/aws-xray-sdk-go` (Linux または Mac) ディレクトリまたは `%GOPATH%\src\github.com\aws\aws-xray-sdk-go` (Windows) フォルダに移動します｡

1. `godoc` コマンドを実行します。

   ```
   $ godoc -http=:6060
   ```

1. `http://localhost:6060/pkg/github.com/aws/aws-xray-sdk-go/` でブラウザを開きます。