假设我们有一个可用性为 99.9% 的 API 服务。
所以这个 API 每天都可能会宕机1m 26.4s
。
那么我该如何衡量 API 是否已关闭?在我看来,我需要一个采样率,在 SLA 合同中也是如此?
有人可以给我举个例子吗?
答案1
你需要监视它。
首先,你需要说明如何定义你的 api 的停机时间。是定义为客户端无法连接,还是定义为没有方法有效,还是定义为至少一种方法无效?
下一步是编写自定义监控脚本或设置常见的监控解决方案(取决于步骤 1)并让其监控您的 api。
采样率取决于您的资源,但频率越高越好。我有多个检查,范围从 10 秒/检查到 2 分钟/检查。
当然,您应该从不同的网络监控您的 API,以消除一个网络或一个探测器的问题。因此,您将在互联网上拥有 3 个带有监控脚本的 VM,这些 VM 将定期检查您的 API 并向某个对象报告状态,该对象将衡量您的 SLA,在发生中断时提醒您等等。
参见:newrelic、pagerduty、thousandeyes、zabbix、nagios