如何在 DotNet C# 中使用开放遥测设置 Elastic Cloud 可观测性环境?

问题描述 投票:0回答:1

我已经配置了我的跟踪提供程序、仪器和 OTLP Exporter,它们在 Elastic Cloud Observability 仪表板中运行良好。

设置服务名称很容易,但似乎没有通用的API来设置环境名称。

因此,当我单击“跟踪”时,我看到的只是“全部”或“未定义”。

.net elastic-stack open-telemetry
1个回答
2
投票

仔细浏览有关开放遥测的 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()
  )

现在环境将用您的所有跟踪、指标和日志进行标记

© www.soinside.com 2019 - 2024. All rights reserved.