背景
在QA团队做负载测试的时候,需要产出负载报告,这时候他们要求直接从Grafana导出报告,因此才有了这篇文章
实现
使用第三方: https://github.com/IzakMarais/reporter
安装grafana-reporter
1 | sudo yum install go -y |
配置nginx
我们需要配置 nginx 以允许访问 8686 端口。同时,我们需要设置超时时间,因为此功能将耗时较长。
1 | sudo vi /etc/nginx/conf.d/grafana.conf |
安装必要软件包
1 | sudo yum -y install libX11 libXcomposite libXcursor libXdamage libXext libXi libXtst cups-libs libXScrnSaver libXrandr alsa-lib pango atk at-spi2-atk gtk3 |
安装Grafana插件
1 | sudo grafana-cli plugins install grafana-image-renderer |
生成API Key
我们需要一个密钥来访问可以生成PDF的网址,如果不使用此密钥,API将返回401错误
401的另一种解决方案
我们可以更改Grafana的配置,此操作将允许任何人无需登录即可访问Grafana,因此不建议这样做。
1 | [auth.anonymous] |
修改ALB timeout
不要忘记这一部分!请将超时时间改为300秒(与nginx配置相同),不然会在ALB端报超时并断开连接
** 这个是针对AWS的说法,对于其他云平台可能名字不一样
为dashboard添加link
点击此按钮后,等待大约2分钟(取决于面板数量,面板越多,所需等待时间越长)。
然后我们将在浏览器中看到PDF文件,如果想要下载,可以点击顶部的“下载”按钮(在Microsoft Edge中该按钮可能显示为“保存”)。
问题记录
Error obtaining render:500 Internal Server Error
原因
根据Grafana的配置,Grafana实际上已经超时,但该功能并未超时,这将导致该功能无法连接到Grafana,因此会出现类似的错误报告。
解决方案
我们需要在调用生成 PDF 功能的 Grafana 链接末尾添加参数 timeout=600。这将把 Grafana 的超时时间设置为 600 秒,不容易导致超时,并且将有足够的时间生成 PDF。
备注
此功能将使用大量内存,因此如果我们的Grafana服务器仅有2G内存,此功能将导致OOM(内存溢出)。因此,如果我们想要使用此功能,必须将内存扩容至至少4G。