温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-04-06 15:42:04 来源:亿速云 阅读:86 作者:iii 栏目:移动开发

这篇文章主要介绍“SpringBoot怎么配置Actuator组件实现系统监控”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot怎么配置Actuator组件实现系统监控”文章能帮助大家解决问题。

    一、Actuator简介

    监控分类

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

    • 接口分为三大类:

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

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

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

    二、与SpringBoot2.0整合 

    1、核心依赖Jar包

    <!-- 监控依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    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",
                                    "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
                                },
                                "requestMappingConditions": {
                                    "consumes": [],
                                    "headers": [],
                                    "methods": ["GET"],
                                    "params": [],
                                    "patterns": ["/monitor/auditevents"],
                                    "produces": [{
                                        "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

    关于“SpringBoot怎么配置Actuator组件实现系统监控”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI