大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

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

关注

评论

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

盘点2020 | 疫情下的思考和学习

soolaugust

盘点2020

腾讯高工强烈推荐的“Netty速成手册”原理+应用+调优,带你将知识点一网打尽

比伯

Java 编程 程序员 架构 Netty

解析字节算法面试真题,深入探究ArrayList应用原理

小Q

Java 学习 编程 架构 面试

好久不见!这份Spring全家桶、Docker、Redis架构大礼包免费赠送

Java架构之路

Java 程序员 架构 面试 编程语言

太赞了!滴滴开源了一套分布式ID的生成系统...

Java架构师迁哥

LeetCode题解:127. 单词接龙,BFS+统计单词变化次数,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

答了Mybatis这个问题后,面试官叫我回去等通知……

田维常

mybatis

什么是全场景AI计算框架MindSpore?

华为云开发者联盟

人工智能 AI mindspore

耗时一个月整理的97道大厂Java核心面试题出炉,精心整理,无偿分享

Java架构之路

Java 程序员 架构 面试 编程语言

智慧城市建设,社区智能化系统搭建解决方案

t13823115967

智慧城市 平安小区

智慧警务可视化平台开发,重点人员管控系统搭建

t13823115967

智慧公安 智慧警务系统开发

IDEA 文档插件 DocView 版本更新:修改 UI 并支持 IDEA 2020.3 !

程序员小航

idea插件 IntelliJ IDEA 文档生成

从源码的角度搞懂 Java 动态代理!

Java架构师迁哥

VACUUM无法从表中删除死元组的三个原因

PostgreSQLChina

数据库 postgresql

一文为你详解Unique SQL原理和应用

华为云开发者联盟

数据库 sql unique

Prometheus TSDB(Part 2):预写日志(WAL)和检查点

Grafana 爱好者

云原生 Prometheus tsdb 可观察性

硬肝到秃头!Alibaba强推并发编程笔记我跪了,真的学到好多东西!

Java架构追梦

Java 学习 架构 面试 并发编程

面试被问高并发一脸懵?那是你没看过我整理得高并发回答模板

小Q

Java 学习 面试 高并发 性能调优

云图说 | 云上资源管控有神器!关于IAM,你想知道的都在这里!

华为云开发者联盟

服务 权限管理 iam

一文带你彻底了解大数据处理引擎Flink内存管理

华为云开发者联盟

大数据 数据 处理

将原则纳入到架构的生命中

soolaugust

架构 思考 设计

从 JMM 透析 volatile 与 synchronized 原理

码哥字节

volatile JVM JMM Java 25 周年 synchronized

为了SpringBoot提交Tomcat执行,我总结了这么多

小Q

tomcat 学习 面试 微服务 springboot

80%Java开发者面试都问的SpringBoot你竟不会?看完这些笔记足以

Java架构之路

Java 程序员 架构 面试 编程语言

《大数据算法》.pdf

田维常

算法

EZYTRX波场智能合约APP系统软件开发

系统开发

dubbogo 3.0:牵手 gRPC 走向云原生时代

阿里巴巴云原生

gRPC 云原生 中间件 dubbo-go Go 语言

产品策略闭环是个什么环?

万事ONES

项目管理 团队协作 需求管理 需求分析 产品策略

我和阿里P7差的不是薪资?而是Redis+微服务+Nginx+MySQL+Tomcat

Java架构之路

Java 程序员 架构 面试 编程语言

Java进阶文档:彻底搞懂JVM+Linux+MySQL+Netty+Tomcat+并发编程

Java架构之路

Java 程序员 架构 面试 编程语言

一口气说出四种幂等性解决方案,面试官露出了姨母笑~

不才陈某

Java 分布式 接口

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