万字复盘:从 0 到 1 设计游戏中台监控系统
业务监控远不止几张数据大盘那么简单。当支付成功率突降时,技术告警满天飞却无人能说清业务损失几何。本文深度解析如何构建真正有效的统一业务监控体系:从核心指标定义、用户分层设计到四层报表架构,揭示让技术指标与业务痛点精准联动的关键法则,破解'数据很多却依然手忙脚乱'的困局。

一、业务监控不是多做几张大盘
做中台业务监控之前,我一直觉得公司其实不缺监控。技术团队有 Zabbix,有服务器指标,有接口告警,有数据库、缓存、队列和外部依赖的监控。各种群里每天都有告警消息,红的、黄的、恢复的、误报的,信息量一点都不小。
但真正遇到业务异常时,大家还是会回到最原始的处理方式:在群里问。
比如某天活动高峰期,业务同学突然发现支付成功率不太对,订单量也开始往下掉。技术群里同时在刷几条告警:某个接口耗时升高、某个节点负载异常、某个外部支付依赖超时。
问题来了:业务到底损失了多少?是所有游戏都受影响,还是某一条业务线?是 iOS、安卓,还是某个客户端版本?是某个地区异常,还是某个支付渠道挂了?是用户没能创建订单,还是支付回调断了,或者是支付成功后没有到账?
技术监控能告诉你系统哪里响了,但业务监控要告诉你业务哪里疼了。这两件事不一样。技术指标更多关注系统是否稳定,业务指标关注业务是否受损。接口报错不一定立刻影响收入,支付成功率掉 5 个点却可能已经在持续失血。如果业务指标和技术指标分离,异常发生时大家就很难快速判断因果关系。
我在内部搭建统一业务监控体系时,真正想解决的不是“再做一套更漂亮的大盘”,而是让业务异常发生后,大家能少一点猜测,多一点确定答案。

统一业务监控最先要解决四件事。
第一,大家先看同一份核心指标。领导、业务、运营和技术不再各看各的数据源,至少对“业务现在是否健康”有一个共同判断。
第二,异常能继续往下拆。发现全局支付成功率下跌后,可以继续按业务线、游戏、客户端、地域、支付渠道、商品等维度拆开看,而不是重新找数据同学临时跑数。
第三,告警能找到人。告警不是发到一个大群里就结束,而是要能归属到业务域、责任人、严重等级和处理动作。
第四,事后能复盘。一次异常结束后,要知道当时哪个指标先动、哪个告警没触发、哪个告警太吵、哪个口径后来被证明不准确。
所以,业务监控系统不是图表系统。它更像一套异常处理机制,只是大盘、指标、告警、权限和埋点都是这套机制里的零件。
如果从业务架构上看,它大概可以拆成五层:业务系统、数据采集、指标治理、监控消费和响应处置。

这里最容易被忽略的是中间两层。很多团队会把注意力放在“监控消费层”,也就是大盘、图表、告警中心这些看得见的东西。但往深一点看,会发现真正决定系统能不能长期用的,是数据采集和指标治理。数据采集决定异常能不能被还原,指标治理决定组织能不能相信同一个数字。没有这两层,前面的大盘越漂亮,后面的争议越多。
产品经理在这里要守住一个边界:业务监控不是数据团队的外包需求,也不是研发监控平台的业务皮肤。产品侧必须定义业务语义、指标口径、消费场景和响应动作;技术侧负责实现采集、计算、存储和稳定性。边界不清,最后就会变成“数据能给什么,页面就展示什么”。
这也是为什么我不建议一开始就追求“大而全”。内部系统最容易犯的错,是试图一次性覆盖所有业务域。账号要监控、支付要监控、活动要监控、客服要监控、风控也要监控,最后每条线都做了一点,但没有一条线真正好用。
更稳的做法,是先挑一条高价值、强时效、影响面清楚的链路做穿。游戏中台里,支付、登录、发货到账通常优先级最高。它们一旦异常,要么影响收入,要么影响用户进入游戏,要么造成客诉和资损。先把这些链路跑通,后面的活动、客服、风控监控才有可复用的模型。
二、先分清谁在看监控
很多监控系统一开始就会陷入一个误区:先画页面。首页放几张趋势图,二级页面放几个明细表,再加一堆筛选条件,看起来很完整。但上线后会发现,领导还是在群里问核心指标,业务还是自己导表,技术还是看原来的监控平台。
原因很简单:没有先分清楚不同角色为什么要看监控。
监控的用户分层,不是为了给每类用户做一套完全独立的大盘,而是为了明确他们在异常链路里的动作。

