計装の設定
このページでは、複数の計装に同時に適用される共通設定について説明します。
ピアサービス名
ピアサービス名は、接続先のリモートサービスの名前です。
ローカルサービスのリソースにおける service.name に対応します。
System property:
otel.instrumentation.common.peer-service-mapping
Environment variable:
OTEL_INSTRUMENTATION_COMMON_PEER_SERVICE_MAPPINGDescription:
ホスト名または IP アドレスからピアサービスへのマッピングを、<host_or_ip>=<user_assigned_name> のペアをカンマ区切りのリストとして指定するために使用します。
ホストまたは IP アドレスがマッピングに一致するスパンに、ピアサービスが属性として追加されます。
たとえば、以下のように設定した場合:
1.2.3.4=cats-service,dogs-abcdef123.serverlessapis.com=dogs-api
1.2.3.4 へのリクエストには peer.service 属性として cats-service が設定され、dogs-abcdef123.serverlessapis.com へのリクエストには dogs-api という属性が設定されます。
Java エージェントバージョン 1.31.0 以降では、peer.service を定義するためにポートとパスを指定することも可能です。
たとえば、以下のように設定した場合:
1.2.3.4:443=cats-service,dogs-abcdef123.serverlessapis.com:80/api=dogs-api
1.2.3.4 へのリクエストには peer.service 属性の上書きはありませんが、1.2.3.4:443 には peer.service として cats-service が設定され、dogs-abcdef123.serverlessapis.com:80/api/v1 へのリクエストには dogs-api という属性が設定されます。
DB ステートメントのサニタイズ
エージェントは、db.statement セマンティック属性を設定する前に、すべてのデータベースクエリ/ステートメントをサニタイズします。
クエリ文字列内のすべての値(文字列、数値)は疑問符(?)に置き換えられます。
注意:JDBC バインドパラメーターは db.statement にキャプチャされません。
バインドパラメーターのキャプチャについては、対応するイシューを参照してください。
例:
- SQL クエリ
SELECT a from b where password="secret"は、エクスポートされたスパンではSELECT a from b where password=?として表示されます。 - Redis コマンド
HSET map password "secret"は、エクスポートされたスパンではHSET map password ?として表示されます。
この動作はすべてのデータベース計装でデフォルトで有効になっています。 無効にするには、以下のプロパティを使用してください:
System property:
otel.instrumentation.common.db-statement-sanitizer.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_DB_STATEMENT_SANITIZER_ENABLEDDefault: true
Description:
DB ステートメントのサニタイズを有効にします。
メッセージング計装におけるコンシューマーメッセージ受信テレメトリーのキャプチャ
メッセージング計装でコンシューマーメッセージ受信テレメトリーをキャプチャするようにエージェントを設定できます。 有効にするには、以下のプロパティを使用してください:
System property:
otel.instrumentation.messaging.experimental.receive-telemetry.enabled
Environment variable:
OTEL_INSTRUMENTATION_MESSAGING_EXPERIMENTAL_RECEIVE_TELEMETRY_ENABLEDDefault: false
Description:
コンシューマーメッセージ受信テレメトリーを有効にします。
これにより、コンシューマー側で新しいトレースが開始され、プロデューサーのトレースとはスパンリンクのみで接続されることに注意してください。
Note: テーブルに記載されているプロパティ/環境変数名はまだ実験的なものであり、変更される可能性があります。
エンドユーザー属性のキャプチャ
JavaEE/JakartaEE Servlet や Spring Security などの計装ライブラリから、一般的な ID 属性(enduser.id、enduser.role、enduser.scope)をキャプチャするようにエージェントを設定できます。
Note: 関係するデータの機密性を考慮して、この機能はデフォルトで無効になっていますが、特定の属性に対して選択的に有効化できます。 データの収集を有効にする前に、各属性のプライバシーへの影響を慎重に評価する必要があります。
System property:
otel.instrumentation.common.enduser.id.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_ENDUSER_ID_ENABLEDDefault: false
Description:
enduser.id セマンティック属性をキャプチャするかどうかを決定します。
System property:
otel.instrumentation.common.enduser.role.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_ENDUSER_ROLE_ENABLEDDefault: false
Description:
enduser.role セマンティック属性をキャプチャするかどうかを決定します。
System property:
otel.instrumentation.common.enduser.scope.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_ENDUSER_SCOPE_ENABLEDDefault: false
Description:
enduser.scope セマンティック属性をキャプチャするかどうかを決定します。
Spring Security
カスタムの付与された権限の接頭辞を使用する Spring Security ユーザーは、以下のプロパティを使用して enduser.* 属性値からそれらの接頭辞を除去し、実際のロール名とスコープ名をより適切に表現できます:
System property:
otel.instrumentation.spring-security.enduser.role.granted-authority-prefix
Environment variable:
OTEL_INSTRUMENTATION_SPRING_SECURITY_ENDUSER_ROLE_GRANTED_AUTHORITY_PREFIXDefault: ROLE_
Description:
enduser.role セマンティック属性にキャプチャするロールを識別する、付与された権限の接頭辞。
System property:
otel.instrumentation.spring-security.enduser.scope.granted-authority-prefix
Environment variable:
OTEL_INSTRUMENTATION_SPRING_SECURITY_ENDUSER_SCOPE_GRANTED_AUTHORITY_PREFIXDefault: SCOPE_
Description:
enduser.scopes セマンティック属性にキャプチャするスコープを識別する、付与された権限の接頭辞。
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!