问题标签 [distributed-tracing]

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 投票
0 回答
368 浏览

java - 无法从 Header 获取 New Relic Trace ID

我一直在尝试从跟踪服务的请求中获取 New Relic Trace/Transaction ID。

不幸的是,我无法检索该值。

当我尝试从标题中提取值时,它们不会被填充。

我可以获得分布式有效负载,但不完全确定我在看什么。

结果:

@RequestHeader(name="X-NewRelic-ID", defaultValue="null")=“空”
@RequestHeader(name="X-NewRelic-Transaction", defaultValue="null")=“空”
NewRelic.getAgent().getTransaction().getRequestMetadata()=空
NewRelic.getAgent().getTransaction().getResponseMetadata()=空

分布式跟踪有效负载 =

网络服务:

0 投票
0 回答
188 浏览

java - zipkin 分布式追踪演示

我是分布式跟踪的新手,并尝试使用视频https://www.youtube.com/watch?v=CFLZJSwbYI0中解释的示例

简而言之,这有以下

  1. Zipkin 服务器 - 为此我使用 https://zipkin.io/pages/quickstart.html提供的 jar 文件
  2. 一个 zipkin 客户端(端口 - 8081)
  3. 服务(端口 - 8082)

现在,当我使用命令运行 zipkin 服务器时

java -jar zipkin.jar

并在 url http://localhost:9411/zipkin 访问 zipkin


到目前为止一切正常。

现在我正在启动在端口 8081/8082 上运行的 zipkin-client/service

