• SpringBoot中集成Actuator实现监控系统运行状态


    场景

    假设一个SpringBoot项目开发完毕部署到生产环境中,刚好出现线上问题,而运维希望能提供一些工具

    帮助定位问题。

    再假设应用部署成功,但是发现运行方式与预期不一致,通过查看日志,发现加载的Bean自动配置有误,

    在生产环境中没法直接调试,用什么办法来解决问题。

    SpringBoot提供了Actuator来支持这类需求。

    若依前后端分离版手把手教你本地搭建环境并运行项目:

    https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662

    在上面的基础上搭建起来项目。

    注:

    博客:
    https://blog.csdn.net/badao_liumang_qizhi
    关注公众号
    霸道的程序猿
    获取编程相关电子书、教程推送与免费下载。

    实现

    1、添加Actuator依赖

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

    2、修改application.yml,修改端口号为9999(如果有必要,默认是8080)

    #Actuator配置
    management:
      server:
        #配置端口
        port: 9999

    3、启动项目访问

    http://localhost:9999/actuator/

    默认只开启这几个端点。

    如果在若依框架中访问时提示无法访问,需要放开鉴权

    4、配置开启全部端点

    #Actuator配置
    management:
      server:
        #配置端口
        port: 9999
      #开放endpoints
      endpoints:
        web:
          exposure:
            #开放所有
            include: '*'

    此时再访问

    5、端点明细

    HTTP 方法 路径 描述
    GET /auditevents 显示应用暴露的审计事件 (比如认证进入、订单失败)
    GET /beans 描述应用程序上下文里全部的 Bean,以及它们的关系
    GET /conditions 就是 1.0 的 /autoconfig ,提供一份自动配置生效的条件情况,记录哪些自动配置条件通过了,哪些没通过
    GET /configprops 描述配置属性(包含默认值)如何注入Bean
    GET /env 获取全部环境属性
    GET /env/{name} 根据名称获取特定的环境属性值
    GET /flyway 提供一份 Flyway 数据库迁移信息
    GET /liquidbase 显示Liquibase 数据库迁移的纤细信息
    GET /health 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供
    GET /heapdump dump 一份应用的 JVM 堆信息
    GET /httptrace 显示HTTP足迹,最近100个HTTP request/repsponse
    GET /info 获取应用程序的定制信息,这些信息由info打头的属性提供
    GET /logfile 返回log file中的内容(如果 logging.file 或者 logging.path 被设置)
    GET /loggers 显示和修改配置的loggers
    GET /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
    GET /metrics/{name} 报告指定名称的应用程序度量值
    GET /scheduledtasks 展示应用中的定时任务信息
    GET /sessions 如果我们使用了 Spring Session 展示应用中的 HTTP sessions 信息
    POST /shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
    GET /mappings 描述全部的 URI路径,以及它们和控制器(包含Actuator端点)的映射关系
    GET /threaddump 获取线程活动的快照

    6、访问其中一个端点url

    http://localhost:9999/actuator/health

    这表示当前Spring容器运行正常。

    如果要看health端点的详细信息,需要配置

    #Actuator配置
    management:
      server:
        #配置端口
        port: 9999
      #开放endpoints
      endpoints:
        web:
          exposure:
            #开放所有
            include: '*'
      #查看详细的健康信息
      endpoint:
        health:
          show-details: always

    7、同时还支持接口优雅关闭,默认是关闭的,需要配置开启

    #Actuator配置
    management:
      server:
        #配置端口
        port: 9999
      #开放endpoints
      endpoints:
        web:
          exposure:
            #开放所有
            include: '*'
      #查看详细的健康信息
      endpoint:
        health:
          show-details: always
        #开启接口优雅关闭
        shutdown:
          enabled: true

    然后使用POST请求方式访问接口

    http://localhost:9999/actuator/shutdown

  • 相关阅读:
    【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
    读取Webpage表中的内容
    各种排序算法的分析及java实现
    运行一个Hadoop Job所需要指定的属性
    Hbase常见异常
    Gora官方文档之二:Gora对Map-Reduce的支持
    Linux 系统挂载数据盘
    Gora快速入门
    Gora官方范例
    在Eclipse中运行Nutch2.3
  • 原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/16164999.html
Copyright © 2020-2023  润新知