领导层关心的是业务整体是否健康。他们不需要看每个接口的错误码,也不需要知道某个支付渠道的回调参数长什么样。他们需要知道的是:今天 DAU/PCU 是否正常,充值金额是否明显偏离,支付成功率有没有跌破安全线,关键活动是否按预期转化。
对领导层来说,监控不是用来排障的,而是用来判断影响等级和资源协调的。如果全局支付成功率下跌影响到多个游戏,就不是某个研发同学自己处理一下的问题,而是要快速拉齐业务、技术、运营和客服。
业务和运营层关心的是异常发生在哪条业务链路、哪个业务维度。他们会问得更具体:订单量掉了,是因为登录用户少了,还是创建订单少了?支付成功率掉了,是不是某个支付渠道的问题?某个活动领取成功率低,是不是某个客户端版本没有正常展示入口?某个地区的充值异常,是不是当地支付通道波动?
这一层需要的是可下钻、可对比、可解释的数据。只给一个全局数值没有意义,因为全局指标只能告诉你“有问题”,不能告诉你“问题在哪里”。
这里还有一个很产品化的判断:同一个指标,给不同角色看的粒度不一样。领导层看支付成功率,看到的是业务健康和影响等级。中台业务同学看支付成功率,要能拆到游戏、渠道、地域、客户端。支付产品和研发看支付成功率,还要能看到支付渠道请求、回调、到账这几段。指标名可以一样,但页面信息密度和默认维度不能一样。
很多后台系统难用,不是因为功能不够,而是因为把所有角色都塞进同一个页面。结果领导嫌复杂,一线嫌不够细,技术嫌没有定位信息。
技术层在这套业务监控里不是第一视角,但一定是关键协同角色。这里要分清楚:业务监控不是替代技术监控。它不应该重新发明一套服务器 CPU、内存、磁盘、数据库连接数的监控,也不应该把 Zabbix 里的所有指标搬过来。技术指标在业务监控里的价值,是解释业务异常。
比如支付成功率下跌后,系统能继续关联到支付接口错误率、渠道请求超时、回调失败、消息队列堆积、慢查询等信息。这样技术同学看到的就不是孤立的接口报错,而是“这个报错正在影响哪条业务链路,影响了多少订单”。
如果技术指标不能解释业务影响,它就只是噪音。如果业务指标无法关联技术原因,它也只能制造焦虑。
这就是统一业务监控和普通报表最大的区别:它不是让每个人看到更多数据,而是让不同角色在同一个异常里知道自己该做什么。
三、用四层报表建立业务健康视图
确定了用户分层后,下一步才是设计报表。我比较建议把游戏中台业务监控拆成四层:经营健康层、核心链路层、维度诊断层、技术关联层。这四层不是页面层级的强制要求,而是一条定位路径:先判断业务是否异常,再看异常发生在哪一步,再看集中在哪些维度,最后关联可能的技术原因。

如果落到页面上,经营健康大盘可以长得很克制。

