首页 > 解决方案 > 执行器运行状况返回“数据库关闭”时的日志

问题描述

如果 DB 已关闭,我们希望生成 CloudWatch 警报,因此我试图查看是否可以解析执行器/健康端点的响应,并在响应返回 DB down 时记录自定义错误代码。

我在 StackOverflow 上发现了一些类似的问题,但那里没有提供解决方案。

标签: spring-bootspring-boot-actuator

解决方案


如果其他人也想做同样的事情,我想在这里发布答案在进行了大量研究之后,我认为有两种方法可以做到这一点。

  1. 使用过滤器 - 使用 ContentCachingResponseWrapper 缓存响应,使用对象映射器读取响应,然后使用 contentCachingResponseWrapper.copyBodyToResponse() 重新填充响应。查看 spring-boot git 存储库问题,看起来做拦截器是可能的,但似乎 hacky 并且引导团队建议使用过滤器。

  2. 使用自定义健康指标 - 自动连接 ApplicationContext 并获取 Spring bean DataSourceHealthIndicator,然后在其上调用 health() 函数。

我有两种方法,但我继续使用#1,因为#2 将进行两次数据库健康检查。


推荐阅读