问题标签 [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.

0 投票
1 回答
349 浏览

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 代理可以做这样的事情。)无论如何,这似乎不是开放遥测代理的一个特性。

所以,我只剩下寻找一种使用回调的方法来做到这一点,如上所述。有没有办法做到这一点?

0 投票
0 回答
138 浏览

c# - IIS 和 Windows 服务中托管的 WCF 服务的 OpenTelemetry

目前,我们有Thick Client(在客户环境中运行的WPF应用程序)和托管在云中的WCF服务(作为IIS/Windows服务应用程序)。

胖客户端从客户环境运行。跟踪与厚客户端客户面临的问题相关的问题总是很痛苦。我们正在考虑实施 OpenTelemetry 来跟踪端到端跟踪/日志 (WPF -> WCF) 并标准化日志记录。

实施 OpenTelemetry 是个好主意吗?我已经看到了很多与 .net 核心相关的示例,但没有看到 Windows 服务中托管的 WCF 服务。请分享与 WPF -> WCF 端到端跟踪相关的任何参考文章和最佳 OpenTelemetry 示例。

0 投票
1 回答
466 浏览

elasticsearch - 如何在 Elastic APM 中查看来自 OpenTelemetry 的跟踪日志

我在 Elastic APM 日志结构中接收来自 opentelemetry-collector 的日志:

“{Timestamp:HH:mm:ss} {Level:u3} trace.id={TraceId} transaction.id={SpanId}{NewLine}{Message:lj}{NewLine}{Exception}”

例子:

我尝试使用管道

我的目标是查看 Elastic APM 中的日志

在此处输入图像描述

0 投票
1 回答
311 浏览

spring-boot - 如何在 Java 中禁止打开遥测记录器

我在 Spring Boot java 应用程序中使用 Open Telemetry,并且对于每个请求,Open Telemetry 代理正在记录我想要抑制的额外日志行。由于客户端试图不断轮询 kafka 服务器状态,因此日志过多。io.opentelemetry.exporter.logging: ERROR好像没有效果。

yml 中的日志配置:

启动器命令:

任何如何抑制遥测内部日志行的建议都会有很大帮助。

0 投票
0 回答
140 浏览

spring-boot - 微服务分布式跟踪不起作用

我想在微服务中实现分布式跟踪(使用 sleuth-otel),它应该将跟踪详细信息导出到 Google 云跟踪 Api(不是 zipkin)。应用程序结构是这样的,service1 -> pubsub -> service2 -> pubsub -> service3 我尝试了以下

A)在服务1中,

  1. 我在 pom.xml 中添加了 spring-cloud-starter-sleuth依赖 项spring-cloud-sleuth-otel
  2. 我在 application.properties 添加了以下内容
  1. 在运行第一个服务时,我看到了这样的日志 INFO [,2f571809528f9daa,2983cfebab529366]

我对此的看法是,

=> 为什么我没有看到我在 application.properties 中提到的应用程序名称。还有什么我错过的吗?

=> 我也想用我自己的值改变这个默认的traceId。可能吗?如果是的话,我该怎么做?(示例代码)

B) 服务中2

  1. 我在我的 pom.xml 中添加了相同的spring-cloud-starter-sleuthspring-cloud-sleuth-otel依赖项
  2. 还在 application.properties 中添加了这些
  1. 在运行 service2 时,我得到了这样的日志 INFO [service2,,]

怀疑

=> 为什么我在这里没有在 service1 中获得相同的 traceId?(它也没有记录 spanId)

=> 如何在 service2 中获取相同的 traceId?

=>要将跟踪导出到谷歌云跟踪API,这个依赖就足够了,还是我需要添加任何配置或任何东西?

0 投票
0 回答
31 浏览

open-telemetry - 所有功能的 OpenTelemetry Dotnet 跟踪

我尝试浏览文档,但找不到答案。

我有几个 API。我希望跟踪他们经历的每一个功能。我目前有 builder.AddHttpClientInstrumentation(); builder.addAspNetCoreInstrumentation();

但那些没有提供那种级别的细节。有人可以指出我正确的方向吗?

0 投票
1 回答
447 浏览

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不支持配置中的该字段。

0 投票
0 回答
41 浏览

.net - 我们是否有任何可用于登录 .Net 应用程序的导出器?除了 AddConsoleExporter

我们是否有任何可用于登录 .Net 应用程序的导出器?现在我只看到 AddConsoleExporter 用于记录。

0 投票
1 回答
248 浏览

zipkin - OpenTelemetry 收集器缩放

我们将对遥测服务产生高负荷。我正在寻找能够扩展收集器和后端(zipkin)的解决方案

缩放 zipkin 的解决方案。看起来很简单 - 只需使用内部平衡

但是,我找不到使用多个 openTelemetry 收集器的示例。运行多个收集器实例没有问题,但是我怎么能说“myApp”来平衡beetwin它们呢?出口商没有这样的选择。

扩展此类系统的正确方法是什么? 在此处输入图像描述

0 投票
0 回答
245 浏览

node.js - 无法让一个简单的 OpenTelemetry 示例正常工作

我正在尝试使用 OpenTelementry 检测 Node.js 程序。此应用程序不使用任何 http 框架(Express 等)。它处理 Kafka 消息,需要调用 Redis 和一些 REST API(通过 Axios)。我为 OpenTelementry 创建了一个简单的测试,但无论我做什么,我都无法获得一个跨度来生成任何东西。任何帮助,将不胜感激。

在我的控制台中,我得到的只是跨度上下文和跟踪 ID 的未定义,我得到了处理我的消息。