grafana 无原生投屏轮播功能,但可通过url变量自动跳转或原生playlist实现稳定轮播;推荐使用playlist,支持定时切换、过渡动画与权限控制,并需配合kiosk/tv模式、统一刷新策略及告警分层展示提升大屏体验。

Grafana 本身不提供原生的“投屏自动轮播”功能,但可通过组合配置与外部机制实现稳定、低延迟、适合大屏展示的轮播效果。关键不在 Grafana 内部点击切换,而在于控制视图生命周期和刷新节奏。
一、用 URL 变量 + 自动跳转实现面板轮播
这是最轻量、兼容性最强的方式,适用于固定几个关键仪表板之间的循环切换:
- 为每个待轮播的仪表板启用 URL 查询参数变量(如
?var-datasource=Prometheus&var-job=api-server),确保链接可直接访问且状态干净 - 新建一个空白仪表板,仅添加一个 Text Panel,类型选 HTML,内容写一段自执行 JS 脚本:
<script>
const dashboards = [
'http://grafana.example.com/d/abc123/api-overview?kiosk',
'http://grafana.example.com/d/def456/node-summary?kiosk',
'http://grafana.example.com/d/ghi789/db-health?kiosk'
];
let idx = 0;
function rotate() {
window.location.href = dashboards[idx];
idx = (idx + 1) % dashboards.length;
}
// 每 30 秒切一次,首屏停留可略长(如 60s)
setTimeout(rotate, 60000);
setInterval(rotate, 30000);
</script>
- 将该仪表板设为 kiosk mode(全屏无菜单),并投屏访问此页面即可自动轮播
- 优点:不依赖插件、不增加后端负载、各面板独立加载、支持不同数据源和权限隔离
二、用 Grafana 的“Dashboard Playlist”功能(推荐)
Grafana 原生支持 Playlist,专为大屏轮播设计,比手动跳转更可靠:
- 进入 Configuration → Playlists → New playlist
- 添加多个仪表板,可设置每项停留时长(如 45s)、是否启用过渡动画、是否强制刷新数据
- 保存后,点击 Play 即可生成播放链接,例如:
http://grafana.example.com/playlists/play/1?kiosk&autofitpanels - 在浏览器全屏打开该链接,投屏即生效;支持暂停/跳过/音量控制(若含音频告警)
- 注意:需确保所有被轮播的仪表板都已发布(Published),且当前用户有查看权限
三、投屏稳定性增强要点
避免轮播过程中白屏、卡顿或认证中断:
-
关闭自动登录过期:在 Grafana 配置文件
grafana.ini中调整:login_max_lifetime_days = 30,并启用cookie_samesite = none(若跨域投屏) -
禁用非必要 UI 元素:所有轮播仪表板应开启
?kiosk&tv&refresh=30s参数,其中tv模式会隐藏时间选择器、搜索框等干扰项 - 统一数据刷新策略:避免部分面板设为 5s 刷新、另一些为 1m,建议全部设为 15–30s,减少渲染抖动
-
使用专用只读账号投屏:创建
viewer角色账号,绑定到轮播所需仪表板,防止误操作或权限变更导致中断
四、进阶:轮播中保留高优告警不消失
单纯轮播会导致 P0 告警一闪而过。解决方法是分层呈现:
- 主轮播仪表板专注趋势与概览(CPU、QPS、延迟)
- 单独配置一个 常驻告警看板,使用
AlertsPanel 或自定义查询(如ALERTS{alertstate="firing"} | sort by severity DESC),并设置refresh=10s - 用双屏或画中画方式,将告警看板以小窗口悬浮在右上角——Grafana 支持
iframe嵌入,也可用 OBS 等工具合成画面 - 若只能单屏,可在轮播末尾固定插入一张“告警汇总页”,停留时间延长至 60s,并按 severity 加权排序,确保 P0 总在顶部可见











