AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

LinkedIn 详细介绍了由他们开源的 Kafka Monitor

  • 2016-06-14
  • 本文字数:1200 字

    阅读完需:约 4 分钟

在 2016 年 4 月份举行的 Kafka 峰会上,LinkedIn 在 Apache 2.0 许可协议开源 Kafka Monitor,并于近日详细介绍了该监控工具的架构以及他们最初的构建动机。在年初的时候,LinkedIn 曾在一篇有关Kafka 整体应用的文章中简单地提及过Kafka Monitor,但并没有详细介绍该项目的语义组成或者背后的动机。

Kafka Monitor 项目的动机有三个:

  1. 需要监控和测试 Kafka 部署并跟踪主干稳定性,以便他们能够尽早捕获正在开发的变更集中的问题;
  2. 需要不间断地在生产集群上监控 SLA,并不断地在测试集群上运行回归测试;
  3. 现有的监控框架无法满足其用例的扩展性、模块化需求,他们需要一个自定义的客户端库。

网站可靠性工程部门过去已经监控了输入速率、离线分区数和正在复制的分区数等指标,以确定 Kafka 集群的可用性和系统整体的健康状况。然而,问题在于,这类原始的值本身无法表明集群在终端用户体验方面是否真的可用。

在 LinkedIn 的公开出版物 Keystone Pipeline 里,他们提到了两个潜在的 Kafka 候选监控方案,微软的一个项目和Netflix Kafka 监控,但最终确定它们不适合自己的应用场景。

Kafka Monitor 允许开发人员组合模拟各种故障场景的模块,如 GC 中断、broker 硬杀及“滚动弹出(rolling bounces)”、磁盘故障,并随着场景进行收集有关服务运行时行为的指标。每次当生产者创建消息时抛出的异常被捕获,衡量生产者服务错误率的指标就会增加。消费者服务会跟踪一个由 Kafka 分区分割的增量索引计数器以及消息净荷的时间戳,以便度量消息丢失率、重复率以及端到端延迟。

Kafka Monitor 实例运行在一个单独的 Java 进程中,运行多个测试,介于用户或消费者服务与 Kafka 集群之间。Kafka Monitor 收集的运行时指标包括生产者服务的生产效率、消费者服务的消费效率、消息丢失、消息重复和端到端延迟。多个 Kafka Monitor 跨多个 Kafka 集群运行大量的测试场景,这可以由一个复制服务通过镜像方式捕获跨集群的总体延迟指标。

Kafka Monitor 原生支持 Java,但也为非 JVM 语言提供了一个 REST 接口。这对开源社区有着特殊的意义,LinkedIn 的 Dong Lin 表示:

我们一般会脱离 Apache Kafka 主干,并每季度生成一个新的内部版本,或者吸收 Apache Kafka 的新特性。脱离主干的一个显著的好处是,部署在 LinkedIn 生产集群中的 Kafka 经常有已经在 Apache Kafka 主干中检测到的问题,他们可以在 Apache Kafka 正式版本发布之前进行修复。

Kafka 项目本身包含一些系统测试,每次代码捡入时都会运行,鉴于和 Kafka 主干的紧密关系,LinkedIn 计划实现类似的系统测试。他们希望将 Kafka Monitor 和类似 Simoorg 这样的错误注入框架以及 Graphite 或类似的框架集成,以便能够通过一个单独的 Web 服务查看 Kafka Monitor 集群生成的所有指标。

LinkedIn 还简单地提到了如何设置基本的监控,生成并可视化核心指标。他们的 GitHub 页面提供了详细的信息。

查看英文原文 LinkedIn Details Open-Sourced Kafka Monitor

2016-06-14 19:005818
用户头像

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

关注

评论

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

虎年就要玩虎符 春节就要瓜分虎符虎年大礼包

区块链前沿News

Hoo虎符 Hoo 虎年 春节活动

建一座国际连锁「商场」:openEuler 的雄心与蓝图 | 开源访谈《源创者说》首播

科技热闻

电商系统微服务化

皓月

「架构实战营」

快递,菜鸟驿站,直播购物:老年人的电商之墙

脑极体

建木持续集成平台v2.2.1发布

Jianmu

DevOps 持续集成 CI/CD

聊聊 JDBC 的 executeBatch || 对比下不同数据库对 JDBC batch 的实现细节

明哥的IT随笔

数据库 性能优化 MySQL 数据库

并发不是并行

en

再见,Microsoft Academic——你好,开放式研究基础设施?

吴脑的键客

搜索引擎

ReactNative进阶(四十一):应用 FlatList 实现分组列表

No Silver Bullet

1月月更 ReactNative FlatList

「架构实战营」模块六《如何设计业务的微服务架构》作业

DaiChen

作业 模块六 「架构实战营」

百度吴甜做客央视《对话》:AI技术加持显著降低数字人生产成本

百度大脑

跟着Apple、Google大佬学优化

admin

小程序 微信 性能优化 缓存;

架构实战营 4 期第六模块作业

jialuooooo

架构实战营

(1-24/24)awesome「结构」

mtfelix

300天创作 2022Y300P

Go 语言快速入门指南:Go 实现简易Web应用

宇宙之一粟

Go web服务器 Go 语言 1月月更

ReactNative进阶(四十二):面试必备:2022 ReactNative 经典面试题总结(含答案)

No Silver Bullet

面试题 1月月更 ReactNative

在线时间戳计算时间差

入门小站

工具

架构训练营 week8 作业

红莲疾风

「架构实战营」

【优化技术专题】「系统性能调优实战」终极关注应用系统性能调优及原理剖析(上册)

码界西柚

Linux 性能调优 1月日更 系统优化 技术分析

模块六作业

黄秀明

「架构实战营」

双龙贺岁,龙蜥 LoongArch GA 版正式发布

OpenAnolis小助手

Linux 开源 新年

第六节:SpingBoot基本配置一

入门小站

springboot java

如何写好一个Java方法?

蜜糖的代码注释

Java 后端开发 写好代码

使用Cloud Application Programming模型开发OData的一个实际例子

汪子熙

API abap Cloud Studio 1月月更

PyTorch:常见错误 inplace operation

强劲九

Python 人工智能 机器学习 深度学习 PyTorch

Hoo虎符研究院 | 币圈后浪 BreederDAO区块链游戏的NFT工厂

区块链前沿News

虎符 Hoo 虎符交易所

LabVIEW播放提示声音或者音乐

不脱发的程序猿

LabVIEW 播放提示声音或者音乐

拆分电商系统为微服务

tony

模块六 - 电商系统微服务设计

圈圈gor

架构实战营 「架构实战营」

架构实战营第 4 期第 6 课作业:拆分电商系统为微服务

owl

架构实战营

中间件厂商宝兰德加入,龙蜥社区迎来新伙伴

OpenAnolis小助手

Linux 开源

LinkedIn详细介绍了由他们开源的Kafka Monitor_开源_Dylan Raithel_InfoQ精选文章