我正在使用OpenTelemory收集器代理将日志发送到Kafka流媒体层。我想在一个. NET Kafka消费者(目前)中使用这些日志消息,但我遇到了一些问题。Otel似乎使用了Prothrobuf序列化,这使得它有点棘手。注意:最终我想通过Kafka Connect将日志发送到Elasticsearch,但一次一步...
首先,是否有可能让OpenTelemory Kafka导出器使用JSON序列化?如前所述,它看起来默认情况下使用原型,并且似乎没有日志的JSON序列化选项-请参阅Otel Kafka导出器留档:
或者,我如何使用OpenTelemeter收集器代理使用PROTOBUF序列化发布到Kafka的日志消息?
OTEL配置如下:
...
exporters:
kafka:
brokers:
- "kafka:9093"
protocol_version: 2.6.2
topic: logs
service:
pipelines:
logs:
receivers: [filelog]
exporters: [logging]
我的消费者应用程序是。净核心。到目前为止,我刚刚从融合的kafka dotnet GitHub页面获得了一个基本的生产者/消费者示例(所有这些都适用于简单消息,但不适用于OTEL代理发布的Protobuf消息)。我在这里找到了Protobuf消费者示例,但如何生成proto类来反序列化OTEL日志呢。我有点迷路了。。。
Confluent repo中给出的示例要求Protobuf消息遵循特定于Confluent Schema注册表的格式。
根据您的Otel配置,它没有任何关于此类事情的信息,因此,您需要用C#编写您自己的Deserializer实现以用于原型对象
我将如何生成原型类来反序列化Otel日志
我猜你会从这里生成物体
https://github.com/open-telemetry/opentelemetry-proto
我试图阅读和打印从Kafka使用Apache Flink的原型消息。 我遵循官方文件,但没有成功:https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/serialization/third_party_serializers/ Flink消费者代码是: 反序列化器代码是:
我需要通过flink消费Kafka,不幸的是,Kafka消息是在serde中使用原型,完全不知道如何处理它,这里是来自互联网的代码,但我不能使它工作。 这不起作用,它会让NPE: 有人知道我做错了什么吗?使用twitter ProtobufSerializer是唯一值得拥有protobuf的方法吗?还是还有别的路要走?
我使用协议缓冲区在c和c#客户机-服务器应用程序之间发送和接收数据。我用protobuf网来解决这个问题。我有两个原始文件,一个请求命令和一个响应命令。我能够将命令从c#客户端发送到c服务器并进行反序列化。但我不能用c#反序列化。 我在缓冲区中以字节为单位获取数据,但它不会在响应命令中反序列化。
主要目标是聚合两个Kafka主题,一个压缩慢速移动数据,另一个每秒接收一次的快速移动数据。 我已经能够在简单的场景中使用消息,例如KV(Long, String),使用如下内容: 但是,当您需要从 AVRO 反序列化时,这似乎不是方法。我有一个KV(字符串,AVRO),我需要消费。 我尝试从AVRO模式生成Java类,然后将它们包含在“应用”中,例如: 但这似乎不是正确的方法。 是否有任何文档/示
给定一个带有一个字符串字段的简单protobuf消息: 和打印它的示例代码: 此输出的结果将是: 每个消息(实际上是每个字段)都有“\n”换行符。这显然对伐木工人不利。 用Gson序列化会更糟,因为Gson将序列化生成的许多其他字段... 我们如何将protobuf消息转换为没有换行符的单个字符串?
我试图使用ConsumerSeeKaware,阅读kafka主题中可用的最后一条消息。消息类型是Avro对象列表。我能成功地做到这一点。但在反序列化过程中会失败。该消息使用spring-cloud-stream-kafka框架生成。消息具有contentType。 我知道avro消息可以像下面这样反序列化。 但不管用。可能是因为两件事。 > 消息是avro对象的列表。但我正在尝试使用Avro模式创