kafka监控系统

news/2024/7/20 13:25:18 标签: 大数据, java, 内存管理

Metrics-Java版的指标度量工具之一

Metrics-Java版的指标度量工具之二

JAVA Metrics 度量工具使用介绍1

JAVA Metrics度量工具 - Metrics Core 翻译

http://blog.synyx.de/2013/09/yammer-metrics-made-easy-part-i/

 

http://kafka.apache.org/documentation.html#monitoring

https://cwiki.apache.org/confluence/display/KAFKA/JMX+Reporters

kafka监控, http://www.tianjiaguo.com/system-architecture/kafka/kafka%E7%9B%91%E6%8E%A7/

如何对Kafka进行监控, http://my.oschina.net/u/218540/blog/263704

apache kafka监控系列-KafkaOffsetMonitor

------------------------------------------------------------------------------------------------------------------------------

JAVA Metrics

Kafka采用的是JAVA Metrics进行内部状态的监控,具体参考上面的blog,说的都比较清楚

JAVA Metrics还是比较好用的,有如下几种类型的度量,Gauges, Counters, Histograms, Meters,Timers.
另外还支持Health Checks

并支持多种report方式,metrics-core支持3种
默认的方式是JMX,Metrics一直将你的所有指标注册成JMX的MBeans,可以通过Jconsole或VisualVM来直接查看,详细见下面
console方式,Metrics提供了ConsoleReporter,这个周期性的打印出注册的metric到控制台上
CSV方式,Metrics提供了CsvReporter,他周期性的提供了一连串的给定目录下.csv文件

还有其他的reporter,比如将数据发给Ganlia或Graphite这样现成的监控平台
GanliaReporter  将度量指标以流式的方式返回给Ganglia服务器
GraphiteReporter  将度量指标以流式的方式返回给Graphite服务器

 

JMX,Java Management Extension

Kafka中是通过JMX来report metrics的,所以来看看JMX是什么?
http://www.ibm.com/developerworks/cn/java/j-lo-jse63/,这篇讲的比较清楚,IBM的blog质量还是值得肯定的呵呵

比如大型的系统中部署了各种各样的Java组件,每个组件的监控和管理接口都是不一样的,那么开发一个统一的监控和管理工具就很麻烦
JMX就是负责对上层管理系统提供统一的接口,以屏蔽底层resources的多样性

image

具体架构,参考下面的图,

 

image

javax.management.MBeanServer实现了Agent 的功能,以标准的方式给出了管理系统访问 JMX 框架的接口
javax.management.MBeans实现了SubAgent 的功能,以标准的方式给出了 JMX 框架访问资源的接口

参照下面,打开JConsole,就可以看到代表资源的一个个MBean,在MBean上不仅仅可以看到这些资源的当前状态,还可以动态的更改配置和做些操作
比如对于java.lang MBean提供了Java 虚拟机的监控和管理接口,
可以看到虚拟机中的线程数、线程当前的 Stack、内存管理、GC 所占用的时间、虚拟机中的对象和当前虚拟机参数等重要的参数和运行时信息
还可以对配置信息的检测和再配置,远端查看和修改当前 JVM 的 verbose 参数,甚至我们可以在远端指挥 JVM 做一次 GC

 

如何用JConsole监控kafka的Metrics信息?

首先在执行kafka脚本的时候,加上JMX_PORT,其他JMX相关配置在kafka-run-class.sh的KAFKA_JMX_OPTS已经配上了

JMX_PORT=9999 nohup bin/kafka-server-start.sh config/server.properties &

打开JConsole,

输入,service:jmx:rmi:///jndi/rmi://11.11.11.11:9999/jmxrmi

然后就可以看到,cool!!!

 

从Metrics中可以看到哪些Kafka指标?

参考,http://kafka.apache.org/documentation.html#monitoring

表有点乱,梳理一下,每个metrics的标识分为3层,MBean name,Type,Metrics name

kafka.server (MBean Name)

    BrokerTopicMetrics (Type)
        AllTopicsMessagesInPerSec,所有topic每秒messages数
        AllTopicsBytesInPerSec,所有topic每秒in的字节数
        AllTopicsBytesOutPerSe,out的字节数,没有out的message数,为啥?呵呵

    ReplicaManager
        UnderReplicatedPartitions,即有几个partition实际replica数是小于设置数的(|ISR| < |all replicas|)
        PartitionCount,  partition的个数
        LeaderCount,  leader partition的个数,如果replica因子为1,即为partition数 
        ISRShrinksPerSec, 只有broker go down的时候ISR才会发生,Shrink和Expand,一般情况下为0
        ISRExpandsPerSec, 同上

    ReplicaFetcherManager
        Replica-MaxLag, follower replica和leader replica之间的最大的lag

    ProducerRequestPurgatory
        PurgatorySize,Requests waiting in the producer purgatory

    FetchRequestPurgatory
        PurgatorySize,Requests waiting in the fetch purgatory

 

