当前位置: 首页 > 知识库问答 >
问题:

OpenElemeter:如何将日志添加到跨度

薛俊美
2023-03-14

我在我的Spring启动应用程序中使用了开放遥测java自动检测。有没有办法让应用程序日志成为创建的跨度的一部分?

我的自动配置设置如下:

-Dotel.traces.exporter=jaeger
-Dotel.metrics.exporter=none
-Dotel.exporter.jaeger.endpoint=http://localhost:14250
-Dotel.resource.attributes=service.name=myService
-javaagent:C:/path/to/opentelemetry-javaagent-1.0.1-all.jar

共有2个答案

蒋联
2023-03-14

向跨距添加日志在一定程度上取决于用于收集跟踪/跨距并将其可视化的后端。

我使用了Jaegar,它将OTEL事件解释为UI中的日志,因此我编写了一个自定义日志附加程序,将应用程序日志放入事件中,然后在UI中获取。

更多详情请点击这里:

https://stackoverflow.com/a/68739794/2715083

薄涵衍
2023-03-14

OpenTelemetry将日志单独发送到从自动仪器获取的遥测数据,并且恐怕不会交错日志数据。我们通过FluentBit发送日志(https://medium.com/opentelemetry/introducing-the-fluentbit-exporter-for-opentelemetry-574ec133b4b4).

您可能希望使用手动检测,并向相关代码块添加跨度、跨度属性和/或事件,以便向下游使用的元数据添加类似日志的上下文。

在使用Spring Boot时,建议使用一个starter依赖项,例如opentelemetry otlp exporter starter(https://github.com/open-telemetry/opentelemetry-java-instrumentation/tree/main/instrumentathtml" target="_blank">ion/spring/starters/otlp-exporter-starter),这应该能让你一路走到那里。您希望使用@WithSpan注释来修饰您的方法,这将使您能够轻松获得当前的跨度。看见https://opentelemetry.lightstep.com/java/.

官方文档有几个例子,这可能会有所帮助,但是要注意API和SDK正在快速变化,所以例子并不总是有效的https://opentelemetry.io/docs/java/manual_instrumentation/.

有关OpenTelemetry和logging的详细信息:https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/overview.md

 类似资料:
  • 我试图添加额外的行李到HTTP服务器上的现有跨度,我想添加一个路径变量到跨度,从日志MDC访问,并通过超文本传输协议或kafka在电线上传播到下一个服务器。 我的设置:春云侦探霍克斯顿。SR5和Spring启动2.2.5 我尝试添加以下设置和配置: 并添加了http拦截器: 和http筛选器以影响当前范围(根据spring文档) 问题是日志不包含我的自定义上下文id,上下文类型,虽然是在span上

  • 是否有一种方法可以将时间戳添加到。pm2/logs中的错误日志中? 我注意到命令显示带有时间戳的聚合日志,但查看日志文件时,只有消息和stacktraces没有日期。

  • 本文向大家介绍C# 如何添加错误日志信息,包括了C# 如何添加错误日志信息的使用技巧和注意事项,需要的朋友参考一下 系统日志 系统日志包含了由Windows系统组件记录的事件。例如,在启动期间装入驱动程序或其他系统组件失败被记录到系统日志。要查看系统日志: 打开命令提示符。 在提示符下输入eventvwr。这打开了Windows事件查看器。 应用程序日志 应用程序日志包含了由应用程序或程序记录的事

  • 我正在使用这些依赖项: 是否有可能将当前活动配置文件添加到每条日志行?这样就可以根据splunk/elk/... 所以不是 它应该记录下来 编辑:基于Marcin的回答,我实现如下: application.yml ProfileLogger.java logconfig.java 这将打印如下所示的日志: 这已经很好了,但还不完全是我想要的。我想从一开始就添加概要文件->即使是“启动的应用程序”

  • 我正在尝试将一个值设置为MDC,以便在有日志的情况下显示在每个日志行中。如果kafka producer中有info(“”),那么日志就不会显示我之前为MDC添加的值。 我有一个拦截器来为correlationId设置“默认值” 我设置了 MDC 相关 Id 值,当它进入控制器时。 仅用于Kafka日志不包括之前添加的 MDC 消息 2022-06-08 10:15:31.616 INFO { c

  • 我使用serenity BDD进行自动化测试,使用页面对象模型进行框架测试。我创建了一个BasePage类,它将被所有其他页面继承。我想通过添加所有日志来最小化来自页面的日志消息。将信息消息发送到中央基本页。例如,在调用click()方法时,我将在basePage类中记录单击前和单击后的方法,如下所示: 公共类BasePage扩展了PageObject{ 后来我发现,与其单独尝试预先确定用户将在w