我们已经在我们的一种应用中实现了弹簧执行器。
使用它,我们正在检查与我们的主要应用相关的外部应用的健康(ping能力)。这是一个看起来像的例子:
{
"status":"UP",
"details":{
"certificateExpiration":{
"status":"UP",
"details": {...}
},
"desi":{
"status":"UP",
"details":{
"afterCallDatetime":"Wed Mar 13 09:30:54 CET 2019",
"Desi-URL-config":"https://dependancy1Host",
"Desi-Call-URL":"https://dependancy1Host/ping",
"Desi-Call-ExecStatus":"OK-Alles gut"
}
},
"flowableDB":{
"status":"UP",
details":{
"afterCallDatetime":"Wed Mar 13 09:30:54 CET 2019",
"Flowable-Nb-ProcessDef":"7"
}
},
"legalArchivingSystem":{
"status":"UP",
"details":{
"Legal-Archiving-System-Call-URL":"http://dependancy2Host/ping",
"afterCallDatetime":"Wed Mar 13 09:30:54 CET 2019",
"Legal-Archiving-System-Call-ExecStatus":"OK-Alles gut",
"Legal-Archiving-System-URL-config":"http://dependancy2Host"
}
},
"diskSpace":{
"status":"UP",
"details":{
"total":193272475648,
"free":5613903872,
"threshold":10485760
}
},
"db":{
"status":"UP",
"details":{
"database":"Oracle",
}
},
"refreshScope":{
"status":"UP"
}
}
}
基于主要健康状况,我们已执行一些触发的基础架构操作。例如,如果主要状态为“关闭”,它将 -复制VM实例以尝试启动一个 -部署步骤失败等。
但是,据您了解,主要状态还取决于外部组件(1和2)的运行状况指示器。因此,受监管的VM可能还可以,并且其中一个外部依赖项是KO,因此它将产生意外的动作。
所以我想找到一种避免这种情况的聪明方法,并且可以:
在主要状态的定义中跳过一些运行状况指示器(如果外部依赖项之一关闭,则应在详细信息级别中显示它,但主要状态将保持UP,而VM Metrics正常,数据库等等。重要的东西)例如:
{ “状态”:“ UP” , “细节”:{ “ certificateExpiration”:{ “ status”:“ UP”, “细节”: {...} }, “ desi”:{ “ status”:“ UP”, “细节”:{ “ afterCallDatetime”:“ 2019年3月13日星期三09:30:54 CET”, “ Desi-URL-config”:“ https://dependancy1Host”, “ Desi-Call-URL”:“ https://dependancy1Host/ping”, “ Desi-Call-ExecStatus”:“ OK-Alles直觉” } }, “ flowableDB”:{ “ status”:“ UP”, 细节”:{ “ afterCallDatetime”:“ 2019年3月13日星期三09:30:54 CET”, “ Flowable-Nb-ProcessDef”:“ 7” } }, “法律档案系统”:{ “ status”:“ DOWN”, “细节”:{ “法律存档系统调用URL”:“ http://dependancy2Host/ping”, “ afterCallDatetime”:“ 2019年3月13日星期三09:30:54 CET”, “ Legal-Archiving-System-Call-ExecStatus”:“ ERROR NotFoundException ...”, “法律存档系统URL配置”:“ http://dependancy2Host” } }, “磁盘空间”:{ “ status”:“ UP”, “细节”:{ “总计”:193272475648, “免费”:5613903872, “阈值”:10485760 } }, “D b”:{ “ status”:“ UP”, “细节”:{ “数据库”:“ Oracle”, } }, “ refreshScope”:{ “状态”:“ UP” } } }
有可能吗?可自定义吗?
非常感谢