探索: 在窗格级别切换数据源时,不会更新查询级别的数据源 UID
描述 当在“探索”面板选择器中切换数据源时,面板级数据源字段会正确更新,但嵌入在每个查询对象中的数据源字段不会重置。因此,所有后续查询继续使用之前的数据源,尽管用户界面显示了新的数据源已被选中。唯一的解决方法是强制刷新浏览器或手动清除并重新输入查询表达式,这将触发查询对象的重新创建。 重现步骤 打开“探索” 选择数据源 A 并运行任何查询(例如 lvs_exporter_build_info) 使用面板顶部的数据源选择器切换到数据源 B 重新运行同一查询,而不修改查询表达式 预期行为 在切换数据源后,所有查询都将重新绑定到新的数据源。x-datasource-uid 请求头和每个查询对象中的 datasource.uid 字段都应反映新选择的数据源。 实际行为 POST /api/ds/query 请求仍然包含旧的数据源 uid: x-datasource-uid: bf654o51yhfr4b ← 旧数据源 x-plugin-id: prometheus URL 面板参数清楚地显示了不一致性: { "datasource": "dbaaef04-3f7e-42ac-b168-4292068a5057", "queries": [ { "datasource": { "type": "prometheus", "uid": "bf654o51yhfr4b" } } ] } 面板级数据源已更新为新的 uid,但查询级数据源.uid 仍保留旧值。 Grafana 使用查询级 uid 路由查询,因此查询使用旧数据源。 环境 Grafana 版本:12.2.1 部署:Kubernetes,多个副本 浏览器:Chrome 150 两个数据源均为类型:Prometheus 解决方法 在切换数据源后,手动清除并重新输入查询表达式。这将强制重新创建查询对象,而不包含过时的数据源字段,并且下一次执行将正确使用新数据源。 重新刷新浏览器(Ctrl+Shift+R)也暂时解决了问题。
内容来源: grafana/grafana