一、项目背景
需要实时监控CDN服务器的基础数据(包括带宽,流量,QPS,状态码,可以理解为从CDN服务器到本地的数据)和回源流量(带宽和流量,可以理解为从源站到CDN服务器的数据),类似于腾讯云和阿里云的CDN监控数据
二、开发实现思路
通过Prometheus监控系统,按一定的规则采集OpenStack宿主机上各虚拟机的数据,保存在时序库中,再按照产品需求,按照一定的算法,将数据展示在对应页面上
三、测试环境准备
1、一台源站服务器,且搭建好一个有上传和下载功能的环境,例如:10.0.4.100
2、一台CDN服务器,例如:10.0.6.11
3、将域名666.abc.com与源站绑定,系统会自动分配一个cname
1.png
4、如果是正式环境,需要在域名服务提供商处完成 CNAME 配置,配置生效后,即可享受 CDN 加速服务
5、由于是测试环境,所以就在本地绑定host,将域名与CDN服务器地址绑定
2.png
四、测试方法
1、CDN基础数据的带宽
利用Jmeter的定时器Constant Throughput Timer(不用定时器的话数据不稳定,由于测试环境数据有时延,会导致不好核对测试结果),发送一个下载请求,聚合报告中的Recieved指标对应带宽(注意转换单位),测试环境的带宽数据稳定在0.004Mbps左右,例子如下:
3.png
4.png
5.png
5.1.png
6.png
2、CDN基础数据的流量
即带宽的数据/8*1024,换算下单位即可,测试环境数据大概稳定在5B左右
7.png
3、CDN基础数据的QPS
即请求数,对应聚合报告中的Throughput指标,测试环境数据稳定在1左右
8.png
9.png
4、CDN基础数据的状态码
需要借助Django框架搭建环境(学习中,后续分享)
利用Jmeter的定时器Constant Throughput Timer(不用定时器的话数据不稳定,由于测试环境数据有时延,会导致不好核对测试结果),发送一个下载请求,聚合报告中的Throughput指标即为状态码的请求数,测试环境的状态码请求数稳定在1次/s左右,例子如下:
10.png
11.png
12.png
13.png
5、回源流量下的回源带宽
测试回源带宽,需要先清除CDN服务器上的缓存,例如:http://666.abc.com/code/101
利用Jmeter的定时器Constant Throughput Timer(不用定时器的话数据不稳定,由于测试环境数据有时延,会导致不好核对测试结果),发送一个下载请求,此时CDN服务器会向源站请求数据,从而产生回源流量,测试环境的带宽数据稳定在70Mbps左右,例子同CDN基础数据的带宽
6、回源流量下的回源流量
回源流量下的回源带宽/8,即为回源流量
15.png
网友评论