问题标签 [open-telemetry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用 OTEL Java 代理,如何在不使用 @WithSpan 的情况下创建新的上下文
代理(版本 0.17.0 和 1.0.1)是向我的 Java 应用程序添加跟踪信息的opentelemetry-javaagent-all
起点。自动仪表工作得很好。
我的某些应用程序无法自动检测。对于应用程序的这一部分,我首先@WithSpan
在代码中的有趣位置添加注释。
@WithSpan
我现在通过简单的注释达到了看似可能的极限。但是,我的应用程序底层的框架允许我注册要在某些点调用的回调——例如,我可以提供在客户端连接/断开连接时通知的处理程序。
我认为我需要的是在Foo.onConnect()
调用时启动一个新的 Span,并将其设置为Span
与每个请求对应的 s 的父级。
其他想法 - 没有成功:
1 - 显而易见的解决方案是向@WithSpan
底层框架添加注释。由于各种原因,这不会是一个切实可行的前进方向。
2 - 下一个选择可能是寻找一种方法来告诉 javaagent 我的底层框架中的方法。(New Relic 代理可以做这样的事情。)无论如何,这似乎不是开放遥测代理的一个特性。
所以,我只剩下寻找一种使用回调的方法来做到这一点,如上所述。有没有办法做到这一点?
c# - IIS 和 Windows 服务中托管的 WCF 服务的 OpenTelemetry
目前,我们有Thick Client(在客户环境中运行的WPF应用程序)和托管在云中的WCF服务(作为IIS/Windows服务应用程序)。
胖客户端从客户环境运行。跟踪与厚客户端客户面临的问题相关的问题总是很痛苦。我们正在考虑实施 OpenTelemetry 来跟踪端到端跟踪/日志 (WPF -> WCF) 并标准化日志记录。
实施 OpenTelemetry 是个好主意吗?我已经看到了很多与 .net 核心相关的示例,但没有看到 Windows 服务中托管的 WCF 服务。请分享与 WPF -> WCF 端到端跟踪相关的任何参考文章和最佳 OpenTelemetry 示例。
spring-boot - 如何在 Java 中禁止打开遥测记录器
我在 Spring Boot java 应用程序中使用 Open Telemetry,并且对于每个请求,Open Telemetry 代理正在记录我想要抑制的额外日志行。由于客户端试图不断轮询 kafka 服务器状态,因此日志过多。io.opentelemetry.exporter.logging: ERROR
好像没有效果。
yml 中的日志配置:
启动器命令:
任何如何抑制遥测内部日志行的建议都会有很大帮助。
spring-boot - 微服务分布式跟踪不起作用
我想在微服务中实现分布式跟踪(使用 sleuth-otel),它应该将跟踪详细信息导出到 Google 云跟踪 Api(不是 zipkin)。应用程序结构是这样的,service1 -> pubsub -> service2 -> pubsub -> service3 我尝试了以下
A)在服务1中,
- 我在 pom.xml 中添加了
spring-cloud-starter-sleuth
依赖 项spring-cloud-sleuth-otel
- 我在 application.properties 添加了以下内容
- 在运行第一个服务时,我看到了这样的日志
INFO [,2f571809528f9daa,2983cfebab529366]
我对此的看法是,
=> 为什么我没有看到我在 application.properties 中提到的应用程序名称。还有什么我错过的吗?
=> 我也想用我自己的值改变这个默认的traceId。可能吗?如果是的话,我该怎么做?(示例代码)
B) 服务中2
- 我在我的 pom.xml 中添加了相同的
spring-cloud-starter-sleuth
和spring-cloud-sleuth-otel
依赖项 - 还在 application.properties 中添加了这些
- 在运行 service2 时,我得到了这样的日志
INFO [service2,,]
怀疑
=> 为什么我在这里没有在 service1 中获得相同的 traceId?(它也没有记录 spanId)
=> 如何在 service2 中获取相同的 traceId?
=>要将跟踪导出到谷歌云跟踪API,这个依赖就足够了,还是我需要添加任何配置或任何东西?
open-telemetry - 所有功能的 OpenTelemetry Dotnet 跟踪
我尝试浏览文档,但找不到答案。
我有几个 API。我希望跟踪他们经历的每一个功能。我目前有 builder.AddHttpClientInstrumentation(); builder.addAspNetCoreInstrumentation();
但那些没有提供那种级别的细节。有人可以指出我正确的方向吗?
go - 如何区分不同服务的指标
我正在玩 OpenTelemetry 并有这样的设置:
Golang、docker-compose、3 个服务、1 个独立的开放遥测收集器、1 个 Prometheus。
我将一些系统指标收集到一个独立的开放遥测收集器。这些指标是从 3 个不同的服务中收集的,并且指标具有相同的名称。然后,Prometheus 从开放遥测收集器中获取数据。问题是我无法区分 Prometheus 中不同服务的指标,因为所有指标都具有相同的“实例”值,它等于 open-telemetry-collector 的主机。
我知道我可以将带有服务名称的标签添加到指标记录中,然后通过标签区分指标,但我正在寻找另一种解决方案,因为并非总是可以将标签添加到每个指标。也许,像 http-middleware 之类的东西,但对于指标,或者可能是基础设施级别的东西。
服务是用 Golang 编写的,但我很高兴看到任何其他语言的解决方案。
otel-收集器配置:
普罗米修斯配置:
码头工人撰写:
更新 1.
我发现 exporter-config 添加了一些新参数https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/exporterhelper。其中一个是适合我的:resource_to_telemetry_conversion
。但正如我所见prometheusexporter
并且prometheusremotewriteexporter
不支持配置中的该字段。
.net - 我们是否有任何可用于登录 .Net 应用程序的导出器?除了 AddConsoleExporter
我们是否有任何可用于登录 .Net 应用程序的导出器?现在我只看到 AddConsoleExporter 用于记录。
zipkin - OpenTelemetry 收集器缩放
我们将对遥测服务产生高负荷。我正在寻找能够扩展收集器和后端(zipkin)的解决方案
有缩放 zipkin 的解决方案。看起来很简单 - 只需使用内部平衡
但是,我找不到使用多个 openTelemetry 收集器的示例。运行多个收集器实例没有问题,但是我怎么能说“myApp”来平衡beetwin它们呢?出口商没有这样的选择。
node.js - 无法让一个简单的 OpenTelemetry 示例正常工作
我正在尝试使用 OpenTelementry 检测 Node.js 程序。此应用程序不使用任何 http 框架(Express 等)。它处理 Kafka 消息,需要调用 Redis 和一些 REST API(通过 Axios)。我为 OpenTelementry 创建了一个简单的测试,但无论我做什么,我都无法获得一个跨度来生成任何东西。任何帮助,将不胜感激。
在我的控制台中,我得到的只是跨度上下文和跟踪 ID 的未定义,我得到了处理我的消息。