Spring Cloud Actuator----shock wave 2

287 阅读2分钟

功能:

根据应用依赖和配置自动为应用创建一系列用于监控的端点

使用:

引入依赖

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

查看

使用服务地址http://localhost:8702/actuator/health 返回内容如下:

{
    "_links": {
        "self": {
            "href": "http://localhost:8702/actuator",
            "templated": false
        },
        "health": {
            "href": "http://localhost:8702/actuator/health",
            "templated": false
        },
        "info": {
            "href": "http://localhost:8702/actuator/info",
            "templated": false
        }
    }
}

常用端点说明

微信截图_20210607171523.png

常用配置说明

#监控端点
management:
  endpoints:
    web:
      #exposure:
        #公开所有端点
        #include: "*"
        #指定端点监控默认路径
      base-path: /actuator
  endpoint:
    health:
      #显示所有健康状态
      show-details: always
      #配置端点的使用,可以针对某些特定端点
    configprops:
      enabled: false
      #用来关闭应用的端口
    shutdown:
      enabled: true
#端点监控抬头
info.app.name: v1.0.1

常用端点说明

/beans 获取json格式的bean信息

{
    "contexts":{
        "application-1":{
            //bean列表
            "beans":{
             //bean的名称
                "org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration$EurekaClientConfigurationRefresher":Object{...},
                "endpointCachingOperationInvokerAdvisor":Object{...},
{                   //别名
                    "aliases":Array[0],
                    //作用域
                    "scope":"singleton",
                   //类型 "type":"org.springframework.cloud.netflix.eureka.EurekaDiscoveryClientConfiguration$EurekaClientConfigurationRefresher$$EnhancerBySpringCGLIB$$ef83a956",
                   //class物理文件地址
                    "resource":null,
                    //当前bean注入的bean
                    "dependencies":[
                        "eurekaClient",
                        "eurekaAutoServiceRegistration"
                    ]
                }

/health 应用健康指标

{
    "status":"UP",
    "details":{
    //磁盘信息
        "diskSpace":{
        //UP表示正常DOWN表示你懂得
            "status":"UP",
            "details":{
            //总共
                "total":493921234944,
                //可用
                "free":469569511424,
                "threshold":10485760
            }
        },
        "refreshScope":{
            "status":"UP"
        },
        "discoveryComposite":{
            "status":"UP",
            "details":{
                "discoveryClient":{
                    "status":"UP",
                    "details":{
                        "services":[
                            "client1-service",
                            "eureka-service"
                        ]
                    }
                },
                "eureka":{
                    "description":"Remote status from Eureka server",
                    "status":"UP",
                    "details":{
                        "applications":{
                            "CLIENT1-SERVICE":1,
                            "EUREKA-SERVICE":2
                        }
                    }
                }
            }
        },
        "hystrix":{
            "status":"UP"
        }
    }
}

env 查看环境变量

{
    "activeProfiles": [],
    "propertySources": [
        {
        //名称
            "name": "server.ports",
            "properties": {
            //内容
                "local.server.port": {
                    "value": 8702
                }
            }
        },
        {
            "name": "servletContextInitParams",
            "properties": {}
        },

loggers 查看日志相关信息

{
    "levels": [
        "OFF",
        "ERROR",
        "WARN",
        "INFO",
        "DEBUG",
        "TRACE"
    ],
    "loggers": {
        "ROOT": {
        //打印日志级别
            "configuredLevel": "INFO",
            "effectiveLevel": "INFO"
        },
        "com": {
            "configuredLevel": null,
            "effectiveLevel": "INFO"
        },

其他查看docs.spring.io/spring-boot…

自定义健康监测器

@Component
public class MyAppHealthIndicator implements HealthIndicator {
    @Override
    public Health health() {
    //逻辑配置
        return Health.down().withDetail("error", "运行错误").build();
    }
}

结果:

{
    "status": "DOWN",
    "details": {
        "myApp": {
            "status": "DOWN",
            "details": {
                "error": "运行错误"
            }
        },

自带健康监测器:引用即可使用

微信截图_20210610170549.png