寻找有关如何处理此问题的一些建议
应用程序在中断表中记录了系统中断。中断包含中断开始和中断结束的日期/时间以及描述。
还有一个连接表,用于将中断ID与受中断影响的系统ID相关联。
目前,可用性是按24 x 7计算的,具有以下内容:
$agreed_seconds = 24 * 60 * 60 * $availability->report_date->daysInMonth;
$availability = round((($agreed_seconds - $outage->duration) / $agreed_seconds) * 100, 2);
如果系统的可用性SLA仅为营业时间而非24 x 7,则在凌晨2点到凌晨3点之间发生的中断不应包括在可用性计算中。
您将如何进行此计算并存储数据(即仅作为可用性百分比或中断表本身中的其他列)?
答案 0 :(得分:0)
感谢@ishegg在这个相关问题Using PHP Carbon, remove time in seconds where two time periods overlap中,现在已经解决了这个问题。
一旦减去SLA之外的秒数,就可以使用实际持续时间来计算可用性百分比。