我已经配置了我的跟踪提供程序、仪器和 OTLP Exporter,它们在 Elastic Cloud Observability 仪表板中运行良好。
设置服务名称很容易,但似乎没有通用的API来设置环境名称。
因此,当我单击“跟踪”时,我看到的只是“全部”或“未定义”。
仔细浏览有关开放遥测的 Elastic Search 文档后,我发现完全没有关于如何执行此操作的信息!?
-编辑 - 最近 Elastic 允许 W3C 将 Elastics 通用架构用于......一切。所以请参考未来
您需要与 OTEL Exporter 一起传递的属性如下
service.environment
*deployment.environment
这是可以为您解决问题的代码片段。
var otelAttributes = new List<KeyValuePair<string, object>>();
otelAttributes.Add(new KeyValuePair<string, object>("deployment.environment", environmentName));
然后您需要在ResourceBuilder中添加属性
sdkSetup
.AddSource("*")
.SetSampler(new TraceIdRatioBasedSampler(samplerRateValue))
.SetResourceBuilder(
ResourceBuilder
CreateDefault()
.AddService(ResourceNameHelper.ServiceName)
.AddAttributes(otelAttributes) // <-- Over Here
.AddTelemetrySdk()
)
现在环境将用您的所有跟踪、指标和日志进行标记