问题描述:
通过java code来从grafana下载并发送图片到消息客户端时, 客户端接收到的图片有几次会失败(图片png无法打开). 而原先写的python脚本却没有这样的问题
可能原因:
异步线程池 生命周期过短? --用同步线程试试
vip原因? --用单台server试试
code原因? 有可能 似乎和状态恢复有关系的—后来发现alerting状态的图片也有问题
深入debug
1.log下每个alert信息 以便后续debug
2.log记一下imageurl 亲自去测试下
imageUrl='https://xxx.com/public/img/attachments/zlrhXcTsGEAGiedUu3zd.png
--拿到image url后去浏览器测试, 发现有时候显示 有时候not found
—到单台server上逐一测试, 一台正常 一台不正常
=> 图片只在一台上产生, 我code访问vip时 随机到某一台 所以有时会有失败的图片
=>解决:
1.多试几次—浪费资源 不高效
2.获取grafana那一端的IP, 找对应IP去下载--Good
经验:
1.log要打好, 不要一味求快 以便基于每一个输入输出的诊断, 做这些也非常有利于对每一步逻辑的严谨性提高
2.问题的根本还是对现有系统架构的不够熟悉, 导致根本不知道会出现这样的问题. 两台grafana server没做同步!
3.debug时缩小范围action:
a.服务端调用单台
b.分逻辑单元, 查看落盘的图片文件查看是否valid, 拿到image url 手动请求 是否valid