我不建议把首页做成“老板大屏”。大屏适合展示,不适合排障。中台业务监控的首页应该更像一个工作台:上面是少量核心指标,下面是趋势、异常维度排行和下钻入口。
首页的产品目标不是让人感到数据很多,而是让人一眼知道三件事:现在有没有异常,异常影响哪个范围,下一步应该点哪里。
第一层是经营健康层。这一层回答的是:业务今天是否正常。游戏中台常见的核心指标包括 DAU、PCU、登录成功率、创建订单数、支付成功率、充值金额、到账成功率、关键活动参与人数、活动领取成功率等。
这类指标不宜太多。首页不是指标仓库,不能把所有能算出来的数据都放上来。首页越满,真正重要的异常越容易被淹没。
我更倾向于按业务健康状态组织指标,而不是按系统菜单组织指标。比如围绕“玩家能不能进来、能不能参与、能不能付费、付费后能不能到账”这条主线来设计。
经营健康层还有一个取舍:少做“展示型指标”,多做“可行动指标”。
比如累计注册用户数当然可以展示,但它对日常异常处置帮助有限。支付成功率、到账成功率、登录成功率、活动领取成功率这类指标更值得放在核心位置,因为它们一旦异常,就能直接触发排查和处置。
一个指标能不能进入首页,我通常会问三个问题:异常后能不能触发排查?能不能继续下钻?中台侧是否能据此采取动作?如果三个问题都答不上来,它就更适合放在分析报表里,而不是放在监控首页。
第二层是核心链路层。这一层回答的是:异常发生在哪一步。以支付链路为例,不要只看“支付成功率”一个结果指标,而要把链路拆成:登录、创建订单、拉起支付、渠道请求、支付回调、发货到账。
如果创建订单数正常,但拉起支付数下降,问题可能出在前端支付入口、商品配置或客户端版本。如果拉起支付正常,但渠道请求失败升高,问题更可能在支付网关或外部渠道。如果支付成功了但到账失败,那就要看发货系统、消息队列和游戏服回调。
只看结果指标,异常定位只能靠猜。看过程指标,才知道问题从哪里开始。
第三层是维度诊断层。这一层回答的是:异常集中在哪些范围。支付成功率下跌,不代表所有用户都受影响。它可能只发生在安卓,可能只发生在某个客户端版本,可能只发生在某个地区,也可能只发生在某个支付渠道或某类商品。
游戏中台常用的诊断维度包括客户端、客户端版本、地域、支付渠道、商品、游戏、业务线、客户、活动来源、渠道来源等。
维度诊断的产品设计重点,是让用户能顺着问题自然下钻。发现全局指标异常后,一键按客户端拆;发现安卓异常后,再按版本拆;发现某个版本异常后,再看是否集中在某个支付渠道。
不要让业务同学每次都重新选择一堆筛选条件。异常定位时,人已经够急了,系统就别再给人添乱。
第四层是技术关联层。这一层回答的是:可能的技术原因是什么。在支付案例里,技术关联层可以展示支付接口错误率、接口耗时、渠道请求超时率、渠道回调失败率、消息队列堆积、慢查询、外部依赖状态等。
注意,这一层不是把所有技术指标铺满,而是围绕业务链路做关联。比如支付成功率下跌时,优先关联支付域相关接口和外部支付渠道;登录成功率下跌时,优先关联账号服务、验证码服务、实名服务、风控服务;活动领取失败时,优先关联活动配置、库存扣减、资格校验和发奖链路。
业务监控的关键不是“业务指标和技术指标放在同一页”,而是让两者之间有关系。
四、先统一指标口径,再谈大盘设计
做统一监控时,最容易被低估的是指标口径。很多团队会觉得,大盘嘛,把数据接进来,图表画出来,筛选条件配好,就差不多了。真正上线后才发现,最耗时间的不是画图,而是解释数字为什么不一样。
同样叫支付成功率,支付系统算一版,订单系统算一版,数据仓库算一版,运营报表里还有一版。大家开会时不是先讨论怎么解决问题,而是先讨论“你这个数从哪来的”。
统一业务监控的第一件事,不是画大盘,而是建立指标字典。

