logo头像

From zero to HERO

Spring Boot 2 实战:应用监控度量指标门面类库Micrometer

前言

上篇文章 Spring Boot 2.x 中的 Actuator 我们提到了在Spring Boot Actuator中的metirc指标。在Spring Boot 2.x中 官方引入了新的监控门面(facade)类库Micrometer。如果你对门面不是很清楚,你应该听说过SLF4J库,它可以对log4j2,logback等日志类库进行兼容。同样的Micrometer也对Actuator的指标功能进行了门面适配。本文将对其进行简单介绍。来帮你来了解它。

作用

Micrometer的作用就是提供一个度量指标的客户端门面。你的Spring Boot 应用集成了它之后。可以对市面上流行的一些应用监控进行适配。帮助这些监控采集、格式化数据。这些监控包括:AppOptics, Azure Monitor,Netflix Atlas, CloudWatch, Datadog,Dynatrace,Elastic, Ganglia, Graphite,Humio, Influx/Telegraf,JMX,KairosDB, New Relic,Prometheus, SignalFx, Google Stackdriver, StatsD,Wavefront。作为度量门面类库,Micrometer允许您使用供应商中立的界面使用维度指标来检测代码,并作为最后一步决定监控系统。使用Micrometer检测核心库代码允许将库包含在将度量标准发送到不同后端的应用程序中。
而且拥有开箱即用的缓存,类加载器,垃圾收集,处理器利用率,线程池以及更多针对可操作洞察的解决方案。特别是Spring Boot 2.x对其进行高度的支持。

依赖引入

依赖引入取决于我们监控平台的选择,格式为:micrometer-registry-{monitorsystem}。例如我们使用Prometheus :

     <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>

在Spring Boot 2.x 引入以上依赖后,就会自动启用相关的配置。每一种监控系统的配置是不一样的,可查看相关的文档:入口

最佳实践

其实引入了依赖后我们通过actuator暴露你需要暴露的端点之后,对应的Micrometer就会自动配置。但是为了方便监控 建议我们对应用配置一些特殊的tag来更加准确的描述我们的监控实例:


@Bean
MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
  return registry -> registry.config().commonTags("application", "MYAPPNAME","instance","YOURINSTANCE");
}

以上的tag组合可以更好的来标识你的应用,特别在集群当中。

总结

Pivotal 提供的这个监控门面非常强大,而且简单,这个其实是面向运维的一个类库,对于开发者来说可定制的东西其实不多,做好配置就可以使用。而且使用该门面进行监控一般用于微服务,或者一些云原生应用集群。对于独立应用来说 个人推荐使用另一个轻量级监控工具——Spring Boot Admin 。

评论系统未开启,无法评论!