• ABC
    2019-04-09
    看了下Actuator源码和处理流程,大概总结如下:

    端点及处理方法在应用启动时初始化.
    Actuator相关代码在spring-boot-actuator-[version].jar下面.

    DefaultListableBeanFactory.getBeanNamesForAnnotation() : 按照Annotation类名来获取Bean实例名;
    EndpointDiscoverer.createEndpointBeans() : 按照获取到的Bean实例名创建EndpointBean
    AbstractWebMvcEndpointHandlerMapping.initHandlerMethods() : 根据刚才查找到的enpoints列表进行注册.
    OnEnabledEndpointCondition.getMatchOutcome() : 获取配置文件中management.endpoint.[id].enabled的值,[id]为变量值,类似management.endpoint.shutdown.enabled.


    在端点处理类(比如:org.springframework.boot.actuate.health.HealthEndpoint)的方法上添加@ReadOperation(GET)、@WriteOperation(POST)、@DeleteOperation(DELETE)可以暴露该方法到路由中,同时可以在方法参数上添加@Selector指定子端点(例如:org.springframework.boot.actuate.health.HealthEndpoint:healthForComponent(@Selector String component)方法)



    Shutdown端点:

    处理类: org.springframework.boot.actuate.context.ShutdownEndpoint
    处理方法: shutdown()

    1. 首先检查应用上下文是否为空,为空则返回无可关闭应用,不为空则继续执行;
    2. 返回关闭消息,并且新开一个线程,调用实际的关闭应用方法(this.context.close()),并设置500毫秒之后关闭应用.

    展开
    
     2
  • ABC
    2019-04-09
    回复WL同学,prometheus没有JMX支持,所以你看不到这个端点。并且web端,该端口默认不启用,如果需要,需要先开启该端口。

    作者回复: 哈,多谢帮忙回复。

    
     1
  • 英耀
    2019-08-11
    请问老师,我如何通过actuator查看到cache中具体缓存的值是什么呢?

    作者回复: actuator/cache只能看到有哪些Cache和类型,具体的值就没有在这里显示了

     1
    
  • DUZENGRASS
    2019-07-28
    我想问下视频里的Chrome是装了JSONView吗

    作者回复: 是的

    
    
  • WL
    2019-04-09
    请教一下老师我再Jconsole的endpoint中没有找到prometheus, 这是咋回事?

    作者回复: 额,我视频里的课件中有张表格里面写了Prometheus在JMX里是N/A,不是没开启,就是没有,同样的还有heapdump

    
    
  • WL
    2019-04-09
    能不能再讲一下Actuator视图可视化方面的操作, 这样看起来方便一些

    作者回复: 后面有个Spring Boot Admin的介绍,可以让你更方便的查看这些信息,不过我个人更建议想办法让这些数据和你现有的监控系统整合。

    
    
我们在线,来聊聊吧