插桩配置
本页介绍适用于多个插桩的通用设置。
对等服务名称
对等服务名称是与之建立连接的远程服务的名称。它对应于本地服务的资源中的service.name
。
System property:
otel.instrumentation.common.peer-service-mapping
Environment variable:
OTEL_INSTRUMENTATION_COMMON_PEER_SERVICE_MAPPING
Description: 用于将主机名或 IP 地址映射为对等服务, 格式为以逗号分隔的**<主机名或 IP>=<用户指定名称>**键值对列表。 当某个 Span 的主机名或 IP 地址与映射关系匹配时,对等服务会作为一个属性添加到该 Span 中。
例如,如果设置为以下内容:
1.2.3.4=cats-service,dogs-abcdef123.serverlessapis.com=dogs-api
然后,发往 1.2.3.4
的请求会带有 peer.service
属性,其值为 cats-service
;
而发往 dogs-abcdef123.serverlessapis.com
的请求会带有 peer.service
属性,其值为 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:443
的请求会带有 peer.service
属性,其值为 cats-service
;
而发往 dogs-abcdef123.serverlessapis.com:80/api/v1
的请求会带有 peer.service
属性,其值为 dogs-api
。
数据库语句清洗
代理会在设置 db.statement
语义属性之前,对所有数据库查询以及其他语句进行清洗。
查询语句中的所有值(字符串、数字)都会被替换为问号(?
)。
注意:JDBC 绑定参数不会被捕获到 db.statement
中。
如果你希望捕获绑定参数,请参阅相关问题。
例如:
- SQL 查询
SELECT a from b where password="secret"
将在导出的 Span 中显示为SELECT a from b where password=?
; - Redis 命令
HSET map password "secret"
将在导出的 Span 中显示为HSET map password ?
。
此行为在所有数据库插桩中默认启用。使用以下属性可将其禁用:
System property:
otel.instrumentation.common.db-statement-sanitizer.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_DB_STATEMENT_SANITIZER_ENABLED
Default: true
Description:
启用数据库语句清洗功能
在消息传递插桩中采集消费者消息接收遥测数据
你可以配置代理,在消息传递插桩中采集消费者消息接收遥测数据。使用以下属性来启用该功能:
System property:
otel.instrumentation.messaging.experimental.receive-telemetry.enabled
Environment variable:
OTEL_INSTRUMENTATION_MESSAGING_EXPERIMENTAL_RECEIVE_TELEMETRY_ENABLED
Default: false
Description:
启用消费者消息接收遥测功能
需要注意的是,这会导致消费者端启动一个新的链路,仅通过一个 Span 链接将其与生产者的追踪关联起来。
注意:表中列出的属性、环境变量名称仍处于实验阶段,可能会发生变化。
采集终端用户属性
你可以配置代理,
从 JavaEE/JakartaEE Servlet 和 Spring Security 等插桩库中采集通用身份属性(enduser.id
、enduser.role
、enduser.scope
)。
注意:鉴于所涉及数据的敏感性,此功能默认关闭,但允许对特定属性进行选择性激活。 在开启数据采集前,你必须仔细评估每个属性的隐私影响。
System property:
otel.instrumentation.common.enduser.id.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_ENDUSER_ID_ENABLED
Default: false
Description:
决定是否采集 enduser.id
语义属性。
System property:
otel.instrumentation.common.enduser.role.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_ENDUSER_ROLE_ENABLED
Default: false
Description:
决定是否采集 enduser.role
语义属性。
System property:
otel.instrumentation.common.enduser.scope.enabled
Environment variable:
OTEL_INSTRUMENTATION_COMMON_ENDUSER_SCOPE_ENABLED
Default: 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_PREFIX
Default: 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_PREFIX
Default: SCOPE_
Description:
用于识别要采集到 enduser.scope
语义属性中的权限的前缀。
Feedback
Was this page helpful?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!