我有一个Sping Boot 2.7.5应用程序运行opentelemetry-javaagent.jar
,其中包含一些自定义扩展。我现在想添加一个自定义SpanProcessor
,它将属性userId
添加到与Spring REST API的传入HTTP请求对应的所有Span。我该如何做到这一点?
在Spring中,我将通过以下方式获取经过身份验证的用户的id/信息:
SecurityContextHolder.getContext().getAuthentication();
但是我可以从javaagent中的SpanProcessor
访问Spring Security Context吗?
我试图找到一个otel-javaagent扩展访问任何SpringBeans的例子,但还没有找到。
1条答案
按热度按时间2ul0zpep1#
OpenTelemetry Java代理扩展位于隔离的
AgentClassLoader
中,这就是为什么它们无法访问Spring类的原因。我建议:
userId
添加到请求开头的SERVER范围enduser.id
中)userId
从父级复制到子级,例如: