【问题标题】:Pingdom uptime calculation formulaPingdom 正常运行时间计算公式
【发布时间】:2017-09-08 14:44:09
【问题描述】:

我正在尝试使用 pingdom api 生成正常运行时间报告。

我正在使用以下公式。但不知何故,这个百分比并不像他们的 UI 中显示的那样准确。

( ( number_of_days_in_the_months * 86400 ) / 100 ) * uptime_percentage = uptime_in_seconds

我做错了吗?

【问题讨论】:

  • 您的价值是多少?它与 UI 中显示的百分比有何不同?
  • UI 显示 99.99,我得到的是 99.72

标签: java pingdom


【解决方案1】:

这是正确的做法。

使用 summary.outage api 获取结果,然后执行以下操作

 SummaryOutage summaryOutage = new ObjectMapper().readValue(response, SummaryOutage.class);

        double uptime = 0d;
        double downtime = 0d;
        double unknown = 0d;

        for(SummaryOutage.Summary.State state :summaryOutage.summary.states){
            if(state.status.equals("up")){
                uptime =  uptime + (state.timeto - state.timefrom);
            }else if (state.status.equals("down")){
                downtime  =  downtime + (state.timeto - state.timefrom);
            }else if (state.status.equals("unknown")){
                unknown  =  unknown + (state.timeto - state.timefrom);
            }

        }

        double totalTime = uptime + downtime + unknown;
        if(totalTime > 0) {

            DecimalFormat decimalFormat = new DecimalFormat("#.00");
            String numberAsString = decimalFormat.format(100 *( (uptime + unknown) / totalTime));

            return numberAsString;

        }

这对我来说很完美。您可以根据自己的专业知识增强 java 代码。

希望这对某人有所帮助。

【讨论】:

  • 谢谢亚希亚!这对我很有用
猜你喜欢
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-12
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多