我有一个示例插装应用程序,它使用以下配置将数据发送到正在运行的收集器:
receivers:
otlp:
protocols:
grpc:
endpoint: "0.0.0.0:4317"
http:
endpoint: "0.0.0.0:4318"
processors:
batch:
exporters:
otlphttp:
endpoint: http://localhost:8080
compression: none
logging:
loglevel: debug
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlphttp, logging]
它非常简单,日志导出器正确地显示数据。我对otlphttp导出器很感兴趣。我构建了一个简单的NodeJs服务器,它监听localhost:8080/v1/traces,并且确实有post请求传入。但是我不知道如何访问数据。req.body似乎是空的。
我知道有一些protobuf的东西需要解码,但我不知道从哪里开始。显然还有这个otlp-transformer包可能会有帮助?但我再次不知道从哪里开始,或者这在NodeJ中是否可行。
1条答案
按热度按时间fae0ux8s1#
我相信你正在寻找一个像Jaeger或zipkin这样的工具,用来可视化和分析跟踪数据。收集器有两个导出器,和as of v1.35 Jaeger has support for the OpenTelemetry native OTLP protocol。
如果不是这种情况,并且您实际上尝试使用NodeJS接收和处理跟踪数据,则需要反序列化protobuf。protobuf定义在https://github.com/open-telemetry/opentelemetry-proto上发布,使用这些定义,可以使用protobufjs npm包反序列化数据。
您所引用的transformer包用于序列化protobuf数据,而不是反序列化它。它是OTel JS SDK的内部包,用于通过protobuf over HTTP导出数据。