在此之后,我访问了 zipkin 网址(http://localhost:9411/zipkin),但它现在坏了。

我想知道为什么在端口 8081/8081 上启动其他服务会导致 zipkin 服务器停止响应。

非常感谢任何形式的帮助!!!

0 投票
1 回答
152 浏览

spring-boot - Elastic APM 是否支持 Spring Cloud Stream

我对 Elastic APM 非常陌生,不确定它如何支持不同的框架。我可以从文档中看到 APM 支持 Spring Boot。我已经用 APM 测试了一个 Spring Boot 应用程序,它看起来很有希望。我想知道 APM 是否也支持 Spring Cloud Stream。Spring Cloud Stream 通过使用 Spring Boot 和消息中间件提供事件驱动架构。中间件可以是Kafka、RabbitMQ等。

0 投票
0 回答
203 浏览

spring-boot - 自定义 CorrelationId 春季云侦探 Finchley.RELEASE

我目前在 spring-cloud-sleuth 中遇到了一个用例。我在我的 pom 和 Spring boot 2.0.3.RELEASE 中使用 Finchley.Release spring cloud

我实现了自己的 CustomTraceContext,它扩展了 CurrentTraceContext,并向 MDC 添加了自定义 CorrelationId (XP-TraceId)。

我正在使用 log4j2.xml,并且能够在日志文件中看到 CorrelationId (XP-TraceId)。

现在我需要将 CorrelationId (XP-TraceId) 传播到微服务链,而且我无法在异步线程中看到 CorrelationId (XP-TraceId)(我在异步线程中打印 MDC.getCopyOfContextMap() 我只看到 X-B3-TraceId , X-B3-SpanId)?

Finchley.Release 有可能吗?

有任何示例配置吗?

我提到了这个,但无法配置这个。

任何帮助表示赞赏。

0 投票
0 回答
191 浏览

java - 有没有办法在 jar 中启用 zipkin 跟踪,这样无论在哪里使用 jar,它都会默认初始化一个单独的 span

我正在创建一个带有对服务的改造调用的客户端 sdk,打包为一个单独的 jar。我必须在此 jar 中包含 zipkin 跟踪器/跟踪,以便任何使用此 jar 与服务通信的应用程序都为每次调用服务自动创建一个单独的跨度。我的问题有可行的解决方案吗?

我一直在尝试使用“io.zipkin.brave:brave-instrumentation-okhttp3”库来解决这个问题。我还添加了“org.springframework.cloud:spring-cloud-starter-sleuth”依赖项,以便默认生成跟踪器 ID。但是将此 jar 添加到使用 kafka-streams 和“io.zipkin.brave:brave-instrumentation-kafka-streams”依赖项的项目中,不会自动初始化一个新的跨度。

我期望的是,使用这个 jar 的应用程序默认情况下对于他们通过这个 jar 进行的每个改造调用都有一个单独的跨度。

0 投票
1 回答
1016 浏览

prometheus - 可观察性:我们可以按标签过滤,然后在 prometheus 或任何指标后端服务器上聚合

例如,我使用以下命令调用 Redis 服务器:

运行后,我想同时跟踪这两个信息:

  • 所有写操作符的统计信息(所以标签应该是 SET)
  • 所有特定运算符的统计信息(因此标记应为 SET 和键)

因此,我将创建用于跟踪指标的视图。我能想到的方法有两种:

  • 带有标签“SET”键的单一视图。后来希望我可以通过“SET”或“SET”和按键进行过滤。(1)
  • 创建 2 个视图。第一个视图只有标签“SET”,第二个视图将有标签“SET”和键。所以每个查询的每个视图。(2)

我更喜欢(1),因为它更优雅,我不需要创建太多视图。我的问题是:如果我在(1)上做,它可以在公制后端服务器上工作吗?(即:普罗米修斯)。或者指标后端服务器不支持按标签和聚合过滤,所以我必须创建单独的视图?

谢谢

0 投票
0 回答
125 浏览

spring-boot - 如何使用 newrelic 为 Spring Boot 应用程序进行分布式跟踪

我们可以在 newrelic.yml 文件上启用分布式跟踪,如下所示

但是服务间跟踪不可用,我们是否需要在spring boot应用程序端进行任何更改。

0 投票
1 回答
5896 浏览

spring-boot - 禁用分布式跟踪以进行开发

我们正在建立微服务框架。

我们使用以下堆栈进行分布式跟踪。

  • 弹簧靴
  • 卡夫卡
  • 齐金

以下是配置的完成方式

gradle.build(或 pom.xml)中添加了以下启动器依赖项

添加一个 AlwaysSampler bean

如果我们kafka运行,事情就会自动运行。

但是如果 kafka 没有运行,服务器就不会启动——这主要是开发环境的情况。

如果我想停止这种情况,我必须注释掉这里提到的所有代码(因为我们在 spring boot 中使用 starter 依赖项,它会自动按照我的理解进行配置)。

我们可以对属性(或 yaml)文件进行一些更改,这样我就不需要去注释掉所有这些代码了吗?

或者可能是另一种在不做评论的情况下禁用它的方法,等等。

0 投票
0 回答
177 浏览

java - 如何在 Spring Boot slf4j 中添加自定义日志记录

我有一个与 Spring 微服务分布式跟踪有关的问题。我正在使用 sleuth 库来打印我的踪迹。在 Java 8 中,当我们使用 parallelStream 时,它不起作用,因为它无法将信息传播到其他线程。我正在寻找使用它的解决方案。任何将值传播到 parralelStream 的东西都应该接近结果。几点如下

  1. 使用 spring boot 和 slf4j 自定义日志记录格式,以便我可以添加有关服务的更多信息。

  2. 使用 parallelStream、aspectJ 和拦截器发送信息的任何方式。

  3. 修复以允许侦探或勇敢的库与并行流一起工作。

任何建议,上述解决方案都会有所帮助。

0 投票
1 回答
1407 浏览

node.js - 如何为不使用 Express 中间件的 node.js 应用程序配置 AWS X-Ray?

我正在尝试将 AWS X-Ray 与托管在 AWS Lambda(无服务器)上的 nodejs api 集成。X-Ray 使用 express 中间件按 api 的预期工作,并且能够在 AWS 控制台上查看跟踪。对于没有 express 框架的异步函数,我在集成时遇到了问题。

尝试启用手动模式,但面临Lambda 不支持手动模式错误。

提到这个-为自动模式部分开发自定义解决方案但没有运气。

有人可以帮我解决这个问题吗?