阿里云ECS流量计算

阿里云没有拉取ECS具体使用流量的方法,折腾了几天。摸清楚了他的算法,计算出来的值和阿里云流量具体使用差不多

1.拉取流量图数据,使用API : DescribeInstanceMonitorData, 使用 InternetTX (发送流量)

2.时间间隔值设置为600s,即为10分钟。

3.将拉去到的点数据,使用梯形面积公式,相邻的两个点计算面积。最后加到一起

4.因为流量图数据的单位是 kbit/s,转换为MB即将得到的数据  / 1024 / 1024 / 8。得到时间段中使用的了流量、

# 这里的$InternetTx是拉取到的发送流量数据,数据为一维数组  (时间戳 => 流量速率数据 )
ksort($InternetTX);
$thisTimeFlow = 0;
# 梯形算法
foreach( $InternetTX as $key=>$value ){
    $thisFlow = $value;
    if( empty($lastFlow) ) {
          $lastFlow = $thisFlow;
          continue;
    }
    $thisTimeFlow += ($thisFlow + $lastFlow) * 600 / 2;
    $lastFlow = $thisFlow;
}

# bt 转为MB
$thisTimeFlow = round($thisTimeFlow/ (1024 * 1024 * 8), 2);

后面发现流量不太对,还是请教了阿里云这边的算法

根据 [InternetTX] 的数值,乘以1024再除以8,转换为Byte单位,然后再除以两个1024就是转换为 MB了,再将1小时内的流量加起来

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值