备案站点的监控指标基数治理与采样
作者:备案源头内容团队内容审核:备案源头内容团队更新于 2026年9月17日
监控系统自己挂了,往往是被一个标签打死的
某天监控面板开始加载不出来、查询超时、存储磁盘暴涨。排查下来根因常常很朴素:有人给某个指标加了一个标签,值是用户 ID,或者请求 URL 里带了随机参数。每一个不同的标签值都会产生一条独立的时间序列,几百万条序列足以把监控系统压垮。
讽刺的是,这类故障发生时,你恰好失去了排查其他故障的能力。
关键要点
- 基数是各标签取值数的乘积,不是加和——三个各 100 取值的标签就是一百万条序列。
- 用户 ID、订单号、原始 URL、完整错误消息、时间戳这类无界字段绝不能做标签。
- 三类数据分工明确:指标看趋势、日志查明细、追踪看链路,别用指标承载明细。
- 采样不是均匀丢弃,错误和慢请求必须全量保留,否则等于丢掉故障现场。
基数是怎么炸的
| 标签组合 | 取值数 | 产生的序列数 |
|---|---|---|
| 接口路径(50) | 50 | 50 |
| +状态码(10) | 10 | 500 |
| +实例(20) | 20 | 10000 |
| +用户 ID(10 万) | 100000 | 10 亿 |
前三个维度完全合理,加上第四个就彻底失控。判断一个字段能不能做标签,只需问一句:它的取值集合是有界且稳定的吗?有界就可以,无界就不行。
常见的无界标签来源:用户与会话标识、订单号与交易流水号、未做模板化的原始 URL(/order/12345 应归一成 /order/{id})、完整异常消息(应只留异常类型)、精确到毫秒的时间、未归一化的 User-Agent 字符串。
三类数据的分工
| 类型 | 适合回答 | 成本特征 | 不该用来做什么 |
|---|---|---|---|
| 指标 | 趋势、比例、告警 | 与序列数强相关 | 查某一笔具体请求 |
| 日志 | 明细、上下文、根因 | 与数据量相关 | 画长期趋势曲线 |
| 追踪 | 跨服务的调用链与耗时分布 | 与采样率相关 | 全量统计 |
「想按用户 ID 查某次请求」是日志和追踪的活,不是指标的活。把它塞进指标标签,是基数爆炸最常见的动机。日志侧的字段规范见 日志规范与集中检索,链路追踪的上下文透传见 可观测性建设。
分位数指标的额外代价
延迟分位数通常靠直方图实现,而直方图的每个区间都是一条独立序列——它的基数是普通计数器的若干倍。两条经验:区间划分要贴合业务实际的延迟范围(都落进同一个区间等于没有分辨率),以及避免在直方图上叠加高基数标签,那是基数的乘法叠加。
另一个常被忽略的点:分位数不能跨实例简单平均。把各实例的 P99 求平均得到的数字没有统计意义,正确做法是合并原始直方图后再计算。
采样:保住故障现场
追踪数据全量采集成本很高,但采样策略选错会让采样等于自欺欺人。
- 头部采样(请求开始时决定):实现简单、开销低,但故障请求大概率被丢掉——正常请求和错误请求被一视同仁。
- 尾部采样(请求结束后决定):可以做到「错误全留、慢请求全留、正常请求按低比例留」,代价是需要临时缓存完整链路。
实践上的推荐是混合策略:正常请求低比例采样,错误与超阈值慢请求全量保留。日志侧同理——成功请求可以按比例采样,错误日志必须全量。
一个容易被忽视的细节是采样一致性:同一条链路上的所有服务必须做出相同的采样决定,否则会拿到一堆残缺链路,比不采样还难排查。
存储:降采样与保留分级
原始精度的数据没必要长期保留。典型分层是:近期保留原始精度用于排障,稍早的数据按分钟聚合用于周报与对比,长期只保留小时或天级聚合用于容量趋势与同比。
| 用途 | 需要的精度 | 保留策略 |
|---|---|---|
| 故障排查 | 秒级原始 | 数天到数周 |
| 周期对比与复盘 | 分钟级聚合 | 数月 |
| 容量趋势与年度规划 | 小时/天级聚合 | 长期 |
降采样时要注意聚合方式:计数类可以求和,分位数不能简单平均,应保留合并后的分布。指标存储的成本要纳入整体盘点,见 服务器资源与成本治理;保留期限的制定方法见 数据生命周期与归档清理。
治理动作清单
- 定期查看序列数最多的指标排行,新增的高基数指标通常一眼可见。
- 给指标上线加评审门槛:新增标签要说明取值范围与上界。
- 在采集端设置基数上限与丢弃策略,超限时丢弃新序列并告警,而不是把存储写爆。
- URL、异常、枚举值一律先归一化再打标签。
- 把监控系统自身纳入监控:写入速率、查询延迟、序列总数、存储用量,告警接入见 备案网站监控告警体系。
- 压测期间的指标要能按压测标识区分,否则容量基线会被污染,见 全链路压测与影子环境。
常见坑
- 把用户 ID 或订单号当标签:序列数直接失控。
- URL 不做模板化:每个路径参数都产生一条新序列。
- 异常消息全文入标签:消息里带变量,基数无上界。
- 直方图叠加高基数标签:成本是乘法级增长。
- 对 P99 求平均:得到一个没有意义的数字并据此决策。
- 均匀采样:错误请求被丢掉,故障时无链路可查。
常见问题
指标基数到多少算危险?
没有绝对数值,取决于存储方案与资源配额。更实用的判断是看趋势:序列数持续单调上涨且没有收敛迹象,就说明存在无界标签,应当在压垮系统之前定位并治理。
已经上线的高基数指标怎么处理?
先在采集端停止上报该标签止血,再做归一化改造(URL 模板化、异常只留类型),最后清理历史序列。直接删历史数据而不修上报,过几天会再涨回来。
采样率设多少合适?
正常请求可以很低(例如百分之一甚至更低),关键是错误与慢请求必须全量保留。比采样率更重要的是采样策略:尾部采样能在低成本下保住所有故障现场。
监控数据能不能也存到业务数据库里?
不建议。指标是典型的时序写入,与业务数据库的访问模式冲突,量大后会拖累在线业务,见 数据库运维与高可用。应使用专门的时序存储。
资料来源
主流时序监控与链路追踪系统(如 Prometheus、OpenTelemetry)官方文档中关于标签基数、直方图、采样策略与降采样的公开说明。本文为通用运维说明,仅供参考,具体以实际监控方案与资源配额为准。
相关阅读
网站访问日志留存与安全合规运维要点
为什么要留日志:这是法定要求 《网络安全法》第二十一条明确要求网络运营者"采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月"。已完成备案、对外提供服务的网站属于网络运营者范畴,日志留存不是可选项,而是基础合规义务。 应留存哪些日志 | 日志类型 | 记录内容 | 主要用途 …
网站新增域名如何补充接入备案
企业在原有网站基础上新增域名,比如启用新的品牌域名或拼音域名指向同一网站时,不能直接绑定使用,而是需要在原备案基础上补充办理新增域名的接入手续。 新增域名前的准备工作 新增域名前,建议先确认该域名已经完成实名认证,可以通过 Whois查询 核对域名的注册信息和实名状态,避免因域名信息未实名导致接入申请被退回。同时确认…
备案信息年度核查该如何配合应对
部分省份的通信管理部门会对辖区内已备案网站开展年度或不定期核查,核查方式包括系统比对、电话回访、短信确认等,目的是确认备案信息与网站实际运营情况是否一致。 核查通常关注哪些内容 年度核查一般围绕主体信息、网站信息、接入信息三个维度展开,具体可以对照下表自查: | 核查维度 | 常见核查点 | | --- | --- …
备案号在网站上的规范展示与使用要求
网站完成备案只是第一步,备案号在页面上的展示方式同样需要长期维护,很多主体正是因为展示细节不规范,在日常巡查或年度核查中被要求整改。 展示位置与基本要求 通常做法是将备案号放置在网站首页底部,文字需清晰可辨、不被图片或广告遮挡,且格式应与下发的备案号文本保持一致,不能随意增减字符或调整顺序。是否需要加超链接指向查询入…
备案注销之后重新申请要注意什么
有些主体在此前因业务调整、接入商变更等原因注销了原有备案,之后又因新的业务需要重新申请备案。这种“二次备案”与首次备案在流程上大体相似,但有几个环节容易被忽略。 重新申请前的自查 重新申请前,建议先用 ICP备案查询 确认原备案是否确实已经完成注销,避免出现原备案未彻底清空、新申请与旧记录冲突的情况。同时检查计划使用…
备案信息变更有没有时效要求
备案不是办理完成后就一劳永逸的事项,主体信息、网站信息或联系方式一旦发生变化,通常需要在信息变化后的一定时间内完成变更提交,具体时限以属地管局要求为准。 哪些变化需要及时申报 常见需要变更的情形包括:主办单位名称或证件信息变化、网站负责人更换、联系电话或邮箱失效、网站域名调整、网站内容服务类型发生实质变化等。这类变更…
公司迁址之后备案地址信息如何更新
企业办公地址或注册地址发生变化后,备案信息中登记的地址项也需要相应更新,尤其是当迁址涉及跨区、跨市甚至跨省时,办理流程会比同城内迁址更复杂一些。 迁址后需要关注的信息 迁址后首先要确认工商登记信息是否已经完成同步变更,备案地址一般以工商登记的最新地址为准。可以先用 ICP备案查询 查看当前登记的主办单位地址,与最新的…
备案预留手机号邮箱变更该如何更新
备案信息中登记的手机号和邮箱,是管局与接入服务商联系网站负责人的主要渠道,用于发送核查通知、验证短信、审核结果等重要信息。这些联系方式一旦更换却未同步更新,容易导致关键通知被漏收。 常见需要更新的场景 负责人更换手机号或离职导致原号码停用; 企业邮箱系统迁移,原邮箱地址不再使用; 备案负责人变更,联系方式随之更换。 …