一个指标至少要说清楚这些内容:指标名称、业务定义、计算公式、统计范围、时间口径、统计粒度、支持维度、数据延迟和口径变更规则。
这里不建议把指标字典做成一套很重的组织责任体系。原因很现实:这套监控服务的是中台内部排障和提前止损,不是要让每个游戏项目都参与指标治理。指标口径必须统一,但不代表每个指标都要在设计阶段绑定一套复杂的责任关系。治理做得太重,监控系统很容易从“发现异常的工具”变成“谁都不想维护的流程”。
更合适的做法,是把指标口径收口在中台内部:由中台产品、数据和研发在建设时统一定义,后续口径调整留变更记录。真正需要明确到人的,是告警响应阶段。因为异常发生时,系统要解决的不是“谁拥有这个指标”,而是“谁现在去处理这个问题”。
拿支付成功率举例。它的业务定义可以是:用户发起支付后最终支付成功的比例。计算公式可以是:支付成功订单数 / 支付发起订单数。统计范围要写清楚:是否包含 iOS 内购,是否包含联运渠道,是否包含测试订单,是否包含已退款订单,是否只统计官方支付渠道。
时间口径也要写清楚:当日、过去 24 小时、自然日、自然周、活动周期,不能混着用。
这里有个很常见的坑:最近 1 天、过去 1 天、当日。这三个词看起来差不多,实际完全不是一回事。当日通常指今天 00:00 到当前时间。过去 1 天通常指当前时间往前滚动 24 小时。最近 1 天则非常容易产生歧义,有人理解成昨天,有人理解成近 24 小时,也有人理解成今天。
产品上最好不要使用“最近 1 天”这种模糊表达。筛选器里要明确写成“今日”“昨日”“过去 24 小时”“近 7 个自然日”。
同比、环比也要绑定相同粒度和完整周期。拿今天 10:00 的数据去和昨天全天比,结论一定会跑偏。当前周期没有结束时,页面必须明确标识“数据截至当前时间”,不要让人误以为这是完整周期数据。
统计粒度也要有默认规则。实时看板可以默认分钟级,日内看板可以默认小时级,周/月趋势可以默认天级,年度复盘可以默认月级。展示粒度可以根据时间范围自动降采样,但告警判断不能直接用图表降采样后的数据。
这句话很重要:展示粒度可以降,判断粒度不能糊。
图表为了可读性可以少画点,但告警规则必须基于明确的原始窗口或固定统计窗口。否则图上看起来平滑了,告警也跟着麻木了。
指标字典看起来像文档工作,但它其实是监控系统的地基。没有口径统一,大盘越多,争议越多。
五、埋点不是补充,而是前置条件
很多监控项目做到一半,会发现一个尴尬问题:页面设计好了,指标定义好了,告警规则也想好了,但数据拿不到。或者更麻烦一点,结果数据拿得到,过程数据拿不到。
比如只知道支付成功率下降,但不知道用户有没有成功创建订单;只知道活动领取失败,但不知道用户是否进入过活动页;只知道到账失败,但不知道支付回调、发货请求、游戏服确认分别在哪一步出了问题。
这时再补埋点,成本会很高,因为它已经不是加几个字段那么简单,而是要重新梳理业务链路。
所以,埋点不是监控系统的补充,而是监控成立的前置条件。

以支付链路为例,至少要覆盖登录、创建订单、拉起支付、渠道请求、支付回调、发货请求、到账确认等关键事件。
每个事件都要带上统一的业务 ID。比如订单号、支付单号、用户 ID、游戏 ID、业务线 ID、客户 ID 等。没有统一 ID,链路就串不起来,后面只能靠人肉查日志。
公共属性也要尽量标准化。客户端、客户端版本、地域、支付渠道、商品、活动来源、渠道来源、设备类型、网络环境,这些字段如果每个系统命名不同、取值不同,后面的下钻维度就会变成灾难。
埋点设计里还有一个很现实的坑:不要只从前端视角设计事件。业务监控要看的是完整交易事实,前端事件只能说明用户做了什么,不能说明系统最终处理成什么样。支付链路尤其明显:用户点击支付按钮只是开始,后面还有订单创建、渠道请求、回调确认、发货到账。只看前端点击,可能会误以为用户意愿下降;真正的问题可能是服务端回调失败。
所以埋点最好按“用户动作 + 服务端结果 + 外部依赖状态”一起设计。前端看用户路径,服务端看业务事实,外部依赖看异常原因。三者缺一块,排查时都会断。
这里有一个产品上必须坚持的原则:不要只埋结果,要埋过程。只埋支付成功和支付失败,能做结果统计,但很难定位原因。过程事件齐全,才能判断用户卡在了创建订单、支付拉起、渠道请求、回调确认还是发货到账。
埋点设计还有一个容易被忽略的点:失败原因要可枚举。很多系统会把失败原因写成一段文本,甚至直接把接口返回信息透传过来。这样看单条日志没问题,做聚合分析就很难。监控系统需要的是可归类、可统计、可告警的失败码。
当然,产品经理不需要把埋点方案写成技术日志规范。但至少要在需求里明确三件事:关键事件是什么,公共属性是什么,异常原因如何归类。
没有这些,后面的下钻、漏斗和告警都是空中楼阁。
六、告警不能只停留在提醒
业务监控最容易做坏的地方,是告警。刚开始大家都很积极,觉得关键指标都要配告警。订单量低于阈值要告,支付成功率下降要告,登录失败率上升要告,活动领取异常要告,接口耗时上升也要告。
结果上线一段时间后,告警群开始刷屏。白天没人认真看,晚上更没人愿意看。最后大家对告警形成免疫,真正严重的问题也被淹没在噪音里。
所以,告警系统不能只设计“什么情况下发消息”,还要设计“谁处理、怎么收敛、多久没人处理要升级、事后怎么复盘”。

