AWS X-Ray
開発者ガイド

AWS X-Ray デーモンを設定する

コマンドラインオプションまたは設定ファイルを使用して、X-Ray デーモンの動作をカスタマイズできます。ほとんどのオプションは両方の方法を使用して利用できますが、一部は設定ファイルのみを使用でき、一部はコマンドラインのみを使用できます。

開始するには、-n または --region のみが必要です。デーモンがトレースデータを X-Ray に送信するために使用するリージョンを設定するために使用します。

~/xray-daemon$ ./xray -n us-east-2

デーモンを、Amazon EC2 ではなく、ローカルで実行している場合、-o オプションを追加すると、デーモンをより迅速に開始できるように、インスタンスプロファイルの認証情報のチェックをスキップできます。

~/xray-daemon$ ./xray -o -n us-east-2

残りのコマンドラインオプションを使用して、ロギングの設定、別のポートでのリッスン、デーモンが使用できるメモリ量の制限、別のアカウントにトレースデータを送信するロールの割り当てができます。

設定ファイルをデーモンに渡して、詳細な設定オプションにアクセスしたり、X-Ray への同時呼び出し数を制限したり、ログローテーションを無効にしたり、プロキシにトラフィックを送信したりすることができます。

サポートされている環境変数

X-Ray デーモンは次の環境変数をサポートしています。

  • AWS_REGION – X-Ray サービスエンドポイントの AWS リージョンを指定します。

  • HTTPS_PROXY – セグメントをアップロードするデーモンのプロキシアドレスを指定します。これは、DNS ドメイン名または IP アドレス、あるいはプロキシサーバーで使用されているポート番号のいずれかです。

コマンドラインオプションを使用する

ローカルで実行するか、またはユーザーデータスクリプトを使用して、これらのオプションをデーモンに渡します。

コマンドラインオプション

  • -b--bind – 別の UDP ポートでセグメントドキュメントをリッスンします。

    --bind "127.0.0.1:3000"

    デフォルト – 2000

  • -t--bind-tcp – 別の TCP ポートで X-Ray サービスへの呼び出しをリッスンします。

    -bind-tcp "127.0.0.1:3000"

    デフォルト – 2000

  • -c--config – 指定されたパスから設定ファイルをロードします。

    --config "/home/ec2-user/xray-daemon.yaml"
  • -f--log-file – 指定されたファイルパスにログを出力します。

    --log-file "/var/log/xray-daemon.log"
  • -l--log-level – ログレベルを dev、debug、info、warn、error、prod (詳細な順) から指定します。

    --log-level warn

    デフォルト – prod

  • -m--buffer-memory – バッファが使用できるメモリの量をメガバイト単位で変更します (最小値 3)。

    --buffer-memory 50

    デフォルト – 使用可能なメモリ総量の 1%

  • -o--local-mode – EC2 インスタンスのメタデータをチェックしません。

  • -r--role-arn – 指定した IAM ロールで、別のアカウントにセグメントをアップロードできるようにします。

    --role-arn "arn:aws:iam::123456789012:role/xray-cross-account"
  • -a--resource-arn – デーモンが実行される AWS リソースの Amazon リソースネーム (ARN)。

  • -p--proxy-address – セグメントをプロキシ経由で AWS X-Ray にアップロードします。

  • -n--region – 特定のリージョンの X-Ray サービスにセグメントを送信します。

  • -v--version – AWS X-Ray デーモンのバージョンを表示します。

  • -h--help – ヘルプ画面を表示します。

設定ファイルを使用する

YAML 形式のファイルを使用して、デーモンを設定することもできます。-c オプションを使用して、設定ファイルをデーモンに渡します。

~$ ./xray -c ~/xray-daemon.yaml

設定ファイルのオプション

  • TotalBufferSizeMB – 最大バッファサイズ (MB) (最小値 3)。ホストメモリの 1% を使用するには、0 を選択します。

  • Concurrency – セグメントドキュメントをアップロードするために AWS X-Ray を同時呼び出しできる最大数。

  • Region – 特定のリージョンの AWS X-Ray サービスにセグメントを送信します。

  • Socket – デーモンのバインディングを設定します。

    • UDPAddress – デーモンがリッスンするポートを変更します。

    • TCPAddress – 別の TCP ポートで X-Ray サービスへの呼び出しをリッスンします。

  • Logging – ログ記録の動作を設定します。

    • LogRotationfalse に設定してログローテーションを無効にします。

    • LogLevel – ログレベルを変更します。詳細なものから順に、devdebuginfowarnerrorprod (デフォルト) です。

    • LogPath – 指定されたファイルパスにログを出力します。

  • LocalMode – EC2 インスタンスのメタデータのチェックをスキップするには true に設定します。

  • ResourceARN – デーモンが実行される AWS リソースの Amazon リソースネーム (ARN)。

  • RoleARN – 指定した IAM ロールで、別のアカウントにセグメントをアップロードできるようにします。

  • ProxyAddress – セグメントをプロキシ経由で AWS X-Ray にアップロードします。

  • Endpoint – デーモンがセグメントドキュメントを送信する X-Ray サービスエンドポイントを変更します。

  • NoVerifySSL – TLS 証明書認証を無効にします。

  • Version – デーモンの設定ファイル形式のバージョン。

例 xray-daemon.yaml

この設定ファイルでは、デーモンのリスニングポートを 3000 に変更し、インスタンスメタデータの確認をオフにして、セグメントをアップロードするために使用するロールを設定し、リージョンおよびログ作成オプションを変更します。

Socket: UDPAddress: "127.0.0.1:3000" TCPAddress: "127.0.0.1:3000" Region: "us-west-2" Logging: LogLevel: "warn" LogPath: "/var/log/xray-daemon.log" LocalMode: true RoleARN: "arn:aws:iam::123456789012:role/xray-cross-account" Version: 2