是否可以将 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
我为不同的数据库编写了 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