写点什么

HubSpot 是如何监控 Kafka 的性能的

  • 2015-10-11
  • 本文字数:929 字

    阅读完需:约 3 分钟

Sidekick 是数字营销公司 HubSpot 的一款产品,用于在接收者打开邮件时实时通知发送者。创建和发送通知的基础设施以 Kafka 为基础创建。 Ze’ev Klapow 是 Sidekick 基础设施团队的一名资深软件工程师。近日,他撰文介绍了他们如何在Sidekick 中监控Kafka 的性能。

Sidekick 通知管道的架构大致如下:

Ze’ev 指出,像上图这样就许多 Kafka 消费者连接在一起,需要监控每个消费者的性能,而且需要在消费者出现问题时快速定位。为此,他们开发了如下两个指标。

“增量(Delta)”

该指标用于确定消费者是否能够跟上某个主题的数据生成速度,如下图所示:

在 Kafka 中,每条消息会发送到某个主题的一个分区上,每条消息在写入时会获得一个递增的偏移量数值。消费者在消费消息时会记录它消费的最后一条消息的偏移量。增量即是该偏移量与分区头之前差异。对于每个 Kafka 消费者,他们会记录如下两个增量数据:

  • 增量总和为所有分区的增量之和。增量总和增加说明消费者太慢或数据量太大,可以考虑扩展消费者,或者增加并发。
  • 最大增量为所有分区中的最大增量。最大增量增加说明只有一个工作进程出现问题,或者分区之间没有实现很好的负载均衡。

“延迟(Lag)”

该指标用于监控消息处理延迟。在 Sidekick 中,他们会在所有的消息上都存储一个时间戳。如下图所示,总延迟为事件创建和通知发送之间的时间,可以帮助他们监控整个管道:

另外,如下图所示:

他们还可以进行更细粒度地延迟监控,这有助于在总延迟开始偏离正常轨道时进行调试。

按照 Ze’ev 的说法,上述两个指标提供了系统健康状况的一个完整视图。当消费者出现问题时,他们首先会依据下表进行问题判断:

Δ↑

情况糟糕!

有地方出现问题了。

情况可能并不坏。

增量增加但延迟稳定可能代表流量峰值或类似的问题。

Δ↑ 增量没有增加,但延迟增加。

可能是该消费者的上游存在问题。

一切正常!

复制代码
**LAG↑**

LAG↓

Ze’ev 表示,当出现问题时,此表可以为问题调试指明方向;当没有问题时,此表可以让他们对系统的性能更加自信。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-10-11 19:003598
用户头像

发布了 1008 篇内容, 共 446.5 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

App 用户新体验——Agora Native SDK 3.4.0

RTE开发者社区

人工智能 算法

阿里面试技巧来啦!!!3技术面+2交叉面+1代码面+1HR面,offer轻松拿

愚者

Java 面试 后端

外包3年,轻松从13K涨到27K,就因为吃透了这三份Java程序员必刷的算法宝典

愚者

Java 后端

架构实战营作业 M03

Shawn Liu

SpringBoot进阶篇

偏执

Java spring 后端

从培训机构出来的程序员,刚开始就18k,真的适应得来吗?

愚者

Java

使用Apache Spark管理、部署和扩展机器学习管道(十一)

Databri_AI

机器学习 spark pandas

架构实战营1期第三模块作业

五只羊

架构实战营

模块三作业:外包学生管理系统

buoge

网络攻防学习笔记 Day88

穿过生命散发芬芳

网络攻防 7月日更

2021年涌现大量低代码玩家,如何辨别低代码平台“真假”?

优秀

低代码

阿里大出血!SpringBoot/SpringCloud全套学习脑图+面试笔记免费分享了

愚者

面试 Spring Cloud Spring Boot

如何重写object虚方法

喵叔

7月日更

Vue进阶(幺捌肆):CodeMirror 应用小结

No Silver Bullet

Vue 7月日更 CodeMirror

冲锋大厂!通过率达95%的Java面试要点来啦!

愚者

Java 面试

数据结构与算法全面笔记超级牛叉,你确定不进来看看???看了你绝对不后悔!!!

偏执

Java spring 后端

花了一个星期做的面试文档后,发给在面试的朋友,他看完后竟然拿到好几个大厂的offer。震惊!!

偏执

Java 面试 后端

兄弟们来看我的Java面试资料大全!看了保证不亏,大厂欢迎你~免费的哦

偏执

Java 面试 后端

模块三作业:外包学生管理系统架构文档

Felix

[架构实战营第一期]模块三作业

trymorewang

架构实战营

字节三面成功斩获offer,非常值得一看的500+面试题

愚者

面试 字节

Java对象还活着么(画画思维导图)

Beldon.Wu

Java

外包学生管理系统架构设计

gawaine

架构实战营

学生管理系统架构设计

子豪sirius

架构实战营

手慢无!(阿里内测版)SpringCloudAlibaba高级笔记全网首次公开

Java 编程 程序员 架构师 计算机

一个 JVM 解释器bug在 AArch64 平台导致应用崩溃的问题分析

毕昇JDK社区

JVM

模块三作业

seawolflin

架构实战营

全网首发!“阿里爸爸”最新出品SpringBoot高级笔记(内部笔记!)

白亦杨

Java 编程 程序员 架构师 计算机

【架构实战营】模块三作业

Abner S.

架构实战营 #架构实战营

饕餮台风vs人类,科技游击战术的进化

脑极体

架构训练营模块3作业

慕溶枫

架构训练营

HubSpot是如何监控Kafka的性能的_语言 & 开发_谢丽_InfoQ精选文章