详解Metrics应用监控指标的使用说明

2022-04-17 03:42:33
目录
引用Metric库RegistryGauge(仪表)Counter(计数器)Meter()Histogram(直方图)Timer(计时器)HealthCheck(健康检查)JMX报表HTTP报表其它报表MetricSet第三方库MetricsforSpring基本用法XML风格的配置java注解的方式

题前:做过虚拟化级别、系统级别、容器级别监控;应用级别监控有哪些方法可以做?

Metrics是个很好的选择。java、python、go均可支持。

Metrics可以为你的代码的运行提供无与伦比的洞察力。作为一款监控指标的度量类库,它提供了很多模块可以为第三方库或者应用提供辅助统计信息, 比如Jetty, Logback, Log4j, Apache HttpClient, Ehcache, JDBI, Jersey, 它还可以将度量数据发送给Ganglia和Graphite以提供图形化的监控。

Metrics提供了Gauge、Counter、Meter、Histogram、Timer等度量工具类以及Health Check功能。

d(); reporter.start(1, TimeUnit.MINUTES);3)); final GraphiteReporter reporter = GraphiteReporter.forRegistry(registry) .prefixedWith("web1.example.com") .convertRatesTo(TimeUnit.SECONDS) .convertDurationsTo(TimeUnit.MILLISECONDS) .filter(MetricFilter.ALL) .build(graphite); reporter.start(1, TimeUnit.MINUTES);

一些模块 metrics-json提供了json格式的序列化。
以及为其它库提供度量的能力metrics-ehcachemetrics-httpclientmetrics-jdbimetrics-jerseymetrics-jettymetrics-log4jmetrics-logbackmetrics-jvmmetrics-servlet 注意不是metrics-servlets

第三方库

metrics-librato 提供Librato Metrics报表Metrics Spring Integration 提供了Spring的集成sematext-metrics-reporter 提供了SPM报表.wicket-metrics提供Wicket应用.metrics-guice 提供Guice集成.metrics-scala 提供了为Scala优化的API.

这里重点介绍一下Metrics for Spring

Metrics for Spring

这个库为Spring增加了Metric库, 提供基于XML或者注解方式。

可以使用注解创建metric和代理类。 @Timed, @Metered, @ExceptionMetered, @Counted为注解了 @Gauge 和 @CachedGauge的bean注册Gauge为@Metric注解的字段自动装配注册HealthCheck通过XML配置产生报表通过XML注册metric和metric组

你需要在pom.xml加入

<dependency>     <groupId>com.ryantenney.metrics</groupId>     <artifactId>metrics-spring</artifactId>     <version>3.0.1</version> </dependency>

基本用法

XML风格的配置

<beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:metrics="http://www.ryantenney.com/schema/metrics"     xsi:schemaLocation="        http://www.springframework.org/schema/beans                 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd                     http://www.ryantenney.com/schema/metrics http://www.ryantenney.com/schema/metrics/metrics-3.0.xsd">     <!-- Registry should be defined in only one context XML file -->     <metrics:metric-registry id="metrics" />     <!-- annotation-driven 易采站长站must be included in all context files -->     <metrics:annotation-driven metric-registry="metrics" />     <!-- (Optional) Registry should be defined in only one context XML file -->    <metrics:reporter type="console" metric-registry="metrics" period="1m" />     <!-- (Optional) The metrics in this example require the metrics-jvm jar-->    <metrics:register metric-registry="metrics">         <bean metrics:name="jvm.gc" class="com.codahale.metrics.jvm.GarbageCollectorMetricSet" />        <bean metrics:name="jvm.memory" class="com.codahale.metrics.jvm.MemoryUsageGaugeSet" />         <bean metrics:name="jvm.thread-states" class="com.codahale.metrics.jvm.ThreadStatesGaugeSet" />         <bean metrics:name="jvm.fd.usage" class="com.codahale.metrics.jvm.FileDescriptorRatioGauge" />     </metrics:register>     <!-- Beans and other Spring config --> </beans>

java注解的方式

import java.util.concurrent.TimeUnit; import org.springframework.context.annotation.Configuration; import com.codahale.metrics.ConsoleReporter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.SharedMetricRegistries; import com.ryantenney.metrics.spring.config.annotation.EnableMetrics; import com.ryantenney.metrics.spring.config.annotation.MetricsConfigurerAdapter;  @Configuration @EnableMetrics public class SpringConfiguringClass extends MetricsConfigurerAdapter {     @Override     public void configureReporters(MetricRegistry metricRegistry) {     ConsoleReporter.forRegistry(metricRegistry).build().start(1, TimeUnit.MINUTES);     } }

注: go Metrics使用: Go语言metrics应用监控指标基本使用说明

以上就是详解Metrics应用监控指标的使用说明的详细内容,更多关于Metrics应用监控指标使用的资料请关注我们其它相关文章!