如果我理解正确的话,我应该能够使用一个opentelemetry Resource来将自定义属性附加到传出Span。
Resource resource = Resource.create(Attributes.builder().put("key", "value").build());
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder().setResource(resource).build;
问题:
如何将该TracerProvider设置为应用程序的默认提供程序?
如果我这样做,它会将该属性添加到附加到Spans的默认属性集,还是替换它们?
另外,如果我这样做,我是否仍然能够使用Span.current()
语法来访问当前Span,或者我是否需要通过Tracer访问当前Span?
1条答案
按热度按时间bvjveswy1#
如何将该TracerProvider设置为应用程序的默认提供程序?
这取决于您的应用程序如何访问TracerProvider,以及您是否使用otel java代理:
配置SDK后,您需要确保工具正在访问它。otel java代理安装的SDK由它安装的所有安装使用。如果不使用代理,您可以手动将SDK传递到相关工具。如果手动传递SDK不可行,您可以使用GlobalOpenTelemetry,它具有用于设置/获取OpenTelemetry示例的静态访问器,但不建议这样做。
您还应该考虑资源是否是属性的适当位置。资源附加到SDK导出的所有记录,但通常保留用于描述遥测源的属性。如果属性描述记录本身,请考虑添加自定义SpanProcessor以将属性添加到各个span。