目录
引用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应用监控指标使用的资料请关注我们其它相关文章!