kafka.network

    RequestMetrics
        {Produce|Fetch-consumer|Fetch-follower}-RequestsPerSec, 每秒producer或consumer请求次数,follower指replica broker
        {Produce|Fetch-Consumer|Fetch-Follower}-TotalTimeMs,Request total time
        {Produce|Fetch-Consumer|Fetch-Follower}-QueueTimeMs,Time the request waiting in the request queue
        {Produce|Fetch-Consumer|Fetch-Follower}-LocalTimeMs,Time the request being processed at the leader
        {Produce|Fetch-Consumer|Fetch-Follower}-RemoteTimeMs,Time the request waits for the follower
        {Produce|Fetch-Consumer|Fetch-Follower}-ResponseSendTimeMs,Time to send the response

 

kafka.Log

    Log 
        topic-partition-LogEndoffset,每个partition的End Offset
        topic-partition-NumLogSegments,segements个数
        topic-partition-Size,partition数据的大小

 

kafka.controller

    KafkaController
        ActiveControllerCount,有几个active的controller

    ControllerStats
        LeaderElectionRateAndTimeMs,non-zero when there are broker failures
        UncleanLeaderElectionsPerSec

 

kafka.consumer

    ConsumerFetcherManager   
         ([-.\w]+)-MaxLag,Number of messages the consumer lags behind the producer by

 

Kafka中支持的JMX reporter

https://cwiki.apache.org/confluence/display/KAFKA/JMX+Reporters

转载于:https://www.cnblogs.com/fxjwind/p/3816845.html


http://www.niftyadmin.cn/n/1655027.html

相关文章

图的广度优先遍历算法_深度优先 广度优先 算法介绍

一、什么是“搜索”算法&#xff1f;算法是作用于具体数据结构之上的&#xff0c;深度优先搜索算法和广度优先搜索算法都是基于“图”这种数据结构的。因为图这种数据结构的表达能力很强&#xff0c;大部分涉及搜索的场景都可以抽象成“图”。图上的搜索算法&#xff0c;最直接…

CSS小图标

http://fortawesome.github.io/Font-Awesome/转载于:https://www.cnblogs.com/damade/p/3819634.html

ArcGIS for Android学习(一)

GIS的开发中&#xff0c;什么时候都少不了地图操作。ArcGIS for Android中&#xff0c;地图组件就是MapView&#xff0c;MapView是基于Android中ViewGroup的一个类&#xff08;参考&#xff09;&#xff0c;也是ArcGIS Runtime SDK for Android中的地图容器&#xff0c;与很多A…

SQL生成各种可重复执行的脚本

--修改一张数据库表 &#xff0c;增加一个字段&#xff0c;将该段sql生成可重复执行的脚本 IF NOT EXISTS(SELECT 0 FROM sys.syscolumns WHERE idOBJECT_ID(ref_store_data) AND nameTW_STORE_TYPE)Alter table ref_store_data add TW_STORE_TYPE int --创建表 IF OBJECT_ID (…

23web app实现上下左右滑动

转载请说明出处&#xff1a;http://blog.csdn.net/wowkk/article/category/1619287 &#xff08;创意系列&#xff09;/*最近项目须要苹果电脑&#xff0c;假设您支持学生创业并愿意赞助我们一台&#xff0c;请联系我QQ696619&#xff0c;您能够提前获取16页创意文档&#xff0…

统计页面停留时间计算

一、页面停留时间与网站停留时间是如何计算出来的&#xff1f; 假设用户访问了网站的主页&#xff08;Home&#xff09;。分析工具将这个访问者标记为一个Visit&#xff0c;接着这个访问者又浏览了另外两个页面&#xff08;Page2和Page3&#xff09;&#xff0c;然后他离开了你…

判断用户是否登录弹框

应用场景&#xff1a;某个操作需要用户登录才可以访问&#xff0c;使用方法。 1&#xff09;天猫使用了两种方法。一种cookie判断&#xff1a; i.用户未登录&#xff0c;没有生成cookie,弹出登录框。 ii.用户登录后生成cookie iii.删除cookie要求重新登录 vi. 在当前页面之外打…

WCF初探-2:手动实现WCF程序

1.前言 上一篇&#xff0c;我们通过VS自带的模板引擎自动生成了一个wcf程序&#xff0c;接下来我们将手动实现一个wcf程序。由于应用程序开发中一般都会涉及到大量的增删改查业务&#xff0c;所以这个程序将简单演示如何在wcf中构建简单的增删改查服务。我们知道WCF是一组通讯服…