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

Spring Boot & Actuator

作者头像
十毛
发布2019-03-27 15:12:41
7110
发布2019-03-27 15:12:41
举报
文章被收录于专栏:用户1337634的专栏

SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等

配置Actuator

  • pom.xml
代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
代码语言:javascript
复制
/actuator
/actuator/health
/actuator/health/{component}
/actuator/health/{component}/{instance}
/actuator/info
代码语言:javascript
复制
{
    "contexts":{
        "application":{
            "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"
                    ]
                }
            }
        }
    }
}
代码语言:javascript
复制
{
    "activeProfiles":[

    ],
    "propertySources":[
        {
            "name":"server.ports",
            "properties":{
                "local.server.port":{
                    "value":8080
                }
            }
        },
        {
            "name":"servletContextInitParams",
            "properties":{

            }
        },
        {
            "name":"systemProperties",
            "properties":{
                "java.vendor":{
                    "value":"Oracle Corporation"
                },
                "sun.java.launcher":{
                    "value":"SUN_STANDARD"
                },
                "catalina.base":{
                    "value":"C:%users\timxia\AppData\Local\Temp\tomcat.2979281870254394426.8080"
                }
            }
        }
    ]
}

常用配置

  • 如果要看到所有支持的状态查询,需要配置
代码语言:javascript
复制
management.endpoints.web.exposure.include=*
  • 显示所有健康状态,需要加配置
代码语言:javascript
复制
management.endpoint.health.show-details=always

结果

代码语言:javascript
复制
{
    "status":"UP",
    "details":{
        "db":{
            "status":"UP",
            "details":{
                "database":"MySQL",
                "hello":1
            }
        },
        "diskSpace":{
            "status":"UP",
            "details":{
                "total":335067213824,
                "free":241971175424,
                "threshold":10485760
            }
        },
        "redis":{
            "status":"UP",
            "details":{
                "version":"3.2.12"
            }
        }
    }
}

启用端点

默认情况下,除shutdown以外的所有端点均已启用。要配置单个端点的启用,请使用management.endpoint.<id>.enabled属性。以下示例启用shutdown端点:

代码语言:javascript
复制
management.endpoint.shutdown.enabled=true

另外可以通过management.endpoints.enabled-by-default来修改全局端口默认配置,以下示例启用info端点并禁用所有其他端点:

代码语言:javascript
复制
management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true

注意 禁用的端点将从应用程序上下文中完全删除。如果您只想更改端点公开(对外暴露)的技术,请改为使用include和exclude属性,详情见下文

暴露端点

要更改公开哪些端点,请使用以下技术特定的include和exclude属性:

Property

Default

management.endpoints.jmx.exposure.exclude

*

management.endpoints.jmx.exposure.include

*

management.endpoints.web.exposure.exclude

*

management.endpoints.web.exposure.include

info, health

include属性列出了公开的端点的ID,exclude属性列出了不应该公开的端点的ID exclude属性优先于include属性。包含和排除属性都可以使用端点ID列表进行配置。

注意 这里的优先级是指同一端点ID,同时出现在include属性表和exclude属性表里,exclude属性优先于include属性,即此端点没有暴露

  • 例如,要停止通过JMX公开所有端点并仅公开healthinfo端点,请使用以下属性:
代码语言:javascript
复制
management.endpoints.jmx.exposure.include=health,info

*可以用来选择所有端点。例如,要通过HTTP公开除envbeans端点之外的所有内容,请使用以下属性:

代码语言:javascript
复制
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

参考

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置Actuator
  • 常用配置
  • 启用端点
  • 暴露端点
  • 参考
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档