一、需求梳理:先想清楚大屏是"给谁看"
在选型之前,我先问了自己三个问题:
- 观众是谁? 如果是研发和 SRE 自己看,Grafana 足够;如果是给老板和业务方看,颜值和交互就很重要。
- 数据源在哪? 我们大部分指标在 Prometheus,日志在 Loki,业务数据在 RDS。
想清楚这三点,选型就成功了一半。
二、Grafana:SRE 的老朋友
Grafana 是我最熟悉的工具,搭建起来也简单。我用 Docker Compose 起了一套:
version:'3'services:grafana:image:grafana/grafana:10.4.2ports:-"3000:3000"volumes:-./grafana-data:/var/lib/grafana-./provisioning:/etc/grafana/provisioningenvironment:-GF_SECURITY_ADMIN_PASSWORD=change_me_2024-GF_USERS_ALLOW_SIGN_UP=false
数据源我直接用 provisioning 文件设置,避免每次手动点:
apiVersion:1datasources:-name:Prometheustype:prometheusaccess:proxyurl:http://prometheus:9090isDefault:true
优点:面板丰富、社区插件多、和 Prometheus 天生一对、支持变量和模板,做多环境切换非常方便。
踩的坑:
- 大屏刷新率设太低(比如 5s),几十个面板同时查询会把 Prometheus 压得够呛。我的经验是把大屏刷新率控制在 30s,关键指标单独做小面板。
- 默认主题偏"工程师审美",业务方看了直摇头。后来我装了
grafana-piechart-panel 和 grafana-polystat-panel,配合深色主题才勉强能看。 - 想做"数字滚动"这类动效,Grafana 基本无能为力,只能靠插件或第三方。
三、DataV:颜值担当,但要动手
DataV 是阿里出的可视化搭建工具,拖拽式操作,做出来的大屏确实好看。我用的是 DataV 的公有云版本,接入方式主要是 API 和数据库直连。
举个实际例子,我用它接 RDS 里的订单数据:
数据源类型:RDS MySQL连接串:jdbc:mysql://xxx.mysql.rds.aliyuncs.com:3306/order_db查询语句:SELECT COUNT(*) AS cnt FROM orders WHERE create_time > NOW() - INTERVAL 5 MINUTE刷新频率:10s
优点:模板多、组件丰富、动效炫、非技术人员也能上手改。
踩的坑:
- 大屏发布后分享链接有访问控制,我们当时是配合公司统一登录做的跳转。
- 最坑的是:DataV 的图表和 Grafana 的图表口径容易不一致,比如"支付成功率"两边算法不同,业务方一对账就发现问题。后来我们统一在数据层做聚合,两边都读同一张结果表。
四、阿里云云监控:开箱即用,但绑定云
云监控最大的好处是"零搭建"。ECS、RDS、SLB 的基础指标自动采集,控制台直接看。我用它做过一次快速验证:
# 用阿里云 CLI 拉取 ECS 监控数据aliyun cms DescribeMetricList \ --Namespace acs_ecs_dashboard \ --MetricName cpu_total \ --Period 60 \ --StartTime "2024-05-01 00:00:00" \ --Dimensions '[{"instanceId":"i-xxxx"}]'
优点:云资源指标免设置、告警规则直观、和云产品联动好。
踩的坑:
- 只能看阿里云自己的资源,自建机房的机器要装 Agent,且部分指标采集粒度受限。
- 自定义监控需要走 OpenAPI 上报,写代码量不小。
五、我的最终选型
综合下来,我的方案是组合拳:
- 研发/值班看板:Grafana,接 Prometheus + Loki,灵活、查询强。
- 业务大屏:DataV,接统一聚合后的结果表,颜值高、老板满意。
三者的数据口径统一在数据仓库层做一次聚合,避免"同一个指标三个数"的尴尬。
六、给同行的几条建议
- 先定观众,再选工具。给研发看和给老板看,完全是两回事。
- Grafana 大屏刷新率别贪快,30s 起步,关键指标单独处理。
- DataV 的数据源配额要提前算,指标多了成本会上来。
- 口径统一比工具选型更重要,否则大屏越漂亮,争议越大。
大屏这东西,工具只是手段,把数据讲清楚才是目的。希望这篇排坑记能帮到正在做大屏的你,少走点弯路。
👨💻 运维老兵经验:根据实际生产环境,以上步骤建议先在测试环境验证,并做好备份。参数值需根据服务器设置调整,不要盲目照搬。