Spring Cloud(四):Actuator

作者: 聪明的奇瑞 | 来源:发表于2018-01-10 16:31 被阅读1268次

    概述

    • Spring-boot-starter-actuator 是用于监控与管理的,只需引入依赖库就能为应用添加监控端点
    • 其中 /health 端点能够全面你检查应用监控状态

    快速入门

    • 引入依赖库
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    • 控制台可看到 Actuator 为我们添加了许多端点
    2017-12-22 14:13:14.781  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/env/{name:.*}],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EnvironmentMvcEndpoint.value(java.lang.String)
    2017-12-22 14:13:14.781  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/env || /env.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.782  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/heapdump || /heapdump.json],methods=[GET],produces=[application/octet-stream]}" onto public void org.springframework.boot.actuate.endpoint.mvc.HeapdumpMvcEndpoint.invoke(boolean,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException,javax.servlet.ServletException
    2017-12-22 14:13:14.783  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/info || /info.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.784  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/health || /health.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint.invoke(javax.servlet.http.HttpServletRequest,java.security.Principal)
    2017-12-22 14:13:14.784  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/trace || /trace.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.785  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/features || /features.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.785  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/mappings || /mappings.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.786  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/auditevents || /auditevents.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public org.springframework.http.ResponseEntity<?> org.springframework.boot.actuate.endpoint.mvc.AuditEventsMvcEndpoint.findByPrincipalAndAfterAndType(java.lang.String,java.util.Date,java.lang.String)
    2017-12-22 14:13:14.786  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/configprops || /configprops.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.787  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/archaius || /archaius.json],methods=[GET],produces=[application/vnd.spring-boot.actuator.v1+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter.invoke()
    2017-12-22 14:13:14.787  INFO 9441 --- [           main] o.s.b.a.e.mvc.EndpointHandlerMapping     : Mapped "{[/env],methods=[POST]}" onto public java.lang.Object org.springframework.cloud.context.environment.EnvironmentManagerMvcEndpoint.value(java.util.Map<java.lang.String, java.lang.String>)
    
    • 比如访问 /health 端点,可以获得如下的应用健康信息
    {"description":"Composite Discovery Client","status":"UP"}
    

    常用端点

    • 某些端点属于敏感信息,需要关闭权限认证才能查看 management.security.enabled=false
    URL 描述
    /autoconfig 该端点用于获取应用自动化配置报告,帮助我们方便的找到自动化配置为什么没有生效
    /beans 描述上下文每个 bean 的情况,包括 Java 类型已经注入它的 bean,作用域等信息
    /enc 应用程序可用的所有环境属性列表,无论这些属性是否用到,其中包括环境变量、JVM 属性、命令行参数,以及配置文件
    /configprops 获取属性如何进行设置(注入或其它方式)
    /mappings 罗列出应用程序的全部接口
    /metrics 显示应用程序内存情况、线程池、JVM等信息
    /trace 返回HTTP跟踪信息,保留最近 100 条请求,包括请求的方法、路径等详细信息
    /info 显示应用的信息
    /health 显示应用的监控信息
    /dump 显示程序运行中的线程信息
    /shutdown 通过该端点关闭应用程序的远程操作,需要在配置文件里开启 endpoints.shutdown.enabled=true

    相关文章

      网友评论

        本文标题:Spring Cloud(四):Actuator

        本文链接:https://www.haomeiwen.com/subject/nyionxtx.html