寻找有关如何解决此问题的建议
该应用程序在停机表中记录了系统停机。中断包含中断开始和中断结束的日期/时间以及说明。
还有一个联接表,该表将中断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点之间发生的停机。
您将如何进行计算并存储数据(即仅作为可用性百分比或中断表本身中的其他列)?
最佳答案
感谢@ishegg在此相关问题Using PHP Carbon, remove time in seconds where two time periods overlap中,现在已解决了该问题。
一旦减去了SLA之外的秒数,就可以使用实际持续时间来计算可用性百分比。
关于php - 根据SLA计算系统可用性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46498787/