是否可以将 Actuator health api 响应结构更改为自定义响应

Is it possible to change Actuator health api response structure to custom response

我为不同的数据库编写了 healthIndicators,这些数据库扩展了 spring 的 AbstractHealthIndicator。

但是最终消费者期望以不同的格式响应,其中期望的公共键和数据是不同的。

实际:

{
    "status": "DOWN",
    "details": {
        "B": {
            "status": "UP",
            "details": {
                "reachable": true
            }
        },
        "A": {
            "status": "DOWN",
            "details": {
                "reachable": false
            }
        }
    }
}

预计:

{
    "result": true,
    "data": {
        "modules": [
            {
              "name": "A",
              "status": "OK"
            },
            {
                "name": "B",
                "status": "DOWN"
            },
        ]
    }
}

是否可以编写一个转换器,它可以做到这一点?

我认为您不能在不更改内部执行器代码的情况下更改 /health 端点的格式。

然而,您可以创建自己的端点来维护对 Health 端点的引用(毕竟它是一个 bean,因此可以被注入),这样它 @GetOperation 就会调用原始的“health” " 端点,获取结果并将其转换为您的自定义格式。

原来的 Health Endpoint 已实现 in this class