【问题标题】:Can't see timestamps in Apache Kafka 0.10.0.0. RC4在 Apache Kafka 0.10.0.0 中看不到时间戳。 RC4
【发布时间】:2017-03-19 21:31:28
【问题描述】:

您好,我已经下载了 Apache Kafka 0.10.0.0。来自here 的 RC4,它现在能够按照here 的说明将时间戳附加到消息中。

然后我像往常一样在我的服务器上运行它,它正在接收日志。

但是当我运行 Kafka 消费者控制台查看主题时,日志看起来没有什么不同并且没有时间戳?它们以 JSON 格式发送到 Kafka,这会影响事情吗?您可以在消费者控制台中看到它们吗?如果不是在哪里?

我正在尝试查看通过我的管道的第一阶段需要多长时间。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    默认情况下,运行控制台使用者时不显示时间戳。您必须通过属性设置启用它:

    # `print.timestamp=true` requires Kafka 0.10.0+
    $ kafka-console-consumer.sh --property print.timestamp=true [...]
    

    顺便说一句,您也可以考虑添加--property print.key=true,以便控制台消费者也打印 Kafka 消息的密钥。

    此外,写入 Kafka 的应用程序必须支持新的 Kafka 0.10 消息格式,其中包括新的嵌入式时间戳。也许您看不到时间戳,因为上游应用程序/生产者从未包含任何时间戳。

    【讨论】:

    • 有没有办法让 kafka 将其添加到日志中,以便其他消费者看到它们(不仅仅是消费者控制台)?
    • 什么意思?新引入的时间戳(参见KIP-32)嵌入在实际消息中。
    • 不是我的,它没有:这是我发送给 kafka 的内容,它没有改变:"{"rsyslog_timestamp":"2016-05-18T13:47:45.320916+00:00", "消息":" - - 2016-05-18T13:47:45:320824 \"GET \/investing\/shares\/international-diversified-shares?user=user158 HTTP\/1.1\" 301 692 “}”
    • 友情提示:如果确实回答了您的问题,您应该接受答案。
    • @MichaelG.Noll 谢谢。我想出了以下(不是超级快速的解决方案),可以应用于 kafka-console-consumer ,它返回类似于 CreateTime:1507932361676 [....] `./kafka-console-consumer.sh --topic 的行。 .. --property print.key=true --property print.timestamp=true | awk -F $'\t' '开始 {OFS = FS} {if ($1 ~ /^CreateTime.*/) {a=substr($1, 12, length($1)-14); cmd = "日期-d @"a" +%F-%H:%M:%S";命令 |获取线数据;关闭(cmd); $1=""} 否则 {dat = ""};打印数据 $0}'
    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 2021-07-16
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    相关资源
    最近更新 更多