我正在使用 OpenTelemetry 收集器代理将日志发送到 Kafka 流层。我想在 .NET Kafka 消费者中使用这些日志消息(目前),但我遇到了一些问题。OTEL 似乎使用了 Protobuf 序列化,这使得它有点棘手。注意:最终我想通过 Kafka Connect 将日志发送到 Elasticsearch,但每次只有一步......
首先,是否可以让 OpenTelemetry Kafka 导出器使用 JSON 序列化?如前所述,它看起来默认使用 Protobuf,并且似乎没有用于日志的 JSON 序列化选项 - 请参阅OTEL Kafka 导出器文档:
或者,如何使用 OpenTelemetry 收集器代理使用 Protobuf 序列化发布到 Kafka 的日志消息?
OTEL 配置如下:
...
exporters:
kafka:
brokers:
- "kafka:9093"
protocol_version: 2.6.2
topic: logs
service:
pipelines:
logs:
receivers: [filelog]
exporters: [logging]
我的消费者应用程序是 .NET Core。到目前为止,我刚刚从confluent-kafka-dotnet GitHub 页面获得了一个基本的生产者/消费者示例(所有这些都适用于简单消息,但不适用于 OTEL 代理发布的 Protobuf 消息)。我设法在这里找到了一个 Protobuf 消费者示例,但是我将如何生成 proto 类来反序列化 OTEL 日志。我有点迷失在这里...