アリババエンジニアリング、監視向け無契約型異常検出の課題と境界を解説
本文の状態
日本語全文を表示中
詳細モードで約25分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Alibaba Engineering
アリババエンジニアリングは、固定閾値や前日比などの既存ルールを補完する形で、未订阅指標の多日履歴から正常パターンを自動学習し、証拠付き異常候補を生成する手法を発表した。
AI深層分析を開く2026年8月1日 00:29
AI深層分析
キーポイント
既存監視手法の限界と課題
固定閾値は変動に追従できず、前日比や昨日同比は低基数やイベント時の誤検知を招くため、未订阅指標の自動発見には不十分である。
多日履歴学習による正常形態の抽出
システムは10分粒度で集約された複数日のデータ行列を解析し、昼夜のサイクルや定例イベントに基づく正常な水位パターンを自動学習する。
証拠付き異常候補の生成プロセス
ユーザーがルールを設定する前に、システムは履歴比較に基づき異常の可能性を示す証拠付きの候補を生成し、既存の閾値監視と併用して運用する。
データ前処理と文脈の保持
実ゼロと欠損値の区別や、活動期・週末などの日付コンテキストを維持した上で、10分という粒度で時間軸を統一して比較を行う。
可重复性的概率分布本质
指標の「可重複性」は毎日同じ曲線を複製するのではなく、類似条件で学習可能な確率分布に収束することを指す。
重要な引用
「固定閾値は凌晨、白天和晚高峰的量级变化而调整」
「前序环比容易放大低基数和短时抖动,对每一步变化不大但持续恶化的过程又不够敏感」
「系统直接从指标的多天历史中学习正常形态,在用户尚未订阅、尚未选定比较方式和阈值时,先生成可供核验的异常候选」
「可重复」不是每天复制同一条曲线,而是在相似条件下重复落入一个可学习的概率分布
編集コメントを表示
編集コメント
アリババエンジニアリングが提案する手法は、監視対象の増加に伴う運用負荷を軽減する実用的なアプローチである。既存のルールベース監視と機械学習による異常検知を組み合わせるハイブリッドな設計は、現場での導入障壁を下げる有効な戦略と言える。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
面向监控场景的无订阅异常发现:问题、思路与边界
原创 孙晴 2026-07-30 19:55 浙江
关于面向监控指标的自适应异常发现方法,本文或许能够提供一些经验和思考
这是 2026 年的第 44 篇文章
(本文阅读时间:约 20 分钟)
本文将探讨一种面向监控指标的自适应异常发现方法。该系统能够从多天的历史数据中学习正常形态,在保留固定阈值、前序环比、昨日同比等线上订阅规则作为兜底的同时,无需等待用户逐条配置,即可自动生成带有证据的异常候选。
文中案例均已采用通用名称,日期及业务标识已隐去,量级与回放结果以相对化或区间化方式展示。图表仅用于说明数据形态与判断逻辑,不代表具体业务规模。
01
研究问题与边界:
未订阅指标如何进入异常发现视野
现有的监控告警通常从三个角度观察指标变化:一是固定阈值,判断当前值是否越过明确边界;二是前序环比,比较相邻时间槽,用来发现突然跳变;三是昨日同比,比较当天与前一日的同一时刻,以吸收一部分日内周期。实际使用中,这三者既可以单独配置,也可以组合使用:由固定阈值守住底线、前序环比捕捉突变、昨日同比提供时间参照。这些方法简单、透明、容易解释,是现有告警体系的重要基础。
然而,这三种口径也各有适用边界。固定阈值不会随凌晨、白天和晚高峰的量级变化而调整;前序环比容易放大低基数和短时抖动,对每一步变化不大但持续恶化的过程又不够敏感;昨日同比虽然比较了相同时间槽,却只参考相邻一天,遇到周末、活动期、业务增长,或者参照日自身存在异常时,结果就可能失真。为了让规则适应具体指标,用户通常还需要选择比较口径、填写阈值和连续命中次数,再根据运行结果反复调参。规则可以稳定执行这些条件,却不会仅凭多天历史自动理解日内高低峰和不同日期类型的正常差异。
図 1:既存のアラート検出には、主に 3 つの比較基準が用いられています。固定閾値は絶対的な境界線を確認し、前日比(环比)は隣接する時間枠を比較し、昨日同時刻比(同比)は跨日の同一時間帯を比較します。これらを組み合わせて使うことも可能ですが、依然として人工による基準の選択、閾値の設定、そして継続的な調整が不可欠です。
真にカバーしきれないのは、新規導入された指標や、まだ監視対象として登録されていない指標です。ルール設定が完了するまで、これらの指標はアラートの視野に入りません。また、一度設定しても、同じ数値でも深夜には明らかに異常と見なされる一方、夕方のラッシュ時では通常のトラフィックに過ぎないというケースも少なくありません。
過去一段时间、私たちは未登録指標の定期点検や日報による通知、そして仮想監視によるバックアップ対策を実施してきました。また、大量の過去のアラートサンプルをバッチ分析しました。これらの取り組みは監視のカバー範囲を広げましたが、同時に低基数(値が小さい)での変動や自然なトラフィックの変化、ルール設定の誤りなどによって、価値の低い通知が多く発生していることも浮き彫りにしました。
こうした観察に基づき、今回の研究では既存のオンライン登録ルールを置き換えることを目指すのではなく、自動発見のための新たな経路を補完することを目指しました。固定閾値や前日比、昨日同時刻比といった既存の登録ルールによるバックアップを維持しつつ、システムが指標の過去数日の履歴から「正常な状態」を学習します。ユーザーがまだ登録しておらず、比較方法や閾値も未設定の状態でも、まずは検証可能な異常候補を生成するのです。この目標に向けて、「固定粒度の指標データ → 過去のデータ再生(ヒストリーリプレイ) → 指標のプロファイル作成 → 時間軸を遡ったオフラインでのモデル選択 → 異常候補」という一連の流れを実証しました。
図 2:生データから異常候補に至るまでの 5 つの研究ステップ。
ステップ 1:データの準備——指標を統一された時間軸に配置する
研究は、監視プラットフォームで既に収集されている指標データから始まります。同一の監視指標について、10 分ごとの粒度で日ごとの観測値を集約し、連続した数日分のデータを行列として並べます。各行が一日を表し、各列が同じ時間位置に対応します。この整理自体は複雑ではありませんが、後の履歴比較の有効性を決定づける重要なステップです。
すぐにモデルを適用する前に、まずデータの定義と解釈を明確にすることが真に重要です。
- 実際の「0」値と、データが未収集の状態は混同してはいけません。
- データの遅延や後付けによるスパイク(急上昇)は、そのまま業務上の異常とは見なせません。
- 総量、影響を受けるユーザー数、エラー率などは異なる問いに答えるものであり、同じルールで比較することはできません。
- イベント期間中、週末、平日などには文脈の違いがあり、すべてが同一の分布に従うと仮定してはいけません。
10 分という粒度を選んだのは、感度と安定性のバランスを取るためです。時間単位よりも突発的な変化を捉えやすく、一方で分単位のデータよりも一時的なノイズをフィルタリングできます。また、固定された時間枠を設定することで、異なる日付のデータを同じ比較可能な時間軸に落とすことが可能になります。
ステップ 2:形態の識別——多日の履歴から「正常」を理解する
多日のデータが揃ったら、まずは最も直感的な 2 つの方法で過去を振り返ります。ヒートマップでは、各日を一行として配置し、1 日の中の時間枠を横に展開します。色が似ているということは、同じ時刻の水位が近いことを意味します。ある日に明確なハイライト帯が見られる場合、それは持続的な外れ値を示唆しています。
一方、多日の時系列曲線では、各日の推移を同一の時間軸上に重ねて表示します。これにより、1 日の中でのパターンや、特定の時間帯に現れるピーク、そして偶発的なノイズをより明確に区別できるようになります。
これらの 2 つの視覚化を組み合わせると、非常に異なるデータ形態がいくつか観察されます。いずれも「数値に変化があった」という点では共通していますが、それを判断する方法はそれぞれ異なります。
なぜ集約指標には、再現可能な条件確率の形態が形成されるのか?
监控指標は、多くのユーザー行動が業務フローと報告メカニズムを経て集約された結果であり、完全にランダムな点の羅列ではありません。イベントがない場合でも、多くの人々が共通する生活リズムを持つため、安定した昼夜のリズムが生じます。深夜には休息のため全体流量が低下し、昼間はユーザーの日常活動に伴って上昇し、夜間には再びピークを迎えることがあります。さらに、固定されたオープニングや定時クーポン配布、在庫補充、締め切り時間などのイベントルールが加わると、ユーザーは特定の時間帯に集中して反応するため、繰り返される峰谷と段階的な傾向が形成されます。
これは、すべてのユーザーが毎日同じ選択をするという意味ではありません。曜日タイプ、イベントの進行状況、ユーザー構成、トラフィック入口、業務ルール、データ収集の基準などの条件が近似している場合、多数の個体におけるランダムな差異が集約されることで一部相殺され、指標の期待値や峰谷の位置、正常な変動範囲に安定性が生じます。したがって、ここで言う「再現性」とは、毎日同じ曲線をコピーすることではなく、類似した条件下で学習可能な確率分布の中に再び収まることを指します。後続のベースライン学習が対象とするのは、「時間帯ごとの期待値+許容される変動範囲」であり、変化を許さない固定されたテンプレートではありません。
以下の形態分類は、大量の監視指標をバッチ処理して振り返り、共通の特徴を归纳したものです。各形態を理解しやすくするために、類似する特徴を持つ複数の指標からそれぞれ代表となるサンプルを選び、一般的な名称で説明しています。これらの事例は共通の形態を識別するための助けとなりますが、特定の形態が特定の業務にのみ存在することを意味するものではありません。
安定日内型:ピークは本質的に異常ではない
安定日内型の指標では、複数の日の曲線は通常、似たような日内の輪郭を共有します。図 3 で取り上げられたある取引指標はその代表例です。毎日の絶対的な水位は変動しますが、深夜・昼間・夜間のリズムはおおむね一致しているため、過去の同じ時間帯と比較するのが適しています。
図 3:安定日内型の代表例。ピーク時の数値はより大きくなりますが、過去の同じ時間帯の範囲内であれば、固定された閾値を超えたからといってアラートを出す必要はありません。日付や業務識別子は非表示とし、横軸には日内時刻を、縦軸には相対的な規模を示しています。
周期ピーク型:正常なピークはベースラインに学習させるべき
周期ピーク型の指標では、ピークが固定されたウィンドウで繰り返し現れることが多く、イベントのリズムや業務メカニズムを反映しているように見えます。図 4 で取り上げられたあるリクエスト指標はこの特徴の代表例です。モデルはまずこれらの再現可能なピークを学習し、その後、当日の値が過去のピーク上限を超えているかどうかを判断する必要があります。
図 4:周期ピーク型の代表例。複数の日付で近い時間にピークが現れます。ピークそのものよりも、ピークの位置の方が説明力を持ちます。日付や業務識別子は非表示とし、横軸には日内時刻を、縦軸には相対的な規模を示しています。
ランダムスパイク型:単点の閾値超過ですぐに通知しない
ランダムスパイク型の指標では、スパイクは通常異なる時間に散在し、孤立した点が多く、安定した日内曲線としてモデル化するのは困難です。図 5 で取り上げられたある低流量指標はこの特徴の代表例です。ここでは各スパイクを予測するよりも、スパイクの再発頻度、持続時間、累積影響を観察することが適しています。
図 5:ランダムなスパイク(突発的な急上昇・急降下)の典型例。一日中、短いスパイクが散在しているため、固定された閾値では頻繁にアラートが鳴ってしまいます。このようなケースでは、「異常プロセス」を単位として集約して捉える方が実態に即しています。日付や業務識別子は非表示ですが、横軸は日内の時刻、縦軸は相対的な規模で表示されています。
継続的なズレ:孤立した点よりも連続する異常が重要
ある日の観測値が、連続する複数の時間スロットにわたり、過去の曲線群から明らかに乖離する場合を「継続的なズレ」と呼びます。以下の図は、ある履行(履约)指標の典型的な事例です。このように連続してズレが生じるケースは、単発のスパイクよりも高い優先度で候補として挙げるべきです。
図 6:継続的なズレの典型例。ヒートマップでは連続した高輝度の帯が形成されており、複数日の曲線の中でも当日の推移が明らかに過去の範囲から外れていることが確認できます。日付や業務識別子は非表示ですが、横軸は日内の時刻、縦軸は相対的な規模で表示されています。
指標間のデータ品質シグナル:まずは「全員が同時に変わった」かを確認する
もう一つの共通現象として、論理的に無関係であり、かつ元の数値スケールも大きく異なる複数の業務指標に、同じような異常が同時に現れるケースがあります。以下の図では 3 つの指標を代表例として選定しています。これらはそれぞれ過去の尺度に基づいて独立して正規化されているため、比較の対象は絶対値ではなく「変化のリズム」です。
たとえこれら 3 つの曲線が異なる業務ループに属していたとしても、観測ウィンドウ開始後、「下落→上昇→再び下落」という似たような転換点を共通して示しました。これは複数の指標が同時に変化した可能性を示すシグナルです。この場合、すぐに個別の業務異常として切り分けるのではなく、まずはデータ収集ループやプラットフォームの状態を検証すべきです。
図 7:複数の指標が同時に変化した可能性を示す典型例。3 つの曲線の元の数値スケールや業務論理は異なりますが、それぞれ過去の尺度で正規化しても、似たような変化の順序と時間的重なりが確認できます。注釈では、「一斉な下落」「共通の上昇」「それに続く再びの下落」を強調しています。指標間の整合性は、単一の曲線からは得られない重要な証拠となります。日付や業務識別子は非表示ですが、横軸は日内の時刻、縦軸は相対的な規模で表示されています。
これらの代表的なサンプル群は、データ形態によって判断基準を柔軟に使い分ける必要があることを示しています。もし監視が「固定値の超過」「直近との数倍増」や「昨日比での数倍増」といった単点比較に依存し、複数のルールを組み合わせたとしても、すべてのケースをカバーするのは困難です。安定した日内変動型ではピーク時に誤報が出やすく、ランダムなスパイク型は頻繁にトリガーされ、周期的なピーク型では正常な活動が故障と見なされる恐れがあります。また、値の小さい指標では、パーセンテージの変化が過剰に強調されてしまう問題もあります。
04
ステップ 3:メトリクスプロファイル(画像)の構築——視覚的な判断を特徴量と戦略ルーティングへ変換する
人手によるグラフ確認は研究者の直感を養うには役立ちますが、監視プラットフォーム上の膨大な数の指標をすべてカバーすることはできません。このアプローチを自動化するには、「見た目がどう見えるか」を計算可能な特徴量に変換し、以下の具体的な問いに答える必要があります。
- データに欠落はないか
- 日常の水位はどの程度か
- 複数の日における曲線が共通の輪郭を持っているか
- 同じ時間帯のスロットで安定しているか
- スパイクはランダムなのか周期的なものか
- 局所的な指標が全体に占める割合に構造的な変化はないか
図 8:メトリクスプロファイル(画像)の主要な計算根拠。各プロファイルの結論には検証可能なデータ根拠が伴います。対応する履歴データの断片を特定し、欠落状況や日内安定性、スパイクの法則性、構造的変化などの計算結果を確認できます。重要な文脈情報が不足している場合、結論は「判定不能」として保留されます。
プロファイルは証拠の優先順位に従って、以下の項目を順次チェックします:安定した日内変動、周期的なピーク、ランダムなスパイク、希少かつ低値、比率異常、プラットフォームまたはデータ品質への感応性、およびサンプル不足。条件に合致した場合、システムは形態分類、判断根拠、証拠の状態、そしてモデル化の可否を同時に提示します。総量の分母や関連メトリクス、プラットフォームイベントシーケンスといった重要な文脈情報が欠けている場合、対応する結論は「判定不能」として保留され、証拠不足を未発見と誤って解釈することはありません。
図 9:研究サンプルにおけるメトリクスプロファイル(画像)の出力例。プロファイル結果は形態分類に加え、判断根拠、証拠の状態、モデル化の条件を保持し、これらに基づいてデフォルト処理方法、異常プロセスの再生、および時間前推によるオフラインモデル選択の入口を決定します。図中の数値は区間または定性的なラベルで示されています。
プロファイルが形成されると、その後の処理範囲も自動的に絞り込まれます。図 9 の研究サンプルが「ランダムスパイク型」と分類された場合、単一のスパイクが一度しきい値を超えたからといって即座に重大度アップされるわけではありません。まずスパイク予算と異常プロセスの再生フェーズに入り、再発回数、持続時間、累積超過面積、影響範囲などを比較検討します。安定した日内変動型では履歴の同一スロットとの比較を重点的に行い、周期的なピーク型は固定ウィンドウを保持し、希少かつ低値型では最小基数と信頼度の処理を優先します。このように、後の時間前推によるモデル選択では、プロファイルによって限定された候補戦略のみが対象となり、すべての指標に一律のモデルを適用するわけではありません。
05
ステップ 4:再生選模——時間前推を用いて現在のメトリクスに適したベースラインを選択する
有了画像之后,模型仍然不能拿全部历史拟合,再用同一批数据证明自己有效,因为那相当于提前看到了答案。这里采用时间前推回放:每次验证只使用此前已经发生的历史;完成一个验证窗口后,再把该窗口加入下一轮训练。窗口持续向前移动,直到覆盖全部可验证日期。
这套回放方式主要保证两件事:
每个验证窗口都只使用当时真实可见的历史,不会看到未来数据。
可以观察样本从不足到稳定的过程,而不是只看最后一个窗口的效果。
在离线回放中,我们会比较多种基线,包括动态谐波、稳健分解、同槽邻域中位数、同槽中位数、同槽截尾均值、同槽指数平滑和前一日同槽等方法。
图 10:同一指标在时间前推回放中的模型比较。不同方法在相同历史窗口和验证窗口中接受比较;图中仅保留相对误差和排序,不展示真实业务量级及精确评估数值。
常见误差指标可以评价预期曲线与实际曲线的距离,但选模不能只看哪条线拟合得最贴近。监控场景还关心边界是否稳定、正常尖峰能否被包容、持续异常能否进入候选、随机单点是否被过度放大,因此离线回放会同时保留两类结果:
模型中心预测的相对误差和排序;
动态边界、证据可信度以及异常候选的回放表现。
画像负责缩小研究方向,时间前推回放提供统一的历史考场。两者结合以后,选模不再依赖"这个算法听起来更先进",而是看它是否更适合当前指标的数据形态。
06
步骤五:生成候选——用动态边界收敛异常过程
基线确定以后,系统的主要判断不再只依赖一条人工设定的比较规则,而是为一天中的不同时间槽学习各自的正常区间。以稳定日内型为例,白天某个时间槽的观测值会与历史相同时间附近的数据比较,而不会和凌晨或晚高峰混在一起。每个时间槽都会形成一个预期水位、一个需要继续观察的柔性边界、一个需要重点检查的高分位边界,以及对当前历史样本是否充分的可信度判断。
当天整体流量偏高或偏低时,基线也需要随之校正。模型会根据当天已经发生的时间槽估算水位变化,避免出现「整天流量都涨了,却只有某个点被误判」的情况。即便超过边界,观测值也不会立刻成为候选,还要继续检查几方面证据:
实际量和绝对增量是否足以排除低量抖动;
历史样本和日期上下文是否具有足够可信度;
是否显著超过高分位边界,或在短窗口内反复超过柔性边界;
孤立尖刺是否具有足够强度,否则先留在观察区。
図 11 は、実測曲線と動的基線、柔軟な閾値、そして高百分位閾値を用いたリプレイ結果を示しています。候補となる異常点は、動的境界と持続的な証拠に基づいて特定されますが、ユーザーによる事前設定(現在の値や直近の比較、前日との比較など)に依存する閾値は使用されません。日付や業務識別子は非表示とし、横軸には日内時刻を、縦軸には相対的な量級を表示しています。
ランダムなスパイク型異常に対しては、別のアプローチを採用します。個々のスパイクを正確に予測することを目指さず、時間的に隣接するスパイクを1 つの「異常プロセス」として統合し、短時間での再発頻度、累積超過面積、持続時間、および全体の水位的変化を評価します。孤立したスパイクは許容されますが、同一プロセスが繰り返し発生したり、状態が悪化したりした場合にのみ、候補として格上げされます。
07
完全なリプレイ事例:複数のオンラインサブスクリプションルールによるヒットを 1 つの持続的候補へ集約
連続する数日間の前向きリプレイにおいて、低流量の指標を持つある 1 日を検証サンプルとして選定しました。モデルは検証ウィンドウ以前に利用可能な履歴データのみを使用します。当日、固定閾値や直近との比較など、既存のオンラインサブスクリプションルールが複数回ヒットしました。一方、ランダムスパイク戦略は各点を個別に格上げするのではなく、まず時間的に隣接するスパイクを 1 つの異常プロセスとして統合し、その後、再発強度、累積影響、持続性を比較します。
リプレイ結果によると、多くの孤立したヒットは歴史分布の上界を超える持続的なプロセスには至らなかったため、観察エリアに残されました。一方、ある一連の隣接するヒットは同じ連続区間に属しており、統合後に 1 つの異常候補として残されました。モデルの視点では、これら隣接する点は同一事象の一部であり、個別のメッセージに分割すべきではありません。
図 12 は、ランダムスパイク型の告警リプレイを示しています。固定閾値や直近との比較など、オンラインサブスクリプションルールが当日複数回ヒットしましたが、その多くは孤立した点としてオフラインリプレイ時に観察エリアに残されました。一方、一連の隣接するヒットは 1 つの連続プロセスに統合され、最終的に持続的な証拠を持つ候補が 1 つだけ残されました。日付や業務識別子は非表示とし、横軸には日内時刻を、縦軸には相対的な量級を表示しています。
この候補プロセスには複数の有効なスパイクが含まれており、その持続時間は歴史上の同種プロセスの高百分位水準を超えています。モデルがこれを保持する理由は、特定の 1 点が特に高いからではなく、変動の期間全体が歴史的に比べて明らかに長続しているからです。リプレイ中には単点でのピーク値がより高いケースもありましたが、プロセスが短時間で終了し、持続性などの総合的な閾値を超えなかったため、依然として観察エリアに残されています。
図 13 は、候補プロセスの判断基準を示しています。連続区間は、有効なスパイクの数、累積影響、持続時間などの観点で、歴史上の同種プロセスの高百分位水準を超えているため、オフライン異常候補として保持されます。図では定性的な証拠と相対的な量級を用いており、内部状態や正確なスコア、通知閾値は表示されていません。
最終的に出力されるのは、単なる「異常/正常」の二択ではなく、現在の観測値、歴史的预期、動的境界、証拠の信頼度、持続状況、および候補となった理由を伴った、証拠付きの異常候補です。
08
結果の限界:なぜ異常候補が即座に通知されないのか
历史回放数据显示,在生成异常候选阶段无需读取人工订阅规则。模型仅依据指标的历史数据即可生成异常候选。生成候选后,我们将其与固定阈值、前序环比、昨日同比等线上订阅规则的历史命中情况进行离线对照:部分样本中,线上订阅规则并未触发,但动态基线却发现了持续偏离;另一些样本中,此类规则会被正常高峰或随机尖刺反复触发,而画像策略则能将这些点保留在观察区。
不过,“曲线不像平时”和“现在值得打扰业务”并非同一个问题。平台延迟补写、活动期变化、少数用户集中请求、业务规则调整等,都可能让曲线越过基线。仅凭数值模型还不足以决定是否发出通知。因此,本文的研究终点严格限定在异常候选:系统主动发现可疑变化,并提供可回放、可解释的证据,但不把每一个候选直接等同于一条告警消息。
“无需先订阅即可发现候选”的价值,在于为线上订阅规则补充一条自动发现路径,而不是替代它。过去,用户需要先为每条指标选择一种或几种比较口径,再分别配置阈值和连续次数;在这条研究链路里,只要指标已经有稳定上报数据,系统就可以先回放历史、识别画像、比较模型并生成候选。用户不必从一张空白规则表开始,也不必预先知道凌晨、晚高峰和活动期分别应该采用哪种口径、填写多少数值;候选是否升级为通知,则仍然要结合业务上下文和通知策略。
09
结论:
无订阅发现补充的是候选发现,而不是直接发消息。
固定阈值回答“有没有超过一个数字”,前序环比回答“有没有突然变化”,昨日同比回答“是不是和前一日同一时间不一样”;自适应基线进一步追问的是,当前观测是否明显偏离了这条指标在多天历史和当前上下文中的正常状态。从固定粒度数据到历史回放,从画像分型到时间前推选模,再到动态基线生成异常候选,这条链路不是把线上订阅规则换一种写法,而是在“先靠经验配置规则”之外,增加一套可以计算、回放和解释的候选发现路径。
这套方法不假设一个模型适合所有指标,也不会把一次越界直接包装成智能告警。稳定日内曲线、固定窗口尖峰、随机尖刺、低量数据和多指标同窗变化,各自使用与其形态相匹配的观察方式。对告警自动化而言,关键不是提高发消息的速度,而是先用足够长的历史回答“这条指标平时是什么样”,再判断当前偏离是否值得进入通知链路。
欢迎留言一起参与讨论~
跳转微信打开
原文を表示
原创 孙晴 2026-07-30 19:55 浙江
image
关于面向监控指标的自适应异常发现方法,本文或许能够提供一些经验和思考
image
这是2026年的第 44 篇文章
( 本文阅读时间:约 20 分钟 )
本文讨论一种面向监控指标的自适应异常发现方法:系统从多天历史数据中学习正常形态,在保留固定阈值、前序环比、昨日同比等线上订阅规则兜底的同时,无需等待用户逐条订阅,即可生成带证据的异常候选。
文中案例均已采用通用名称,日期及业务标识已隐去,量级与回放结果以相对化或区间化方式展示。图表用于说明数据形态与判断逻辑,不代表具体业务规模。
01
研究问题与边界:
未订阅指标如何进入异常发现视野
现有监控告警通常从三个角度观察指标变化:固定阈值判断当前值是否越过明确边界;前序环比比较相邻时间槽,用来发现突然跳变;昨日同比比较当天与前一日的同一时刻,吸收一部分日内周期。实际使用中,三者既可以单独配置,也可以组合使用,由固定阈值守住底线、前序环比捕捉突变、昨日同比提供时间参照。这些方法简单、透明、容易解释,是现有告警体系的重要基础。
三种口径也各有适用边界。固定阈值不会随凌晨、白天和晚高峰的量级变化而调整;前序环比容易放大低基数和短时抖动,对每一步变化不大但持续恶化的过程又不够敏感;昨日同比虽然比较了相同时间槽,却只参考相邻一天,遇到周末、活动期、业务增长,或者参照日自身存在异常时,结果就可能失真。为了让规则适应具体指标,用户通常还需要选择比较口径、填写阈值和连续命中次数,再根据运行结果反复调参。规则可以稳定执行这些条件,却不会仅凭多天历史自动理解日内高低峰和不同日期类型的正常差异。
图 1:现有告警的三种常用比较口径与适用边界。固定阈值观察绝对边界,前序环比比较相邻时间槽,昨日同比比较跨日同槽;三者可以组合使用,但仍依赖人工选择口径、设定阈值并持续校准。
真正的覆盖缺口,往往出现在新接入或尚未订阅的指标上:规则配置完成之前,指标不会主动进入告警视野;即使已经配置,同一个数值在凌晨可能明显反常,放到晚高峰却只是正常流量。过去一段时间,我们做过未订阅指标巡检、日报提醒和虚拟监控兜底,也对大量历史告警样本进行了批量分析。这些实践扩大了监控覆盖面,也让我们看到,低基数波动、自然流量变化和规则误配,仍会产生不少低价值消息。
基于这些观察,本次研究没有把目标设为替换线上订阅规则,而是尝试补充一条自动发现路径:在保留固定阈值、前序环比和昨日同比等线上订阅规则兜底的前提下,系统直接从指标的多天历史中学习正常形态,在用户尚未订阅、尚未选定比较方式和阈值时,先生成可供核验的异常候选。围绕这个目标,我们验证了「固定粒度指标数据 → 历史回放 → 指标画像 → 时间前推离线选模 → 异常候选」这条完整链路。
图 2:从原始观测到异常候选的五段研究链路。02
步骤一:准备数据——把指标放进统一的时间坐标
研究从监控平台已经采集到的指标数据开始。对同一个监控指标,我们按 10 分钟粒度聚合每天的观测值,再把连续多天的数据排成矩阵:每一行代表一天,每一列对应同一个时间位置。这样的整理并不复杂,却决定了后面的历史比较是否成立。真正关键的不是马上套模型,而是先把数据口径弄清楚:
真实的零值和没有采集到数据不能混为一谈。
数据延迟补写造成的尖峰,不能直接当成业务异常。
总量、影响用户数和错误占比回答的是不同问题,不能塞进同一条规则里比较。
活动期、周末和日常日期需要保留上下文,不能默认完全同分布。
选择 10 分钟粒度,是在灵敏度和稳定性之间做折中:它比小时粒度更容易捕捉突发变化,又比分钟级数据更能过滤短暂抖动;固定时间槽也让不同日期落到了同一套可比较的时间坐标上。
03
步骤二:识别形态——从多日历史中看懂正常状态
得到多天数据后,我们先用两种最直观的方式回看历史。热力图把每天放在一行,将一天中的时间槽横向展开:颜色相近,说明同一时刻的水位接近;某一天出现明显高亮带,往往意味着持续偏离。多日同屏曲线则把每天的走势叠在同一条时间轴上,日内规律、固定时段峰值和偶发噪声会更容易分开。两种视图放在一起后,我们观察到几类差异很大的数据形态;它们看起来都是「数值发生了变化」,判断方式却并不相同。
为什么聚合指标会形成可重复的条件概率形态
监控指标往往是大量用户行为经过业务链路和上报机制聚合后的结果,并不是完全随机的点列。即使没有活动,大多数人共同的作息也会带来稳定的昼夜节律:凌晨休息时整体流量较低,白天随用户日常活动增多而抬升,晚间又可能出现流量高峰。如果再叠加固定开场、定时发券、补货或截止时间等活动规则,用户会在相近时段集中响应,进一步形成可重复的峰谷与阶段性走势。
这不意味着每个用户每天都会做出相同选择,而是指当星期类型、活动阶段、用户结构、流量入口、业务规则和采集口径等条件近似时,大量个体的随机差异在聚合后部分抵消,使指标的预期水位、峰谷位置和正常波动区间呈现稳定性。因此,这里所谓的「可重复」不是每天复制同一条曲线,而是在相似条件下重复落入一个可学习的概率分布。后续基线学习的也正是这种「时段预期值 + 允许波动区间」,而不是一条不允许变化的固定模板。
下文的形态分类来自对大量监控指标的批量回看和共性特征归纳。为了让每种形态更容易理解,文中从具有相似特征的多个指标中各选取一个代表性样本,并使用通用名称说明。案例用于帮助识别共性形态,不代表相应形态只存在于某一类业务。
稳定日内型:高峰并不天然异常
在稳定日内型指标中,多天曲线通常共享相近的日内轮廓。下图选取的某交易指标是其中一个代表性案例:每天的绝对水位会变化,但凌晨、白天和晚间的节奏大体一致,因此适合比较历史同一时间槽。
图 3:稳定日内型的代表性案例。高峰期的数值虽然更大,但只要仍在历史同槽区间内,就不应该因为超过一条固定值而告警。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。
周期尖峰型:正常尖峰需要被学进基线
在周期尖峰型指标中,峰值常在固定窗口重复出现,更像活动节律或业务机制。下图的某请求指标是这类特征的代表性案例;模型需要先学会这些可重复的峰值,再判断当天是否超过历史尖峰上界。
图 4:周期尖峰型的代表性案例。多个日期在相近时间出现峰值,尖峰的位置比尖峰本身更有解释力。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。
随机尖刺型:单点越界不急着发消息
在随机尖刺型指标中,尖刺通常分散在不同时间,孤立点多,很难拟合成一条稳定日内曲线。下图选取的某低量指标是这类特征的代表性案例;这里更适合观察尖刺复发、持续时间和累计影响,而不是预测每一个尖刺。
图 5:随机尖刺型的代表性案例。全天散落着短尖刺,固定阈值容易频繁触发,按异常过程聚合更适合描述它。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。
持续偏离:连续异常比孤立点更值得关注
当某一天的观测值连续多个时间槽与历史曲线簇拉开距离时,就出现了持续偏离。下图的某履约指标是较为典型的案例;这种连续偏离比单点尖刺具有更高的候选优先级。
图 6:持续偏离的代表性案例。热力图形成连续高亮带,多日曲线中也能看到当天走势明显脱离历史区间。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。跨指标数据质量信号:先判断是不是大家一起变了
另一类共性现象会同时出现在多个业务逻辑互不关联、原始量级也相差很大的指标上。下图选取三个指标作为代表性案例:它们先按各自历史尺度独立归一化,因此比较的是变化节奏,而不是绝对值大小。尽管三条曲线来自不同业务链路,观测窗口开始后仍共同出现「回落—抬升—再次回落」的相近拐点,构成疑似多指标同窗变化信号。此时不宜马上把它们拆成多个业务异常,而应优先核验采集链路和平台状态。
图 7:疑似多指标同窗变化的代表性案例。三条曲线的原始量级和业务逻辑均不同,按各自历史尺度归一化后,仍能看到相近的变化顺序和时间重合;标注仅覆盖同步回落、共同抬升和紧随其后的再次回落。跨指标一致性是单条曲线无法提供的重要证据。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。
这些从批量观察中挑选出的代表性样本共同说明,不同的数据形态需要不同的判断尺度。监控如果主要依赖「超过固定值」「前序环比上涨几倍」或「昨日同比上涨几倍」这类单点比较,即使组合多条规则,也很难覆盖所有情况:稳定日内型可能在高峰期误报,随机尖刺型容易频繁触发,周期尖峰型可能把正常活动当成故障,低量指标还会被百分比变化过度放大。
04
步骤三:构建画像——把看图经验转成特征与策略路由
人工看图适合帮助研究人员建立直觉,却无法覆盖监控平台里的大量指标。要让这套方法自动运行,就需要把「看起来像什么」转换成可以重复计算的特征,用它们回答几类具体问题:数据有没有缺失、日常水位有多大、多天曲线是否共享同一轮廓、同一时间槽是否稳定、尖刺是随机还是周期出现,以及局部指标占总体的比例有没有发生结构性变化。
图 8:指标画像的主要计算依据。每项画像结论都有可核验的数据依据:可以定位到对应的历史数据片段,并查看相应的计算结果,例如缺失情况、日内稳定性、尖刺规律和结构变化;关键上下文不足时,结论保留为“不可判定”。
画像会按证据优先级逐项检查稳定日内、周期尖峰、随机尖刺、稀疏低量、比例异常、平台或数据质量敏感以及样本不足等方向;命中后,系统同时给出形态分类、判断依据、证据状态和是否具备建模条件。如果缺少总量分母、关联指标或平台事件序列等关键上下文,相应结论会保留为"不可判定",不会把证据缺失解释成未命中。
图 9:指标画像在研究样本上的输出示意。画像结果除形态分类外,还保留判断依据、证据状态和建模条件,并据此确定默认处理方式、异常过程回放和时间前推离线选模入口。图中数值采用区间或定性标签。
画像一旦形成,后续处理范围也随之收窄。图 9 中的研究样本被归为随机尖刺型后,单个尖刺不会因为一次越界直接升级,而会先进入尖刺预算和异常过程回放,继续比较复发次数、持续时间、累计超额面积和影响面。稳定日内型则重点比较历史同槽位,周期尖峰型保留固定窗口,稀疏低量型先处理最小基数和置信度。这样,后面的时间前推选模面对的是画像限定后的候选策略,而不是把所有模型无差别地套在每个指标上。
05
步骤四:回放选模——用时间前推选择适合当前指标的基线
有了画像之后,模型仍然不能拿全部历史拟合,再用同一批数据证明自己有效,因为那相当于提前看到了答案。这里采用时间前推回放:每次验证只使用此前已经发生的历史;完成一个验证窗口后,再把该窗口加入下一轮训练。窗口持续向前移动,直到覆盖全部可验证日期。
这套回放方式主要保证两件事:
每个验证窗口都只使用当时真实可见的历史,不会看到未来数据。
可以观察样本从不足到稳定的过程,而不是只看最后一个窗口的效果。
在离线回放中,我们会比较多种基线,包括动态谐波、稳健分解、同槽邻域中位数、同槽中位数、同槽截尾均值、同槽指数平滑和前一日同槽等方法。
图 10:同一指标在时间前推回放中的模型比较。不同方法在相同历史窗口和验证窗口中接受比较;图中仅保留相对误差和排序,不展示真实业务量级及精确评估数值。
常见误差指标可以评价预期曲线与实际曲线的距离,但选模不能只看哪条线拟合得最贴近。监控场景还关心边界是否稳定、正常尖峰能否被包容、持续异常能否进入候选、随机单点是否被过度放大,因此离线回放会同时保留两类结果:
模型中心预测的相对误差和排序;
动态边界、证据可信度以及异常候选的回放表现。
画像负责缩小研究方向,时间前推回放提供统一的历史考场。两者结合以后,选模不再依赖"这个算法听起来更先进",而是看它是否更适合当前指标的数据形态。
06
步骤五:生成候选——用动态边界收敛异常过程
基线确定以后,系统的主要判断不再只依赖一条人工设定的比较规则,而是为一天中的不同时间槽学习各自的正常区间。以稳定日内型为例,白天某个时间槽的观测值会与历史相同时间附近的数据比较,而不会和凌晨或晚高峰混在一起。每个时间槽都会形成一个预期水位、一个需要继续观察的柔性边界、一个需要重点检查的高分位边界,以及对当前历史样本是否充分的可信度判断。
当天整体流量偏高或偏低时,基线也需要随之校正。模型会根据当天已经发生的时间槽估算水位变化,避免出现「整天流量都涨了,却只有某个点被误判」的情况。即便超过边界,观测值也不会立刻成为候选,还要继续检查几方面证据:
实际量和绝对增量是否足以排除低量抖动;
历史样本和日期上下文是否具有足够可信度;
是否显著超过高分位边界,或在短窗口内反复超过柔性边界;
孤立尖刺是否具有足够强度,否则先留在观察区。
图 11:实际曲线与动态基线、柔性边界和高分位边界的回放结果。候选点来自动态边界与持续性证据,不依赖用户预先配置当前值、前序环比或昨日同比的阈值。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。
随机尖刺型使用另一套思路。它不追求准确预测每个尖刺,而是把时间上相邻的尖刺合并成一个异常过程,再看短时间复发、累计超额面积、持续时间和整体水位变化。一个孤立尖刺可以被容忍,同一过程反复出现或持续恶化时才升级为候选。
07
完整回放案例:
将多次线上订阅规则命中收敛为一个持续候选
在一段连续多日的时间前推回放中,我们选取某低量指标的一天作为验证样本,模型只使用验证窗口之前可见的历史数据。当天,固定阈值和前序环比等线上订阅规则产生了多次命中;随机尖刺策略没有逐点升级,而是先将时间上相邻的尖刺合并为异常过程,再比较复发强度、累计影响和持续性。
回放结果显示,多数孤立命中没有形成达到历史分布上界的持续过程,因此被留在观察区;另有一组相邻命中落入同一个连续区间,合并后保留为一个异常候选。从模型视角看,相邻点属于同一件事,不应被拆成多条独立消息。
图 12:随机尖刺型告警回放。固定阈值、前序环比等线上订阅规则在当天产生多次命中,其中多数孤立点在离线回放中被留在观察区;一组相邻命中被合并为同一个连续过程,最终只保留一个具有持续性证据的候选。日期及业务标识已隐去,横轴保留日内时刻,纵轴以相对量级展示。
这个候选过程包含多个有效尖刺,持续时间超过历史同类过程的高分位水平。模型保留它,依据不是其中某一个点特别高,而是整段波动持续得明显比历史更久。回放中也有单点峰值更高,但因为只形成较短过程,没有越过持续性等综合门槛,仍留在观察区。
图 13:候选过程的裁决依据。连续区间在有效尖刺数量、累计影响和持续时间等方面超过历史同类过程的高分位水平,因此被保留为离线异常候选。图中采用定性证据和相对量级,不展示内部状态、精确评分或通知门槛。
最终输出的不是一个简单的「异常 / 正常」,而是一条带证据的异常候选,包含当前观测、历史预期、动态边界、证据可信度、持续情况和候选原因。
08
结果边界:异常候选为什么不等于通知
历史回放表明,候选生成阶段无需读取人工订阅规则,模型可以只根据指标历史生成异常候选。候选生成后,我们再把它与固定阈值、前序环比、昨日同比等线上订阅规则的历史命中做离线对照:部分样本里,线上订阅规则没有命中,动态基线却发现了持续偏离;另一些样本里,这类规则会被正常高峰或随机尖刺反复触发,画像策略则能把这些点留在观察区。
不过,「曲线不像平时」和「现在值得打扰业务」并不是同一个问题。平台延迟补写、活动期变化、少数用户集中请求、业务规则调整,都可能让曲线越过基线,仅凭数值模型还不足以决定是否通知。因此,这篇文章把研究终点严格放在异常候选:系统主动发现可疑变化,并给出可回放、可解释的证据,但不把每一个候选直接等同于一条告警消息。
「无需先订阅即可发现候选」的价值,在于为线上订阅规则补充一条自动发现路径,而不是替代它。过去,用户需要先为每条指标选择一种或几种比较口径,再分别配置阈值和连续次数;在这条研究链路里,只要指标已经有稳定上报数据,系统就可以先回放历史、识别画像、比较模型并生成候选。用户不必从一张空白规则表开始,也不必预先知道凌晨、晚高峰和活动期分别应该采用哪种口径、填写多少;候选是否升级为通知,则仍然要结合业务上下文和通知策略。
09
结论:
无订阅发现补充的是候选发现,而不是直接发消息
固定阈值回答「有没有超过一个数字」,前序环比回答「有没有突然变化」,昨日同比回答「是不是和前一日同一时间不一样」;自适应基线进一步追问的是,当前观测是否明显偏离了这条指标在多天历史和当前上下文中的正常状态。从固定粒度数据到历史回放,从画像分型到时间前推选模,再到动态基线生成异常候选,这条链路不是把线上订阅规则换一种写法,而是在"先靠经验配置规则"之外,增加一套可以计算、回放和解释的候选发现路径。
这套方法不假设一个模型适合所有指标,也不会把一次越界直接包装成智能告警。稳定日内曲线、固定窗 口尖峰、随机尖刺、低量数据和多指标同窗变化,各自使用与其形态相匹配的观察方式。对告警自动化而言,关键不是提高发消息的速度,而是先用足够长的历史回答「这条指标平时是什么样」,再判断当前偏离是否值得进入通知链路。
欢迎留言一起参与讨论~
跳转微信打开
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み