Opentelemetry Java 自动检测数据到 Jaeger

问题描述

我是 Opentelemetry 的新手,想将 Spring-petclinic 检测数据发送到在我的远程云系统上运行的 Jaeger

这里是bat文件java -javaagent:opentelemetry-javaagent-all.jar -Dotel.exporter=jaeger -Dotel.exporter.jaeger.endpoint=50.18.XXX.XX:14250 -Dotel.otlp.span.timeout=4000 -Dotel.jaeger.service.name=otel-ui -jar target/spring-petclinic-2.4.0.BUILD-SNAPSHOT.jar

当我运行 bat 文件时,我要在浏览器 (http://localhost:8080) 中打开 petclinic 应用程序,在控制台中出现以下错误[opentelemetry.auto.trace 2021-01-06 17:22:21:008 +0530] [grpc-default-executor-1] WARN io.opentelemetry.exporter.otlp.OtlpGrpcSpanExporter - Failed to export spans. Error message: UNAVAILABLE: io exception

如何解决这个问题?是否有任何其他依赖项要添加到 petclinic pom.xml 或代码中?

解决方法

你能粘贴收集器配置文件吗?您似乎正在使用 gRPC 协议,并且它在运行收集器的系统上不受支持。 https://github.com/open-telemetry/opentelemetry-collector/blob/master/exporter/otlpexporter/README.md

,

您的 jaeger 实例中未启用 gRPC 端口。

你可以试试这样的 docker-compose 文件

version: "3.6"
services:
  jaeger:
    image: jaegertracing/all-in-one
    ports:
      - 5775:5775/udp
      - 6831:6831/udp
      - 6832:6832/udp
      - 5778:5778
      - 16686:16686
      - 14268:14268
      - 14250:14250
      - 9411:9411

您可以毫无问题地连接到它

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...