这个包主要是与Kafka度量相关的。

一、KafkaTimer.scala
对代码块的运行进行计时。仅提供一个方法: timer——在运行传入函数f的同时为期计时
二、KafkaMetricsConfig.scala
指定reporter类,以逗号分隔的reporter类,比如kafka.metrics.KafkaCSVMetricsReporter,这些类必须要在claasspath中指定。另外指定了度量的轮询间隔,默认是10秒。
三、KafkaMetricsReporter.scala
KafkaMetricsReporterMBean是基本trait。客户如果要自己定制reporter的话除了要实现KafkaMetricsReporter之外还要实现这个MBean以满足标准的MBean规范。该trait定义了3个抽象方法:
1. startReporter: 调用yammer的CsvReporter的start方法开启reporter
2. stopReporter: 调用yammer的CsvReporter的shutdown方法关闭reporter
3. getMBeanName: 获取MBean的名称,格式为:kafka:type=kafka.metrics.KafkaCSVMetricsReporter
该scala文件还提供了第二个trait: KafkaMetricsReporter,该trait只有一个方法init,在KafkaCSVMetricsReporter.scala中实现了该init方法
 
最后,该scala还有一个object: KafkaMetricsReporter。该object维护了一个AtomicBoolean的ReporterStarted变量,标识该reporter是否已经启动,并在启动reporter的过程中充当锁的作用。该object唯一的方法startReporters就是启动MetricConfig中定义的所有reporter——具体方法是调用Utils.createObject方法通过反射机制创建所有reporter,并初始化每个reporter,最后将reporter注册到MBean中。
四、KafkaCSVMetricsReporter.scala
该scala可以说Kafka默认提供的一个具体reporter。一共提供了两个MBean:KafkaCSVMetricsReporterMBean和KafkaCSVMetricsReporter。我们先说第一个:KafkaCSVMetricsReporterMBean。该trait是一个私有trait,就是简单地继承了KafkaMetricsReporterMBean。
而第二个trait继承了KafkaMetricsMBean和KafkaCSVMetricsReporterMBean,因而实现了前两个trait的4个方法,分别是init, getMBeanName, startReporter和stopReporter。值得一提的是,在init方法中它会创建一个默认为kafka_metrics的子目录,然后判断是否kafka.csv.metrics.reporter.enabled设定为true,如果true的话调用startReporter方法开启report,否则就直接结束。
五、KafkaMetricsGroup.scala
该scala定义了一个trait和一个object。就KafkaMetricsGroup trait而言,顾名思义,这应该是个metric组,定义了很多方法,主要的方法就是newGauge、newMeter、newHistogram和newTimer调用yammer框架的api创建不同的度量元对象。
而该scala的object: KafkaMetricsGroup分别为consumer、server、producer定义了各自的metric列表。当然还提供了remove方法删除给定clientId的metric

最新文章

  1. 剑指offer题目31-40
  2. [stm32] 利用uC-BmpCvt软件生成uc-gui可调用的bmp图片
  3. android自定义弹出框样式实现
  4. 图文解说:Nginx+tomcat配置集群负载均衡
  5. 给你完美浪漫的七夕,APICloud送你双人电影票!
  6. ACM常用算法及练习(2)
  7. hdu 3886 Final Kichiku “Lanlanshu” 数位DP
  8. PhotoSwipe简介
  9. Eclipse打JAR包的使用
  10. Maven服务器搭建
  11. 用node搭建简单的静态资源管理器
  12. 在web工程中设置首页的页面
  13. 图像处理程序框架—MFC相关知识点
  14. 解决input框自动填充为黄色的问题
  15. QT之Http请求
  16. 4月10日java上机任务
  17. RocketMQ_问题_启动控制台console报错,connect to <null> failed
  18. HashMap是如何实现快速存取的
  19. NVMe标准规范
  20. 判断元素16种方法expected_conditions

热门文章

  1. EF6(CodeFirst)+MySql开发脱坑指南
  2. 页面动态加入<script>标签并执行代码
  3. java提高篇(十)-----详解匿名内部类
  4. CSS media queries
  5. [翻译]AKKA笔记 - LOGGING与测试ACTORS -2 (一)
  6. Http Header里的Content-Type
  7. gulp:更简单的自动化构建工具
  8. [Java面试八]Hibernate总结以及在面试中的一些问题.
  9. Linux初学 - 解决chkconfig Segmentation fault(core dumped)
  10. IOS开发之控件篇UINavigationController第一章 - 介绍