问题标签 [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 回答
119 浏览

asp.net-core - dotnet-monitor 和 OpenTelemetry?

我正在学习 OpenTelemetry,我想知道 dotnet-monitor 如何与 OpenTelemetry (Meter) 连接。这些东西是否以某种方式连接起来,或者 dotnet-monitor 只是不使用 OpenTelemetry 标准(API、SDK 和出口商)的自定义 MS 工具。

0 投票
1 回答
449 浏览

go - 更新 opentelemetry prometheus 导出器中的标签

在运行 opentelemetry prometheus 导出器的指标示例时,得到了预期的结果

之前在 []label.KeyValue 中添加了几个虚拟值,所以我得到了指标,但我打算在指标中获取方法名称和主机名。所以我添加了一个匿名函数并在变量中分配了返回值。正如您在下面的源代码中看到的。

但是出现错误

谁能帮我解决这个问题。

0 投票
2 回答
295 浏览

metrics - Appdynamics 是否有任何 OpenTelemetry 导出器?

我正在做一些概念证明,以便在不安装 Appdynamics 代理的情况下将跟踪和指标摄取到 AppDynamics。我有一个应用程序发出普罗米修斯指标和跟踪。我找不到任何有关 opentelemetry Collector 的 Appdynamics 文档。

我在https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter中也找不到出口商。

您能否就如何在 Appdynamics 中使用 opencollector 提供建议?

0 投票
1 回答
56 浏览

java - 项目库的开放式遥测和自动仪器

我正在使用 Java 应用程序并尝试使用 OpenTelemetrys Java 自动仪表。看起来,自动检测仅适用于直接从应用程序本身调用的代码,并且没有检测依赖项?

该项目使用依赖项,该依赖项本身使用 Apache HttpClient 将请求发送到远程服务器。然而,这些请求似乎没有被检测到。当也直接在我的应用程序中执行请求时,它按预期工作。

有没有办法告诉代理,也必须检测特定的依赖关系?

0 投票
1 回答
518 浏览

go - 如何使用收集器跟踪 gRPC 服务(服务器端)

我正在使用收集器来跟踪我的 java 服务中的跨度,这些服务是 http 和 grpc。收集器端点是 localhost:55680。此 java 服务跟踪成功。

现在,我想使用这个收集器来跟踪我基于 gRPC 的 go 服务。

在我的 go 服务中,我从 repo opentelemetry-go-contrib 复制了这些文件:interceptor.go 和 grpctrace.go,这里https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/ google.golang.org/grpc/otelgrpc

现在,我创建一个名为 config.go 的文件:

现在,当我启动我的 gRPC 服务器时,我会这样做:

这是服务器拦截器,这被称为每个请愿书:

第一个请愿书,我收到以下消息: rpc error: code = Canceled desc = context canceled 对于下一个请愿书,我收到以下消息: exporter disconnected

我检查收集器日志,似乎没有请求来。

知道为什么它不起作用吗?我究竟做错了什么?

谢谢!!!

0 投票
0 回答
442 浏览

go - Go OpenTelemetry - gRPC 服务器和客户端在同一服务中的相关跨度如何

我有一个公开 gRPC 服务的 go 服务,并使用另一个 gRPC 服务,最后一个是基于 gRPC java 的服务,使用 opentelemetry 正确跟踪。

在我的 go 服务中,我从 repo opentelemetry-go-contrib 复制了这些文件:interceptor.go 和 grpctrace.go,这里https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/ google.golang.org/grpc/otelgrpc

现在,我创建一个名为 config.go 的文件:

现在,当我启动我的 gRPC 服务器时,我会这样做:

这是服务器拦截器,这被称为每个请愿书:

使用 gRPC java 服务的客户端:

并且,客户端拦截器:

这会生成两个跨度,第一个带有服务器请求和响应,第二个带有客户端信息,但这不相关。

我应该怎么做才能使两个拦截器的跨度相关?

0 投票
1 回答
304 浏览

java - MockTracer 的 opentelemetry 等价物是什么

我正在尝试将使用 opentracing 编写的 java 项目迁移到 opentelemetry 中。虽然为主要功能提供了等效类,但 opentelemetry 没有提供模拟类。我们如何使用 opentelemetry 编写测试?我们必须自己写MockTracerMockSpan等等吗?

0 投票
2 回答
2513 浏览

java - Opentelemetry java Automatic Instrumentation with zipkin exporter 选项正在使用 OtlpGrpcSpanExporter

我有一个简单的 spring boot hello world 应用程序。试图向 Zipkin 收集器发送数据。但根据日志,它正在尝试使用OtlpGrpcSpanExporter. 我的应用程序公开了一个简单的 post rest API。

遵循 Opentelemetry 文档https://opentelemetry.io/docs/java/getting_started/

[opentelemetry.auto.trace 2021-02-20 01:48:44:490 +0530] [grpc-default-executor-1] 警告 io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter - 无法导出跨度。错误消息:不可用:io 异常 [opentelemetry.auto.trace 2021-02-20 01:49:14:106 +0530] [grpc-default-executor-2] WARN io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter -无法导出指标 io.grpc.StatusRuntimeException:不可用:io 异常

如果我需要更改任何内容,请告诉我。

0 投票
1 回答
615 浏览

google-cloud-run - 使用 OpenTelemetry 在 Google Cloud Run 上跟踪传播

我有一个 Flask 应用程序与 Python gRPC 服务通信,两者都部署在 Google Cloud Run 上。检测应用程序后,我可以在 Google Trace 上看到跟踪,但它们似乎都有不同的跟踪 ID,这意味着跟踪没有在两个服务之间链接在一起。这是我的设置代码,用于在每侧设置 grpc/Flask 仪器跟踪两个服务:

在本地,我可以使用 ConsoleSpanExporter 看到两个服务上的跟踪 ID 匹配,但是在 Google Cloud Run 上,它们显然不会在 Google Trace 上产生单独的跟踪,所以我想知道网络是否删除了服务之间的标头或其他东西正在发生,这意味着跟踪 ID 没有被传播?

作为额外说明,我还注意到 Cloud Run 的 Trace/Span ID 前面的负载均衡器没有使用 CloudTraceSpanFormatPropagator() 进行传播,这也使我的日志变得混乱,因为日志没有嵌套在一起用于请求。

0 投票
1 回答
311 浏览

rust - 带有 OpenTelemetry 的 Rust 仪器库

我正在学习Rust 中的跟踪和 Rust 中开放遥测。我觉得有太多的概念和太多的 crate(至少在 Rust 中)看不到痕迹。

我写了一个简单的 lib 应用程序,添加了两个u32s.

然后我在我的 bin 应用程序中使用 lib,如下所示。

最令人困惑的部分是我的应用程序Cargo.toml,它看起来像

那些不同的板条箱到底是干什么用的?唯一有意义的箱子是opentelemetry-jaeger. 还需要其他人吗?

对于我的主要问题:我正在运行 Jaeger 的一体化 docker 容器。但是当我访问时http://localhost:16686......我看不到任何痕迹。有谁知道发生了什么?