大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

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:003420
用户头像

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

关注

评论

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

人工智能解决方案 --- 智能运维(AIOps)

micklongen

人工智能 AIOPS 知识图谱 智能运维 数据工程

linux之awk使用技巧

入门小站

Linux

Go 扇入 / 扇出

baiyutang

golang 10月月更

👊 【Spring技术特性】带你看看那些可能你还不知道的特性技巧哦!

码界西柚

Java spring Spring特性 10月月更

Spring 框架学习

风翱

spring 10月月更

微信小程序获取用户授权的思路

Changing Lin

10月月更

趣说 Node.js 的事件循环

Regan Yue

node.js Regan Yue 10月月更

初始化 Ubuntu 工作环境

看山

ubuntu 10月月更

Prometheus 基础查询(四)修饰符

耳东@Erdong

Prometheus 10月月更

Minio环境搭建

Fox666

Minio 分布式文件存储

未来已来,运营商如何驱动区块链应用创新提速?

CECBC

区块链将规则写入代码 重构市场新制度

CECBC

Kafka 生产环境部署指南

Se7en

央行数字货币即将破茧,一场大变局,震撼全球

CECBC

linux【redhat&ubuntu】下ffmpeg-3.1安装编译及视频转码

程序员架构进阶

架构 ffmpeg 视频流 10月月更

WEB图像优化

devpoint

性能优化 image 图像格式 10月月更

越来越被需要的售前工程师·「这就是售前」前言

jiezhao

售前 企业服务

Linux system hardening: adding hidepid to /proc mount point

卓丁

Linux linux security proc hidepid

Win11安装PyTorch

IT蜗壳-Tango

10月月更

微博评论高性能高可用计算架构设计

看,有只猪

Java 面试八股文之数据库篇(一)

Dobbykim

手机影像二十载,AI多摄会是终极答案吗?

脑极体

分布式文件存储系统Minio实战

Fox666

Minio 分布式文件存储

018云原生之基础架构

穿过生命散发芬芳

云原生 10月月更

CPU、指令集、微架构概念学习

轻口味

10月月更

【Flutter 专题】133 图解自定义 ACEWaterButton 水波纹按钮

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

跳槽时需要注意的事项

石云升

跳槽 职场经验 10月月更

【设计模式】第四篇 - 简单工厂

Brave

设计模式 工厂模式 10月月更

【LeetCode】环形链表Java题解

Albert

算法 LeetCode 10月月更

在线字符串哈希/散列工

入门小站

工具

博鳌亚洲论坛国际科技与创新论坛第二届大会区块链分论坛紧密筹备中

时空云

区块链 博鳌 亚洲论坛

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