java metrics.counter_Java-Metrics指标度量工具

本文介绍了Java Metrics库,它提供了一种在代码中嵌入度量工具的方法,便于监控服务状态。文章详细讲解了Gauges和Counters两种核心功能,并通过示例展示了它们的使用方式,帮助开发者了解如何利用Metrics进行服务监控和性能指标收集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微服务架构时代,服务运行状况通过服务埋点设计越来越多。熔断器,服务网格,API网关 怎么洞悉他们运行状态,仅通过传统外部Agent采集,实现复杂,双方对接开发成本高,可能远远满足不了要求,java-metrics可以有效满足这些场景.

介绍

Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控,同时,Metrics能够很好的跟Ganglia、Graphite,influxdb 优秀监控工具整合使用,方便的提供图形化接口。基本使用方式直接将core包(目前稳定版本3.0.1)导入pom文件即可,配置如下:

com.codahale.metrics

metrics-core

3.0.1

基本功能

core包主要提供如下核心功能:

Metrics Registries类似一个metrics容器,维护一个Map,可以是一个服务 或者一个静态实例。

支持五种metric类型:Gauges、Counters、Meters、Histograms和Timers。

支持多种指标数据输出:JMX、Console,CSV文件和SLF4J loggers 等输出方式;

支持自定义扩展输出,同时也可以和Ganglia,Graphite 结合使用

Metrics类型(5种):

1. Gauges

Gauges是一个最简单的计量,一般用来统计瞬时状态的数据信息

GaugesExample.java

package example;

import java.util.Queue;

import java.util.concurrent.LinkedBlockingDeque;

import java.util.concurrent.TimeUnit;

import com.codahale.metrics.ConsoleReporter;

import com.codahale.metrics.Gauge;

import com.codahale.metrics.MetricRegistry;

/**

* User: guoenzhou

* 测试Gauges,实时统计pending状态的job个数

*/

public class GaugesExample {

/**

* 实例化一个registry,最核心的一个模块,相当于一个应用程序的metrics系统的容器,维护一个Map

*/

private static final MetricRegistry metrics = new MetricRegistry();

private static Queue queue = new LinkedBlockingDeque();

/**

* ConsoleReporter 在控制台上打印输出

*/

private static ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics).build();

public static void main(String[] args) throws InterruptedException {

reporter.start(10, TimeUnit.SECONDS);

//实例化一个Gauge

Gauge gauge = new Gauge() {

public Integer getValue() {

return queue.size();

}

};

//注册到容器中

metrics.register(MetricRegistry.name(GaugesExample.class, "pending.job", "size"), gauge);

//模拟数据

for (int i=0; i<1000; i++){

queue.add("a");

Thread.sleep(1000);

}

}

}

通过以上步骤将会向MetricsRegistry容器中注册一个指标名字为 example.GaugesExample.pending.job.size 的metrics,实时获取队列长度的指标。

输出:

-- Gauges ----------------------------------------------------------------------

example.TestGauges.pending-job.size

value = 340

18-1-2 15:03:17 ==========&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值