前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot Application 监控利器: Spring Boot Actuator

Spring Boot Application 监控利器: Spring Boot Actuator

作者头像
happyJared
发布2019-04-18 20:29:07
2.7K0
发布2019-04-18 20:29:07
举报
文章被收录于专栏:happyJaredhappyJaredhappyJared

前言

接触和使用 Spring Boot,当然要知道 Spring Boot 的四大核心,包括:

  • Auto Configuration(自动配置)
  • Starter Dependency(启动依赖)
  • Spring Boot CLI (Command-Line Interface,命令行界面)
  • Spring Boot Actuator(监控利器)

其中,Actuator 的出现,更是帮助了开发者可以更轻松的监控并管理应用程序。

具体到 Spring Boot Application 中,只需要简单的引入 spring-boot-starter-actuator 依赖,配置开启相应的 Endpoint ,我们就可以通过 HTTP 或 JMX 的方式来访问这些暴露端点,以获取具体的监控信息:

  • 相关依赖
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

Endpoints

从 Spring Boot 2.0 起,默认 Actuator 的基本访问路径带上了 /actuator ,且 HTTP 监控仅开放了 healthinfo 两个 Endpoint ,在 application.yml 配置文件中可以更改这些配置:

  • 配置信息
spring:
  application:
    name: spring-boot-actuator

# Actuator 配置
management:
  server:
    address: localhost
    port: 8080
  endpoint:
    health:
      show-details: always
    shutdown:
      enabled: true
  endpoints:
    enabled-by-default: true
    web:
      exposure:
        include: "*"
        exclude:
        - auditevents
        - caches
    jmx:
      exposure:
        include:
        - info
        - health
        exclude: configprops

在应用启动之后,通过访问 http://localhost:8080/actuator 来查看 Actuator 提供的这些监控功能:

http://localhost:8080/actuator

下图列出了一些常用的 Endpoint ,HTTP 访问的方式为: http://localhost:8080/actuator/${ID}

常用的 Endpoint

常用的 Endpoint

Health Indicator

/actuator/health

Health Indicator 是 Spring Boot Actuator 中最常用的功能之一,通过访问 /actuator/health 端点,可以获取应用、磁盘、中间件等服务的状态和信息。 在 Spring Boot 中,是通过 HealthIndicatorRegistry 来收集信息的,而 HealthIndicator 用于实现具体的健康检查逻辑,目前已支持内置的 HealthIndicator 清单已包含如下:

HealthIndicator

举个例子,想通过 Actuator 来查看 Redis 的状态,只需要补充相应的依赖及配置即可:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
spring:
  redis:
    url: redis://localhost:6379

RedisHealthIndicator

Custom

幸运的是,Spring Boot Actuator 还允许开发者们自定义内容,包括 Endpoint、HealthIndicator和InfoContributor,有兴趣的可以自行看看文档资料。

Metrics

Metrics 也是 Actuator 提供支持的特色功能之一。简单来说,就是通过 Micrometer 门面把应用的一些状态指标等分发到其它监测系统中:

Monitoring Systems

如上图所示,这里以 Elastic 为例,看看具体如何使用这项功能,先补充相关依赖:

        <!-- https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-elastic -->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-elastic</artifactId>
            <version>1.1.4</version>
        </dependency>

接着完善相关配置:

management:
  metrics:
    export:
      elastic:
        enabled: true
        # Elasticsearch 服务端口
        host: http://localhost:9200

启动服务,留意到控制台输出日志中有这么行信息:

ElasticMeterRegistry

等待1分钟后,借助 Head 插件可以看到相应的采集信息:

metrics index

参考阅读

Spring Boot Actuator Spring Boot Actuator: Introduction Spring Boot Actuator: Endpoints Spring Boot Actuator: Metrics Micrometer Elastic

示例源码 欢迎关注我的个人公众号:超级码里奥 如果这对您有帮助,欢迎点赞和分享,转载请注明出处

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Endpoints
  • Health Indicator
  • Custom
  • Metrics
  • 参考阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档