Jaeger プラットフォームから Simple Log Service にトレースデータを送信するには、データを直接転送するか、OpenTelemetry Collector を使用します。
前提条件
Trace インスタンスを作成する必要があります。詳細については、「Trace インスタンスの作成」をご参照ください。
直接転送
Jaeger プロトコルを使用してトレースデータを Simple Log Service に直接送信するには、Jaeger プラットフォームでエンドポイントと認証情報を設定する必要があります。次の情報が必要です。
エンドポイント情報
HTTPS プロトコルのエンドポイントは ${endpoint}/jaeger/api/traces です。例: https://test-project.cn-hangzhou-intranet.log.aliyuncs.com/jaeger/api/traces。
gRPC プロトコルのエンドポイントは ${endpoint}:10010 です。例: test-project.cn-hangzhou-intranet.log.aliyuncs.com:10010。
警告セキュリティ上の理由から、gRPC プロトコルを使用する場合は Transport Layer Security (TLS) を有効にしてください。
${endpoint} を実際のエンドポイントに置き換えてください。次の表で、この変数について説明します。
表 1. 変数の説明
変数
説明
例
${endpoint}
Simple Log Service プロジェクトのエンドポイント。フォーマットは ${project}.${region-endpoint} です。このフォーマットでは、
${project} は Simple Log Service プロジェクトの名前です。
${region-endpoint} は Simple Log Service プロジェクトが所在するリージョンのエンドポイントです。インターネット、クラシックネットワーク、VPC のエンドポイントがサポートされています。詳細については、「エンドポイント」をご参照ください。
test-project.cn-hangzhou.log.aliyuncs.com
認証情報
gRPC または HTTPS プロトコルのヘッダー、または Jaeger プロトコルのタグフィールドで認証情報を設定できます。次の表に、必須フィールドを示します。
Jaeger タグ
gRPC/HTTPS ヘッダーキー
説明
例
sls.otel.project
x-sls-otel-project
Simple Log Service プロジェクト。
test-project
sls.otel.instanceid
x-sls-otel-instance-id
Trace サービスインスタンスの ID。詳細については、「Trace インスタンスの作成」をご参照ください。
test-traces
sls.otel.akid
x-sls-otel-ak-id
Alibaba Cloud アカウントの AccessKey ID。
Simple Log Service プロジェクトに対する書き込み権限のみを持つ Resource Access Management (RAM) ユーザーの AccessKey ペア (AccessKey ID と AccessKey Secret) を使用します。RAM ユーザーに指定されたプロジェクトへのデータ書き込み権限を付与する方法の詳細については、「承認」をご参照ください。AccessKey ペアの取得方法の詳細については、「AccessKey ペア」をご参照ください。
なし
sls.otel.aksecret
x-sls-otel-ak-secret
Alibaba Cloud アカウントの AccessKey Secret。
Simple Log Service プロジェクトに対する書き込み権限のみを持つ RAM ユーザーの AccessKey ペアを使用します。
なし
OpenTelemetry Collector を使用したデータの転送
OpenTelemetry Collector をインストールします。
OpenTelemetry Collector を設定します。
config.yaml ファイルを作成します。
次のコードを config.yaml ファイルに追加します。
要件に基づいて、次のコードの変数を置き換えます。変数の詳細については、「変数の説明」をご参照ください。
receivers: jaeger: protocols: grpc: endpoint: 0.0.0.0:6831 thrift_binary: endpoint: 0.0.0.0:6832 thrift_compact: endpoint: 0.0.0.0:6833 thrift_http: endpoint: 0.0.0.0:6834 exporters: logging/detail: loglevel: debug alibabacloud_logservice/sls-traces: endpoint: "${endpoint}" project: "${project}" logstore: "${instance}-traces" access_key_id: "${access-key-id}" access_key_secret: "${access-key-secret}" service: pipelines: traces: receivers: [jaeger] # レシーバーを jaeger に設定します。 exporters: [alibabacloud_logservice/sls-traces] # エクスポーターを alibabacloud_logservice/sls-traces に設定します。 # デバッグ用 #exporters: [logging/detail,alibabacloud_logservice/sls-traces]表 2. 変数の説明
変数
説明
例
${endpoint}
Simple Log Service プロジェクトのエンドポイント。フォーマットは ${region-endpoint} です。${region-endpoint} は Simple Log Service プロジェクトが所在するリージョンのエンドポイントです。インターネット、クラシックネットワーク、VPC のエンドポイントがサポートされています。詳細については、「エンドポイント」をご参照ください。
cn-hangzhou.log.aliyuncs.com:10010
${project}
Simple Log Service プロジェクトの名前。
test-project
${instance}
Trace サービスインスタンスの ID。詳細については、「Trace インスタンスの作成」をご参照ください。
test-traces
${access-key-id}
Alibaba Cloud アカウントの AccessKey ID。
Simple Log Service プロジェクトに対する書き込み権限のみを持つ RAM ユーザーの AccessKey ペアを使用します。RAM ユーザーに指定されたプロジェクトへのデータ書き込み権限を付与する方法の詳細については、「承認」をご参照ください。AccessKey ペアの取得方法の詳細については、「AccessKey ペア」をご参照ください。
なし
${access-key-secret}
Alibaba Cloud アカウントの AccessKey Secret。
Simple Log Service プロジェクトに対する書き込み権限のみを持つ RAM ユーザーの AccessKey ペアを使用します。
なし
OpenTelemetry Collector を起動します。
./otelcontribcol_linux_amd64 --config="./config.yaml"
Jaeger を設定します。
Jaeger の出力エンドポイントを OpenTelemetry Collector のリスナーアドレスに変更します。たとえば、OpenTelemetry Collector のアドレスが ${collector-host} の場合、Jaeger の出力アドレスを ${collector-host}:${port}/api/traces に設定します。
説明OpenTelemetry Collector が解析エラーを報告した場合、Jaeger Receiver の 4 つの受信モードを切り替えることで問題をトラブルシューティングできます。