附录D Metrics简介

本文主要介绍了Spark中使用的Metrics度量库,它是codahale提供的第三方度量仓库,支持Ganglia和Graphite等监控系统。Metrics包含Gauge、Counter等工具,并采用监听器模式。文章详细探讨了MetricRegistry、Gauge、Slf4jReporter和ScheduledReporter等关键类的功能和作用,旨在帮助读者深入理解Spark的度量系统。
摘要由CSDN通过智能技术生成

注:本文是为了配合《Spark内核设计的艺术——架构设计与实现》一书的内容而编写,目的是为了节省成本、方便读者查阅。书中附录D的内容都在本文呈现。

Metrics是codahale提供的第三方度量仓库。Metrics作为一款监控指标的度量类库,可以为第三方库提供辅助统计信息,还可以将度量数据发送给Ganglia和Graphite以提供图形化的监控。

      Metrics也采用了监听器模式,提供了Gauge、Counter、Meter、Histogram、Timer等度量工具类以及健康检查(HealthCheck)功能。想了解更多Metrics的内容,读者可以访问Metrics官网:http://metrics.dropwizard.io/3.2.2/

本文将对Metrics中的核心类进行介绍,方便读者对Spark度量系统更加细致深入的理解。

MetricRegistry

MetricRegistry是Metrics提供的度量容器,这里先列出MetricRegistry的主要结构。

public class MetricRegistry implements MetricSet {
  private final ConcurrentMap<String, Metric> metrics;
  private final List<MetricRegistryListener> listeners;
}
从上面代码可以看出MetricRegistry中会缓存各种度量和监听器,下面对MetricRegistry中的一些方法进行介绍。

1、name

功能描述:构建形如“字符串1.字符串2…字符串N-1.字符串N”这样的字符串。任何空值或空字符串都将被过滤。
    public static String name(String name, String... names) {
        final StringBuilder builder = new StringBuilder();
        append(builder, name);
        if (names != null) {
            for (String s : names) {
                append(builder, s);
            }
        }
        return builder.toString();
    }

2、notifyListenerOfAddedMetric

功能描述:当有新的Metric添加到ConcurrentMap<String, Metric> metrics时,调用此方法。根据Metric的子接口的不同,调用不同方法。例如:Gauge则调用监听器的onGaugeAdded;Counter则调用监听器的onCounterAdded;Histogram则调用监听器的onHistogramAdded。
    private void notifyListenerOfAddedMetric(MetricRegi
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值