# 我的解题之路: 开源社区

最近测试的同事提出了一个问题：平台内嵌的grafana页面在切换不同的dashbord时，会经常出现弹窗错误，如下所示

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1698563639830/831be414-8942-4a45-a712-1dc98ff0d579.png align="center")

grafana的版本是：v9.4.9

不地当测试在周会上反映这个问题的时候，负责监控面板的同事觉得这grafana的问题，解决不了，这个问题的影响面在于：因为grafana页面是内嵌于平台内的，弹窗就显得很突兀了。

弹窗的原因也很简单：因为之前的grafana页面获取数据+渲染需要较长的时间，切到下一个页面的时候，这人弹窗显示的却是上一个页面请求失败的报错……就确实不太合理

tl在晨会获知这一情况时，建议前端尝试一下能否通过修改grafana源码来解决这一问题，笔者觉得修改源码兹事体大，于是要求参与到这件事情中来。

根据笔者为数不多的前端经验，第一"感觉"是grafana有控制此弹弹窗的配置选项，寻求claude和bard的帮助，结果它们给出了许多误导性的建议，比如关于\`*disable\_sanitize\_html\`配置的使用示例，*我尝试多次后放弃了，但大概率是我提供的方式不对。第二步，开启搜索大法，在grafana社区找到了以下相似的issue

[https://github.com/grafana/grafana/issues/71932](https://github.com/grafana/grafana/issues/71932)

这个issue很值得学习，非常详尽

"I understand that these requests are handled asynchronously, and what actually triggers the templating error is a failed fetch from a previous attempt (for example, if it was cancelled by the user).……"

根据issue也找到了相应的pr

[https://github.com/grafana/grafana/pull/74712](https://github.com/grafana/grafana/pull/74712)

关键代码改动：

```javascript
        // we don't care about still showing toasts after refreshing
        // https://github.com/grafana/grafana/issues/71932
        showing: false,
```

从发现issue到等待该pr被merge，大概间隔了一周的样子，于是在那个神清气爽的清晨，早早来到公司的笔者，打开了github，发现了grafana v10.2.0这个修复版本，在开发环境，从v9.4.9切换到v10.2.0，自行测试一番，发现再无弹窗报错，于是反馈给测试的同事，让其帮忙验证，此事就此解决。

## 总结

1. 提问：问题描述，包括现象，造成的影响范围，以及期望的结果，是不是很熟悉，像是一个工整的提bug单中需要包含的内容
    
2. 定位：包括但不限于可稳定复现的条件、场景。社区的issue，也是非常重要的一环，可以帮助我们定位到底是使用姿势的问题，还是其它人有遇到的问题
    
3. 解决方案：grafana的使用对于笔者所在的团队来说，是一个边缘业务，这就决定了不可能耗费许多精力去“优化”我们所遇到的问题，所以取之于开源，自然也要借助开源解决问题，
    
4. 测试：上面我提到的解决方案：从9.x升级到10.x，跨了一个大版本，虽然我自行进行了测试，但并不能覆盖升级带来的其它风险，测试自然必不可少，完整的测试，可以提高版本升级的信心。