告警配置后台也一样,不是配置项越多越专业。

真正需要产品经理把关的是默认约束。比如支付成功率这类成功率指标,默认推荐“小于阈值”“同比下降”“动态基线偏离”;接口耗时这类耗时指标,默认推荐“大于阈值”“P95 超阈值”“环比上升”。不要把所有操作符都无脑开放给所有指标,否则配置自由度越高,误报越多。
告警文案也要当成产品设计的一部分。好的告警不应该只写“支付成功率异常”,还应该带上影响范围、异常维度、建议排查入口和责任人。否则消息发出去了,人还是要回系统里重新翻一遍。
我不建议一上来就把告警体系做得很重。比较现实的路径是分阶段演进。
第一阶段,先解决有没有人看。
每条告警都要有业务域、责任人、严重等级和触达方式。支付域的告警找支付负责人,账号域的告警找账号负责人,活动域的告警找活动负责人。不要把所有告警都丢进一个大群,然后期待有人主动认领。
严重等级也要提前定义。P0 是核心业务大面积不可用或明显资损风险,P1 是核心链路局部异常,P2 是非核心链路或可延迟处理的问题。不同等级对应不同触达方式,比如电话、飞书/钉钉、邮件或系统通知。
严重等级不要只按技术故障大小来定,要按业务影响来定。一个接口错误率很高,但只影响一个低流量内部页面,未必是 P0;一个外部渠道只有部分超时,但它承载了当天主要充值流水,就可能需要按 P1 甚至 P0 处理。告警分级如果不绑定业务影响,最后还是会回到“声音大的优先处理”。
第二阶段,解决太吵的问题。这里才需要引入去重、聚合、抑制和静默。
去重解决同一规则重复报。同一个支付成功率告警在 10 分钟内连续触发,不需要每分钟都发一次。
聚合解决同一业务域多条告警一起报。比如支付成功率下跌、渠道请求超时、回调失败同时出现,可以归并成一条支付域异常,而不是三条孤立消息。
抑制解决上游故障导致下游连环报。比如外部支付渠道故障时,下游支付失败、到账失败、订单关闭都可能跟着异常。系统应该优先突出根因或上游异常,减少下游告警轰炸。
静默解决已知维护窗口和活动预期波动。比如某个支付渠道维护、某个游戏停服更新、某场活动下线,相关告警要能提前静默或调整阈值。
第三阶段,再考虑动态基线。传统阈值适合边界清楚的指标,比如支付成功率低于 95% 报警,接口 P95 耗时超过 2 秒报警。但很多业务指标天然有周期性,游戏行业尤其明显。工作日和周末不同,白天和凌晨不同,活动日和普通日不同,新游首日和稳定期更不同。这类指标如果只用固定阈值,要么太敏感,要么太迟钝。
动态基线适合处理有明显周期波动的指标,比如订单量、充值金额、活动参与人数、DAU/PSU 等。系统根据历史同期表现形成一个合理区间,当指标明显偏离区间时再触发异常。
但动态基线不是银弹。它应该放在告警体系相对成熟之后,而不是一开始就拿来替代基本规则。否则会出现一个很尴尬的局面:系统说这是算法判断的异常,但没人知道为什么异常,也没人知道该不该处理。
告警的价值不只是发现异常,而是推动问题被处理。
如果一条告警不能告诉人“发生了什么、影响了谁、应该找谁、建议先看哪里”,那它就只是多发了一条消息。消息多了,人反而会更迟钝。
七、权限、实时性和成本,都是产品取舍
业务监控系统做起来以后,很快会遇到两个现实问题:哪些数据谁能看,哪些指标必须实时。这两个问题都不是纯技术问题,而是产品必须参与的取舍。
先说权限。
监控大盘看起来是内部工具,但里面可能有非常敏感的数据。充值金额、渠道表现、客户数据、地域收入、活动转化、支付成功率,这些信息一旦外泄,影响并不小。
所以,监控系统不能默认“内部都能看”。比较稳妥的方式,是直接接入内部统一 SSO 体系,用 RBAC 控制功能入口,用 ABAC 控制数据范围和敏感维度。
RBAC 解决“你是什么角色”。比如领导、业务负责人、运营、研发、数据、客服,不同角色能进入的模块不同。
ABAC 解决“你能看哪些数据”。比如某个业务线负责人只能看自己业务线,某个游戏运营只能看自己负责的游戏,渠道数据、营收数据、客户维度需要更细的数据范围授权。
这块不一定要在文章里展开成权限系统设计,但它必须被认真对待。监控不是越透明越好,透明要有边界。
导出、截图、分享也要考虑水印和审计。尤其是营收、客户、渠道相关报表,至少要能追踪是谁在什么时间查看、导出或分享。
权限设计还有一个容易被忽视的点:看趋势和看明细,权限可以不一样。比如某些经营健康指标,可以让更多内部角色看到趋势,帮助大家形成业务感知。但一旦下钻到具体客户、渠道、地域收入、单游戏营收,就要收紧到业务授权范围内。这样既避免把监控做成信息孤岛,也不会把敏感数据无边界扩散出去。
再说实时性。
很多人提监控需求时,第一句话就是“要实时”。但实时是有成本的,尤其是流处理、秒级计算、实时聚合、实时告警,背后都需要研发和数据资源。
产品经理不能只问“能不能实时”,而要问“晚 5 分钟知道会损失什么”。
需要立刻止损的指标,应该做分钟级甚至秒级。比如支付成功率、登录成功率、发货到账失败率、核心接口错误率。这类指标一旦异常,可能马上影响收入、登录和用户体验。
需要日内运营调整的指标,可以做小时级。比如活动参与、活动领取、渠道转化、PSU 变化。它们需要当天发现问题,但不一定需要秒级响应。
用于经营复盘的指标,可以接受 T+1。比如留存、LTV、月度收入结构、长期转化趋势。这些指标的价值在分析和决策,不在几分钟内止损。
判断实时性时,我会用一个很简单的问题压需求:如果这个指标晚 5 分钟、晚 1 小时、晚 1 天出现,分别会造成什么损失?
如果答不上来,就先别上最贵的实时链路。
这个判断也可以反过来帮产品做优先级。能造成资损、客诉或大面积业务中断的指标,优先做实时或分钟级。只影响运营复盘、经营分析和长期策略的指标,先接受小时级或 T+1。内部产品不是不能追求体验,而是要把资源花在最该快的地方。
八、遇到的一些坑经验分享
业务监控系统最怕一种情况:看起来什么都有,但真出问题时还是不好用。下面这些不是理论上的注意事项,都是做业务监控时很容易遇到的坑。有些坑不大,但只要踩中,排查效率就会被拖慢。

