18.1 使用Actuator MBean
18.1 使用Actuator MBean
我们可以回头看一下表16.1,除了“/heapdump”之外,这里列出的所有端点均暴露成了MBean。我们可以使用任意的JMX客户端连接Actuator端点MBean。借助Java开发工具集中的JConsole,我们可以看到Actuator MBean列到了org.springframework.boot域下,如图18.1所示。
Actuator MBean端点非常好的一点在于它们默认就是对外暴露的。我们没有必要明确声明要包含哪些MBean端点,但是对于HTTP端点,我们是需要这样做的。我们可以通过设置management.endpoints.jmx.exposure.include和management.endpoints.jmx.exposure.exclude属性来缩小可选的范围。例如,我们想要限制Actuator端点只暴露“/health”“/info”“/bean”和“/conditions”端点,那么可以按照如下的方式设置management.endpoints.jmx.exposure.include:
1 | management: |
我们只想排除其中的几个端点的话,可以按照如下的方式设置management.endpoints. jmx.exposure.exclude属性:
1 | management: |
在这里,我们使用management.endpoints.jmx.exposure.exclude排除了“/env”和“/metrics”端点。所有其他的Actuator端点依然会暴露为MBean。
要在JConsole中调用一个或多个Actuator MBean所托管的操作,可以在左侧树中展开MBean端点,然后在Operations下选择所需的操作。
例如,你想要探查tacos.ingredients包的日志级别,那么可以展开LoggersMBean并点击名为loggerLevels的操作,如图18.2所示。在右上方的表单中,在name文本域中输入包名(tacos.ingredients),然后点击loggerLevels按钮。
在点击loggerLevels按钮之后,将会弹出一个对话框,展现来自“/loggers”端点MBean的响应,大致如图18.3所示。
尽管JConsole UI的使用方式有些笨拙,但是你应该可以掌握它的技巧并使用相同的方式来探索其他的Actuator端点。
如果你不喜欢JConsole,也没有问题,有很多其他的JMX客户端可供选择。