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

如何为Akka应用程序配置OpenTelemata代理

郑承恩
2023-03-14

我正在尝试使用OpenTelemetry代理从我用Scala编写的Akka应用程序中导出度量和跟踪,目的是使用OpenSearch中的数据

我的应用程序的技术堆栈:

  • Akka-2.6*

我已经将OpenTelemetry instrumentation运行时依赖项添加到构建中。sbt:

  val runtimeDependencies: Seq[ModuleID] = Seq(
    "io.opentelemetry.instrumentation" % "opentelemetry-instrumentation-api" % otelInstrumentationVersion % "runtime"
  )
...
  libraryDependencies ++= compileDependencies ++ testDependencies ++ runtimeDependencies,

我正在属性文件中传递OpenTelem计配置:

export JAVA_OPTS="... \
-javaagent:lib/opentelemetry/opentelemetry-javaagent-all-v1.6.0.jar \
-Dotel.javaagent.configuration-file=lib/opentelemetry/otel.properties"

我的代码中唯一其他相关的部分是属性文件:

otel.service.name=my-app
otel.traces.exporter=jaeger
otel.propagators=jaeger

我确实在OpenSearch中收到了一些跟踪,但它们是完全不同的,不相关的,而我希望它们是链接的。例如,在RabbitMQ主题上接收到一条消息,它进入一个actor,后者最终发出一个SQL查询。因此,我可以看到每个执行步骤需要多少时间。

我很想能够遵循留档,但我发现OpenTelemeter的配置指南在这一点上很少。

更新:

不确定这是否相关,但我在datapreper上得到一个警告:

2021-09-29T16:50:50,861 [raw-pipeline-prepper-worker-5-thread-1] WARN  com.amazon.dataprepper.plugins.prepper.oteltrace.OTelTraceRawPrepper - Missing trace group for SpanId: 922097e31cf96c72

共有1个答案

储峻
2023-03-14

好的,所以我绕过了这个问题,然后阅读了关于如何支持特定工具的内容。

因此,为了减少跟踪仪表板中的混乱,可以向属性文件中添加以下内容(或通过环境变量添加等效内容):

otel.instrumentation.rabbitmq.enabled=false
otel.instrumentation.grpc.enabled=false

请注意,我删除了我的用例特有的两个杂乱的工具库。对于另一个应用程序,可以从上面的链接#2中选择其他库。这样,您作为应用程序开发人员声明的跨度将成为根。

 类似资料:
  • 这些是什么,我们应该如何配置它们,以查看它们如何影响应用程序性能? 谢谢!

  • 问题内容: 如何配置Spring Boot应用程序侦听的TCP / IP端口,因此它不使用默认端口8080。 问题答案: 正如在所述的文档任一组使用命令行选项来JVM中的系统属性-或添加在与 对于随机端口使用

  • Spring security 5.1.0。Rc1支持webflux中的OAuth2资源服务器https://spring.io/blog/2018/08/21/spring-security-5-1-0-rc1-released . 这里给出的例子讲述了基于JWT格式的OAuth2。我如何配置基于oAuth2的资源服务器并指定令牌解码uri。 在SpringMVC中,我可以使用@EnableRe

  • 我不熟悉Spring boot(和servlet 3.0)。我正在尝试用JSP作为视图创建spring mvc项目。当我从控制器返回一个视图时,它不会被解析为JstlView。 以下是我所做的: 两者都创造了。中的jsp文件。 在谷歌搜索之后,我发现我需要在应用程序中指定这一点。所以我在道具中添加了以下内容: 即使在这之后,它也不起作用。这是痕迹。 正如您在跟踪中看到的,这是试图解析/jsp/we

  • 我正在创建一个java应用程序,它通过https调用一些服务。但是每当我调用任何api时,我都需要通过System.set属性(“https.proxy主机”、“一些代理主机”)设置我的代理;。这也是一个系统依赖,因为代理主机可以在更改系统时更改。为什么不像浏览器那样自动选择代理。有没有办法配置一次或让它自动检测代理设置?

  • 问题内容: 如何配置Spring Boot应用程序侦听的TCP / IP端口,因此它不使用默认端口8080。 问题答案: 正如在所述的文档任一组使用命令行选项来JVM中的系统属性或添加在与 对于随机端口使用