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

google-cloud-run - 向 Cloud Run 中的内部方法添加跟踪

我们想为部署在 Cloud Run 上的服务中使用的方法添加跟踪。

跟踪已提供 Cloud Run 请求:


假设我们有以下 gRPC 方法:

这是一个内部方法的示例,我们向其中添加了 Trace span,并由主 gRPC 方法调用:

查看 Google Cloud Run 的跟踪,我看到了上述方法的跟踪:

谷歌云运行跟踪

尽管context从主 gRPC 传递到内部方法,但 Tracing 并没有被拉到底层内部。内部方法生成的跟踪不会“接收”主 gRPC 跟踪作为父级。

这是因为 Cloud Run 提供的默认跟踪是由 Cloud Run 内部完成的吗?因此在 gRPC 方法的上下文中不可用?

0 投票
0 回答
94 浏览

java - 如何使用 StatsD 作为接收器和 CloudWatch 作为导出器创建 OpenTelemetry 管道?

我正在尝试使用 OpenTelemetry 运行一个示例,其中我使用带有 StatsD 的 Java SpringBoot 应用程序作为 Micrometer 外观的实现。该应用程序使用 AWS Distro for OpenTelemetry 部署在 ECS 集群上。收集器被部署为边车。

我已经能够配置应用程序以将 StatsD 指标发送到收集器,并且我在 CloudWatch 中看到了来自导出器 (awsemf) 的日志,包括我添加到指标中的静态标签。我的想法是使用标签作为 CloudWatch 中的维度来识别指标所针对的服务。

到目前为止,这就是我能做的一切。我无法找到一个完整的示例来展示如何使用 StatsD 和 awsemf 配置 OpenTelemetry 管道,因此我不确定如何配置处理器以提取标签以在导出器中使用它们。

有没有人有这方面的例子?

0 投票
1 回答
330 浏览

python - 将遥测自动检测与 Python Flask 应用程序一起使用,如何避免手动调用 FlaskInstrumentor().instrument_app(app)?

我正在使用基于 Python Flask 的应用程序学习遥测自动检测。问题是我的应用程序不会生成跟踪,除非我手动调用 FlaskInstrumentor().instrument_app(app)。

我认为 auto_instrumentation/sitecustomize.py 会以某种方式做到这一点,但它似乎并没有那样工作。

我的代码:

套餐:

我使用的命令:“opentelemetry-instrument python3 ./server.py”

谢谢

0 投票
0 回答
15 浏览

cassandra - cassandra 中的 tag_index 问题

我使用api添加属性并通过JaegerGrpcSpanExporter导出跨度。

我们使用 cassandra 作为存储后端。最后,我将这些属性作为表tag_index中的标签。它极大地影响了卡桑德拉的表现。来自 cassandra 的警告示例

large_data - 写入包含太多行的分区 [opentelemetry/tag_index:hh-session:status.code:0](207365 行)

将附加属性与 jaeger 后端一起放置的正确方法是什么?有没有办法禁用该索引?

0 投票
0 回答
303 浏览

java - 在 Opentelemetry 中,无法获得父跨度

我是 OpenTelemetry 词的新手。我已经分别为我的服务创建了跨度,但是当我尝试使用上下文传播组合两个不同服务的跨度时,我无法成功。我使用了以下代码:

在服务器上,我无法获得父跨度。请帮助解决这个问题。

0 投票
1 回答
450 浏览

javascript - 在 express / nodejs 中创建和结束跟踪跨度的正确方法

我正在尝试尝试Opentelemetry.js nodejs/express 库,并试图从 Istio 重写Sample评论应用程序bookinfo

我遵循了示例中给出的跟踪器配置:

我的请求处理程序为:

我面临的问题是,当我查看生成的痕迹时,它似乎是错误的: 在此处输入图像描述

问题是:

  • “计算评论”跨度没有关闭
  • 如何删除似乎自动添加的“HTTP GET”。我试图覆盖这是我的跟踪器设置,但它不起作用。node-express-reviews-service除了以下内容之外,似乎还创建了一个新的跨度HTTP GET
  • HTTP 调用 rating.default 的跨度在调用之前开始和结束calculate-reviews。理想情况下,跨度ratings.default应该在之后开始calculate-review并在之前结束。但是在图像calcualte-reviews跨度开始和结束之后ratings.default。我做错了什么,正确的做法是什么?
  • 我在“计算评论”下得到的错误“时钟偏差调整已禁用;未应用 -53.6005ms 的计算增量”是什么? 在此处输入图像描述
0 投票
2 回答
74 浏览

c# - EventCounters 是从 .NET 库中公开指标的标准方法吗?

从 .NET Core 3 开始,.NET SDK 通过EventCounters公开指标。也可以实现自己的 EventCounter。因此,假设我正在.NET 中开发内存缓存客户端,通过 EventCounters 公开获取/设置指标是否有意义?另外,我注意到Well-known EventCounters都没有使用动态指标名称,例如memcache-{myMemcacheClusterName}-gets. 不推荐吗?

0 投票
1 回答
211 浏览

open-telemetry - Opentelemetry 收集器和代理有什么区别?

我试图了解两者之间是否有任何显着差异。在查看示例时,我注意到它使用完全相同的二进制文件和参数(https://github.com/open-telemetry/opentelemetry-collector/blob/main/examples/demo/docker-compose.yaml)。唯一的区别是配置文件在导出器/接收器中有一些不同。所以唯一的区别是使用什么端点来收集/发送跟踪?

0 投票
1 回答
229 浏览

python - 尝试使用 OpenTelemetry python 库导入 StatusCanonicalCode 时出现导入错误

StatusCanonicalCode从 python opentelemetry 库导入会出错

错误信息:

*** ImportError:无法从“opentelemetry.trace.status”导入名称“StatusCanonicalCode”

文件opentelemetry.trace.status没有StatusCanonicalCode类。

但是这些文档和规范将此导入作为有效示例:

https://opentelemetry.lightstep.com/python/tracing/ -> 搜索StatusCanonicalCode

jaeger库中也存在相同的导入。

我在这里错过了什么吗?

0 投票
0 回答
218 浏览

open-telemetry - OpenTelemetry dotnet otel 配置

我正在为研究 OpenTelemetry 编写简单的项目。

我想使用 otel 来配置许多出口商。

样本

谁能建议我如何配置代理和收集器?我尝试了 github 示例,但无法正常工作。

我的码头工人撰写:

我的代理配置:

我想从 .net 应用程序接收数据并将其重定向到 otel-collector。

我的收集器配置:

我想从代理接收数据并重定向到导出器:zipkin、newrelic、logger。

我的 dotnet 应用程序启动: