使用 Zipkin 导出器的 Opentelemetry 未按预期工作。抛出 StatusRuntimeException:UNAVAILABLE:io 异常
Opentelemetry with Zipkin exporter is not working as expected. Throws StatusRuntimeException: UNAVAILABLE: io exception
我对使用 OpenTelemetry 还很陌生,刚刚尝试将其配置为将跟踪发送到我的 Zipkin 服务器。不幸的是,在通过指定 zipkin exporter 详细信息配置代理后,我可以在控制台中看到异常。我使用 Petclic 作为示例 spring 启动并遵循了此处的文档 https://github.com/open-telemetry/opentelemetry-java-instrumentation
这是我用来启动 spring-boot 应用程序的命令(我的 zipkin 服务器 运行 在 localhost:9411):
java-javaagent:opentelemetry-javaagent-all.jar-Dotel.exporter=zipkin-Dotel.exporter.zipkin.endpoint=localhost:9411 -jar spring-petclinic-2.4.2.jar
控制台出现异常(它正在尝试连接到 gRpc 导出器而不是 Zipkins):
[opentelemetry.auto.trace 2021-03-07 20:24:15:582 +0530] [IntervalMetricReader-1] WARN io.opentelemetry.expor**ter.otlp.metrics.OtlpGrpcMetricExporter - Failed to export metrics
io.grpc.StatusRuntimeException: UNAVAILABLE: io exception**
at io.grpc.Status.asRuntimeException(Status.java:534)
at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:617)
at io.grpc.internal.ClientCallImpl.access0(ClientCallImpl.java:70)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImplStreamClosed.runInternal(ClientCallImpl.java:803)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImplStreamClosed.runInContext(ClientCallImpl.java:782)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: **localhost/0:0:0:0:0:0:0:1:4317**
Caused by: java.net.ConnectException: Connection refused: no further information
请告诉我这有什么问题。
编辑:
我已经尝试传递 -Dotel.traces.exporter=zipkin 而不是 -Dotel.exporter=zipkin 但没有成功。我只是想通过将这些参数作为 jvm 参数传递来通过 eclipse 启动我的 spring 启动应用程序。 OpenTelemetery 上的每个教程似乎都在使用 Docker 设置。请有人帮忙
在您的命令中请尝试以下 -Dotel.traces.exporter=zipkin 而不是 -Dotel.exporter=zipkin
我有同样的问题,但我用这个 jvm 参数解决了:
-Dotel.traces.exporter=zipkin -Dotel.metrics.exporter=none -Dotel.exporter.zipkin.endpoint=http://localhost:9411/api/v2/spans
可能错误在zipkin.endpoint,尝试写整个url.
此致,
马可
我认为概念理解也有帮助
设置服务器,使用二进制文件或编译它。启动它。
https://zipkin.io/pages/quickstart.html
设置Java 客户端,按照上述Marco post 添加VM 参数。我添加了 -Dotel.javaagent.debug=true 以帮助解决问题
之后,您的客户端应用程序会将跟踪(以 zipkin 模式)发送到服务器。然后在 http://localhost:9411
上打开浏览器
我对使用 OpenTelemetry 还很陌生,刚刚尝试将其配置为将跟踪发送到我的 Zipkin 服务器。不幸的是,在通过指定 zipkin exporter 详细信息配置代理后,我可以在控制台中看到异常。我使用 Petclic 作为示例 spring 启动并遵循了此处的文档 https://github.com/open-telemetry/opentelemetry-java-instrumentation
这是我用来启动 spring-boot 应用程序的命令(我的 zipkin 服务器 运行 在 localhost:9411):
java-javaagent:opentelemetry-javaagent-all.jar-Dotel.exporter=zipkin-Dotel.exporter.zipkin.endpoint=localhost:9411 -jar spring-petclinic-2.4.2.jar
控制台出现异常(它正在尝试连接到 gRpc 导出器而不是 Zipkins):
[opentelemetry.auto.trace 2021-03-07 20:24:15:582 +0530] [IntervalMetricReader-1] WARN io.opentelemetry.expor**ter.otlp.metrics.OtlpGrpcMetricExporter - Failed to export metrics
io.grpc.StatusRuntimeException: UNAVAILABLE: io exception**
at io.grpc.Status.asRuntimeException(Status.java:534)
at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:617)
at io.grpc.internal.ClientCallImpl.access0(ClientCallImpl.java:70)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImplStreamClosed.runInternal(ClientCallImpl.java:803)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImplStreamClosed.runInContext(ClientCallImpl.java:782)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: **localhost/0:0:0:0:0:0:0:1:4317**
Caused by: java.net.ConnectException: Connection refused: no further information
请告诉我这有什么问题。
编辑: 我已经尝试传递 -Dotel.traces.exporter=zipkin 而不是 -Dotel.exporter=zipkin 但没有成功。我只是想通过将这些参数作为 jvm 参数传递来通过 eclipse 启动我的 spring 启动应用程序。 OpenTelemetery 上的每个教程似乎都在使用 Docker 设置。请有人帮忙
在您的命令中请尝试以下 -Dotel.traces.exporter=zipkin 而不是 -Dotel.exporter=zipkin
我有同样的问题,但我用这个 jvm 参数解决了:
-Dotel.traces.exporter=zipkin -Dotel.metrics.exporter=none -Dotel.exporter.zipkin.endpoint=http://localhost:9411/api/v2/spans 可能错误在zipkin.endpoint,尝试写整个url.
此致, 马可
我认为概念理解也有帮助
设置服务器,使用二进制文件或编译它。启动它。 https://zipkin.io/pages/quickstart.html
设置Java 客户端,按照上述Marco post 添加VM 参数。我添加了 -Dotel.javaagent.debug=true 以帮助解决问题
之后,您的客户端应用程序会将跟踪(以 zipkin 模式)发送到服务器。然后在 http://localhost:9411
上打开浏览器