文档章节

kafka 监控之mx4j-tool

川明君
 川明君
发布于 2013/08/30 18:09
字数 381
阅读 1102
收藏 2

      线上运行kafka集群,集群运行状态察看是非常必要的。kafka本身在该方面也做的比较到位,目前从源码级反应我们可以大致有两种方式。我下面一一细说。
      kafka源码包中有kafka.tools.JmxTool.scala,部分代码如下:

object JmxTool {

  def main(args: Array[String]) {
    // Parse command line
    val parser = new OptionParser
    val objectNameOpt = 
      parser.accepts("object-name", "A JMX object name to use as a query. This can contain wild cards, and this option " +
                                    "can be given multiple times to specify more than one query. If no objects are specified " +   
                                    "all objects will be queried.")
      .withRequiredArg
      .describedAs("name")
      .ofType(classOf[String])
    val reportingIntervalOpt = parser.accepts("reporting-interval", "Interval in MS with which to poll jmx stats.")
      .withRequiredArg
      .describedAs("ms")
      .ofType(classOf[java.lang.Integer])
      .defaultsTo(5000)
    val helpOpt = parser.accepts("help", "Print usage information.")
    val dateFormatOpt = parser.accepts("date-format", "The date format to use for formatting the time field. " + 
                                                      "See java.text.SimpleDateFormat for options.")
      .withRequiredArg
      .describedAs("format")
      .ofType(classOf[String])
      .defaultsTo("yyyy-MM-dd HH:mm:ss.SSS")
    val jmxServiceUrlOpt = 
      parser.accepts("jmx-url", "The url to connect to to poll JMX data. See Oracle javadoc for JMXServiceURL for details.")
      .withRequiredArg
      .describedAs("service-url")
      .ofType(classOf[String])
      .defaultsTo("service:jmx:rmi:///jndi/rmi://:9999/jmxrmi")
       

      JmxTool.scala 的工作目的就是收集kafka集群中jvm暴露的bean信息并打印出来。具体的运行示例是:

./kafka-run-class.sh kafka.tools.JmxTool --jmx-url service:jmx:rmi:///jndi/rmi://:9999/jmxrmi
    

      但是利用该种监控方式,你将看到满屏不知所云的消息,不明觉厉??
      因此该种方式只是提供了一种解决方案而已,真正要做的是仿照JmxTool.scala代码写出自行监控的代码。

      难道没有更好的方案了吗???当然不是。

      下一篇我将具体讲到怎么通过Mx4jLoader得到kafka更好的监控方法。

     



     

© 著作权归作者所有

共有 人打赏支持
川明君
粉丝 7
博文 6
码字总数 2606
作品 0
朝阳
程序员
私信 提问
kafka 监控之Mx4jLoader

接上一篇kafka监控的博文讲起,在kafka 源码kafka/utils中有Mx4jLoader.scala源码,源码注释功能如下: /** If mx4j-tools is in the classpath call maybeLoad to load the HTTP interface ......

川明君
2013/08/30
0
8
Hyperic HQ 4.6.6 发布,IT资源管理平台

Hyperic HQ 4.6.6 发布,这是一个维护版本,增加了一个新插件和一个新的 mod_bmx 模块,新的 Apache Httpd 模块提供内部程序详情以及监控,可用于更好的监控 Web 服务器。 HypericHQ是一个开...

oschina
2012/06/27
1K
4
4、Spring2.x集成MX4J

一、简介 Spring的JMX支持提供了一些特性,让你能透明地将Spring应用程序集成到JMX基础实施中去。 确切地说,Spring的JMX支持提供了四种核心特性: 将任意Spring Bean自动注册为JMX MBean 灵...

飓风2000
2018/09/11
0
0
hyperic 5.8.5可否支持weblogic8.1版本

请问大神,hyperic 5.8.5可否支持监控weblogic8.1版本。我试了没成功。 按照论坛上找的帖子改了,还是监控不了。请大神帮忙看一下,谢谢! 具体的配置如下: 1、agent.properties中增加了下面...

新长征路--
2017/01/05
144
1
Hyperic HQ 5.0 Beta 发布,IT资源管理平台

Hyperic HQ 5.0 发布,该版本更好的支持 vFabric 产品,包含新的 tc Server 2.7、Web Server 5.1 和 GemFire 6.6.2 插件,改进了性能、伸缩性和稳定性。这是 5.0 系列的早期 beta 测试版本,...

oschina
2012/08/16
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
13
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
3
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部