我已经使用了普罗米修斯一段时间,但很难搞清楚这一点。
我们正在实施一项由普罗米修斯监控的蓝/绿部署设置。所有出口商都是通过领事发现的,并由当地的prometheus服务器收集,该服务器将通过联邦进行清理,因此我们可以更轻松地保护设置,并且只有一个监控接入点用于整个设置。
现在,让我们说蓝色正在生产中。我们将收集延迟等指标以及系统指标,以便在必要时进行调试。
当绿色未投入生产时,其大部分服务器将被停止。所以不会有绿色的mysql响应。
解决此问题的最佳做法是什么?我们无法单独检查mysql,因为这样可以使蓝色数据库关闭,而绿色响应即使通过绿色也不会生产。 如果我们同时检查两者,那么在关闭我们不再关心的非活动方时会有警报。我们可以手动切换警报优先级,但这似乎不是一个好的解决方案。
我一直在网上搜索但是只提到监控服务而不是机器。虽然我同意,如果绿色完全或部分停止,我们无法检查绿色mysql服务。
我们可以从我们的某台机器中读出一个变量并用它来切换监控优先级吗?我不认为普罗米修斯支持这一点。
任何提示或阅读材料都指向我的方向是值得赞赏的。
答案 0 :(得分:1)
另一个不泄漏到所有警报中的选项是在您更改环境时切换静音。
答案 1 :(得分:0)
我实际上是要自己回应。
我们将向我们的应用程序添加一个/ metrics页面,该页面会知道由于共享的consul k / v商店,蓝色或绿色是否处于活动状态。
结果将是这样的。
myapp_blue_live{region=xxx} 0
myapp_green_live{region=xxx} 1
多亏了这一点,我们可以在警报中使用Prometheus的if语法,并说出以下(简化)配置:
if myapp_blue_live == 0 and mysql_errors > 0
这样我们的监控始终遵循实时环境。待机状态的颜色可以通过邮件/松弛路由其警报,以便在下一个工作日处理。