SpringBoot配置Actuator组件,实现系统监控

网友投稿 453 2022-10-19


SpringBoot配置Actuator组件,实现系统监控

目录一、Actuator简介二、与SpringBoot2.0整合 1、核心依赖Jar包2、Yml配置文件三、监控接口详解 1、Info接口2、Health接口3、Beans接口4、Conditions接口5、HeapDump接口6、Mappings接口7、ThreadDump接口8、ShutDown接口四、源代码地址

一、Actuator简介

监控分类

Actuator 提供Rest接口,展示监控信息。

接口分为三大类:

应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与SpringBoot应用相关的配置类信息。

度量指标类:获取应用程序运行过程中用于监控的度量指标,比如:内存信息、线程池信息、HTTP请求统计等。

操作控制类:提供了对应用的关闭等操作类功能。

二、与SpringBoot2.0整合

1、核心依赖Jar包

    org.springframework.boot

    spring-boot-starter-actuator

2、Yml配置文件

# 端口

server:

  port: 8016

spring:

  application:

    # 应用名称

    name: node16-boot-actuator

management:

  endpoints:

    web:

      exposure:

        # 打开所有的监控点

        include: "*"

      # 自定义监控路径 monitor

      # 默认值:http://localhost:8016/actuator/*

      # 配置后:http://localhost:8016/monitor/*

      base-path: /monitor

  endpoint:

    health:

      show-details: always

    shutdown:

      # 通过指定接口关闭 SpringBoot

      enabled: true

  # 可以自定义端口

  # server:

  #   port: 8089

# 描述项目基础信息

info:

  app:

    name: node16-boot-actuator

    port: 8016

    version: 1.0.0

    author: cicada

三、监控接口详解

1、Info接口

Yml文件中配置的项目基础信息

路径:http://localhost:8016/monitor/info

输出:

{

    "app": {

        "name": "node16-boot-actuator",

        "port": 8016,

        "version": "1.0.0",

        "author": "cicada"

    }

}

2、Health接口

health 主要用来检查应用的运行状态

路径:http://localhost:8016/monitor/health

输出:

{

    "status": "UP",

    "details": {

        "diskSpace": {

            "status": "UP",

            "details": {

                "total": 185496236032,

                "free": 140944084992,

                "threshold": 10485760

            }

        }

    }

}

3、Beans接口

展示了 bean 的类型、单例多例、别名、类的全路径、依赖Jar等内容。

路径:http://localhost:8016/monitor/beans

输出:

{

    "contexts": {

        "node16-boot-actuator": {

        "beans": {

            "endpointCachingOperationInvokerAdvisor": {

                "aliases": [],

                "scope": "singleton",

                "type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor",

                "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]",

                "dependencies": ["environment"]

            }

        }

    }

}

4、Conditions接口

查看配置在什么条件下有效,或者自动配置为什么无效。

路径:http://localhost:8016/monitor/conditions

输出:

{

    "contexts": {

        "node16-boot-actuator": {

            "positiveMatches": {

                "AuditAutoConfiguration#auditListener": [{

                    "condition": "OnBeanCondition",

                    "message": "@ConditionalOnMissingBean"

                }],

    }

}

5、HeapDump接口

自动生成Jvm的堆转储文件HeapDump,可以使用监控工具 VisualVM 打开此文件查看内存快照。

路径:http://localhost:8016/monitor/heapdump

6、Mappings接口

描述 URI 路径和控制器的映射关系

路径:http://localhost:8016/monitor/mappings

输出:

{

    "contexts": {

        "node16-boot-actuator": {

            "mappings": {

                "dispatcherServlets": {

                    "dispatcherServlet": [ {

                        "handler": "Actuator web endpoint 'auditevents'",

                        "predicate": "{GET /monitor/auditevents || application/json]}",

                        "details": {

                            "handlerMethod": {

                                "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.Operat

                                "name": "handle",

          &nbDzwxgDRFsEsp;                     "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"

                            },

                            "requestMappingConditions": {

                                "consumes": [],

                                "headers": [],

                                "methods": ["GET"],

                                "params": [],

                                "patterns": ["/monitor/auditevents"],

                                "produces": [{

                      DzwxgDRFsE              "mediaType": "application/vnd.spring-boot.actuator.v2+json",

                                    "negated": false

                                }, {

                                    "mediaType": "application/json",

                                    "negated": false

                                }]

                            }

                        }

                    }

            }

    }

}

7、ThreadDump接口

展示线程名、线程ID、是否等待锁、线程的状态、线程锁等相关信息。

路径:http://localhost:8016/monitor/threaddump

输出:

{

    "threads": [{

        "threadName": "DestroyJavaVM",

        "threadId": 34,

        "blockedTime": -1,

        "blockedCount": 0,

        "waitedTime": -1,

        "waitedCount": 0,

        "lockName": null,

        "lockOwnerId": -1,

        "lockOwnerName": null,

        "inNative": false,

        "suspended": false,

        "threadState": "RUNNABLE",

        "stackTrace": [],

        "lockedMonitors": [],

        "lockedSynchronizers": [],

        "lockInfo": null

    }

    ]

}

8、ShutDown接口

优雅关闭 Spring Boot 应用,默认只支持POST请求。

路径:http://localhost:8016/monitor/shutdown

四、源代码地址

github地址:知了一笑

https://github.com/cicadasmile/spring-boot-base

码云地址:知了一笑

https://gitee.com/cicadasmile/spring-boot-base

以上就是SpringBoot配置Actuator组件,实现系统监控的详细内容,更多关于SpringBoot配置Actuator的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:德国罗森伯格被授予“数据中心优秀产品解决方案”
下一篇:北京兆维数据中心
相关文章

 发表评论

暂时没有评论,来抢沙发吧~