第一,时间口径一定要写清楚。
监控系统里最容易吵起来的,不一定是复杂算法,反而是“今天”“昨天”“最近一天”这种看起来很简单的词。比如“当日”通常指今天 00:00 到当前时间,“过去 24 小时”是从当前时间向前滚动 24 小时,“昨日”是昨天 00:00 到 24:00。如果页面上写“最近 1 天”,不同人会有不同理解:有人以为是今天,有人以为是过去 24 小时,也有人以为是昨天。

这个坑在告警里更明显。假设支付成功率配置了“较昨日下降 10% 告警”,但系统拿今天上午 10 点的数据和昨天全天比,肯定会误判。再比如运营看“近 7 天充值金额”,如果当前日期还没结束,今天的数据天然不完整,趋势最后一个点看起来就会偏低。产品上必须把时间口径写到页面上,而不是藏在接口或数仓逻辑里。
我比较建议把时间表达固定成几类:今日、昨日、过去 1 小时、过去 24 小时、近 7 个自然日、自然周、自然月。页面展示、指标计算和告警判断都使用同一套定义。组件也要默认展示对应的时间,当前周期未结束时,要明确标识“截至当前时间”,避免把半截数据当成完整周期分析。
第二,统计粒度要跟使用场景绑定。
这个坑的核心经验很简单:同一个图表在选择 1 小时、1 天、1 周、1 个月时,后端接口不能永远按同一个粒度返回数据。时间范围越大,查询步长和聚合窗口就要跟着变,否则要么点太少看不出波动,要么点太多导致页面慢、曲线乱。
这块可以参考 Prometheus 的query_range设计:除了start和end,还要有step。产品上不一定要把技术参数写进页面,但需求里要明确类似规则:实时监控看分钟级,日内趋势看小时级,周/月趋势看天级。后续再根据指标波动、查询成本和排查习惯,开放更细的手动切换。
还有一点要特别注意:比例指标不能简单平均。支付成功率这类指标,最好在每个聚合窗口里重新用“成功订单数 / 发起订单数”计算,而不是把每分钟成功率再平均一次。图表展示可以降采样,但告警判断必须固定自己的窗口。说白了,图表是给人看的,告警是给系统判断的,两者不能混成一件事。
第三,告警操作符要和指标类型匹配。
数量类指标适合看小于、突降、环比下降,比如订单量、登录量。成功率类指标适合看小于、同比下降、动态基线,比如支付成功率、登录成功率。耗时类指标适合看大于、P95 超阈值、环比上升。错误类指标适合看大于、连续 N 分钟超过阈值。金额类指标适合看突降和动态基线,但要结合活动日和自然波动。
这个坑经常发生在“配置很灵活”的系统里。产品为了通用,把大于、小于、同比上升、同比下降、环比上升、环比下降、动态基线全开放给所有指标,最后运营或配置人员一顿组合,规则看起来很多,实际误报也很多。比如订单量适合看突降,不适合看“大于某个值”;接口耗时适合看大于阈值,不适合看小于阈值;支付成功率适合看低于阈值或同比下降,不适合用“同比上升”做异常判断。
所以告警配置后台最好给默认约束。选择“成功率类指标”时,默认推荐小于、同比下降、动态基线;选择“耗时类指标”时,默认推荐大于、P95 超阈值、环比上升。配置项不是越自由越好,监控系统要做的是减少错误配置,而不是证明自己什么都能配。
第四,告警一定要收敛。
告警太多,最后就等于没有告警。同一个支付渠道超时,如果同时触发支付成功率下降、渠道请求失败、回调失败、到账延迟,群里瞬间刷出十几条消息,大家反而不知道先看哪一条。更糟的是,类似消息每天都刷,时间久了所有人都会形成免疫。
收敛不是一上来就做复杂算法,先把基础机制做好就够了。同一规则短时间内去重,同一业务域的多条告警做聚合,已知维护窗口做静默,上游故障触发时抑制一部分下游连环告警。这样告警数量会少很多,但每一条都更像一个需要处理的问题,而不是背景噪音。
第五,告警要能指定到人。
这是内部系统很容易踩的坑:大家以为消息发到群里就算触达了。实际情况往往是,群里几十个人都看到了,但每个人都以为别人会处理。尤其是业务监控这种跨产品、研发、数据的系统,如果不指定到人,告警只会变成“大家都知道有问题”的证据,不会自动变成行动。
比较稳的做法,是告警规则里就绑定业务域、值班人、技术接口人和升级规则。哪怕最终还是发到群里,消息里也要明确 @ 谁、多久未确认升级给谁。中台监控的目标是在游戏项目侧还没发现前先止损,所以响应责任必须落在中台内部,而不是等业务方来问。
第六,埋点要覆盖过程。
只埋结果不埋过程,异常时只能知道坏了,不知道坏在哪里。比如只知道支付失败率升高,但不知道失败发生在创建订单、拉起支付、渠道请求、回调确认还是发货到账,最后还是要去翻日志、问研发、找数据同学临时补数。
核心链路必须有过程事件和统一业务 ID。支付链路至少要串起订单号、支付单号、用户、游戏、渠道、客户端、商品等字段。埋点不是为了让报表更丰富,而是为了异常发生时能把链路还原出来。过程埋点缺一段,下钻就会断一段。
第七,权限要有边界。
监控系统很容易被误认为“内部工具,所以大家都能看”。但业务监控里往往有营收、渠道、客户、地域、支付成功率等敏感信息,这些数据一旦被截图转发,影响并不小。尤其是中台系统,天然会覆盖多游戏、多业务线、多客户,如果权限边界不清,很容易变成数据外泄入口。
权限可以分层做。经营健康趋势可以适当放宽,让内部协同角色知道业务是否异常;但下钻到单游戏营收、客户数据、渠道表现、地域收入时,就要按业务域和数据范围收紧。监控要透明,但透明不是无边界。
第八,异常要复盘。
一次告警结束,不代表监控工作结束。很多监控系统越用越吵,根本原因就是只处理事故,不处理规则。告警误报了,没有人调阈值;告警漏报了,没有人补指标;定位路径绕远了,没有人补下钻维度。几次之后,系统就会慢慢失去可信度。
我更建议把 P1 以上异常都纳入轻量复盘。复盘不一定写很长,但至少要回看几件事:告警是否及时,是否误报或漏报,责任人是否响应,定位路径是否顺畅,指标口径是否需要调整,是否需要新增静默、聚合或升级规则。监控系统不是上线即完成,而是靠一次次异常把规则磨准。
这些东西听起来都不复杂,但越是基础的地方,越容易在线上出问题。
九、写在最后
业务监控系统很容易被误解成一套大屏。尤其在内部项目里,只要做出几张趋势图、几个漏斗、几个排行榜,再加上自动刷新和告警推送,大家就会觉得“监控系统上线了”。
但真正经历过线上异常的人都知道,监控系统好不好,不看平时大屏漂不漂亮,而看出事时能不能回答几个问题。
业务是否真的异常?影响范围有多大?异常发生在哪条链路?集中在哪些维度?可能关联哪些技术原因?谁应该处理?多久没有响应需要升级?事后能不能复盘出下一次要改什么?
这些问题答不上来,大盘再多也只是摆设。我理解的游戏中台业务监控,不是把所有数据放到一个地方,而是把分散的业务信号组织成一条能走下去的排查路径:先看业务健康,再看链路过程,再看维度范围,再看技术原因,最后通过告警和复盘让问题被真正处理。
它也不是要替代技术监控。技术监控负责看系统有没有病,业务监控负责看业务有没有失血。两者之间真正要打通的,是业务影响和技术原因的关系。
做这类内部系统,最忌讳一上来追求全量、实时、智能、自动化。更稳的方式是先把核心链路跑通,先统一几个组织最关心的指标,先让告警找到人,先把支付、登录、到账这些高价值场景监控起来。
等这些基础能力真的被用起来,再谈动态基线、自动归因和更复杂的智能告警。
产品经理在这里的价值,不是把技术指标翻译成页面,而是把业务异常翻译成一套组织能听懂、能响应、能复盘的机制。
说白了,业务监控不是为了证明系统很先进,而是为了在业务出问题时,少一点群聊猜测,多一点确定答案。
作者:零度Pasca,公众号:进击的零度
本文由 @零度Pasca 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自作者提供
- 目前还没评论,等你发挥!

起点课堂会员权益




