# 特征监控平台

# 访问地址

# 一、背景

以前我们特征监控基本是空白:
● 特征坏了完全感知不到,要等线上业务炸了才知道,往往已经晚了几小时到几天;
没有历史曲线,看不到缓慢漂移;
● 想查具体哪一刻开始异常,只能人肉翻日志,动辄几天才定位。 结果:特征无声失效,排查慢、补救晚、损失大。

现在特种平台彻底解决:
● 特征全量实时监控
● 异常指标天级别告警
● 历史趋势曲线一目了然
从“被动救火”变成“提前防御”,特征风险真正可防可控。

# 二、整体操作流程

整体流程可分成下面几步:

  1. 录入样本
  2. 特征查看与配置
  3. 调整阈值
  4. 监控设置和查看

# 录入样本

点击 录入样本 按钮: image.png

image.png 必填的字段有:

  • 样本名称
  • 负责人
  • 场景 id(下拉)
  • HDFS 路径
  • 样本周期

# 监控设置和查看

要想开启样本的特征监控,需要在样本编辑界面配置监控状态: image.png 开启以后,点击下方的企业微信告警机械人配置,跳转到 场景管理 页面: image.png 编写对应的告警URL 即可。

告警 URL 是微信机器人群通知的 URL,配置方式如下: image.png 添加消息推送后,即可得到该 URL: image.png

# 异常数据追溯

按照上面的步骤配置完成以后,假设现在企业微信群出现了类似下面的告警: image.png

我们可以获取到的信息:

  • 异常的样本:APP端首页直播离线数据(取消负采样)
  • 异常特征数量

点击 监控链接 即可跳转到异常特征页面: image.png

选择有异常的特征进去详情页面: image.png 可以看到:

  • 异常值与阈值
  • 异常时间

# 领取操作

目的:为了避免频繁告警,可以执行领取操作,点击以后,会暂缓告警 7 天。

点击以后页面状态会同步变化: image.png

# 修改阈值操作

目的:修改指标的新阈值,修改后立即生效,原来的异常作废;

image.png

  • 异常数据状态会修改为 已处理
  • 以当前时刻的阈值为准;

认领状态可通过页面筛选 异常 状态的特征查看: image.png

# 特征配置

录入样本以后,到第二天以后就会自动扫描并显示该样本的特征: image.png 重点关注字段:

  • 特征状态:是否正常,近 7 天都在阈值范围内则表示正常
  • 告警阈值:针对该特征的阈值,可能有多种;
    • 初始化会按照最近一段时间的特征分布进行计算得到。
    • 自定义阈值会覆盖初始化阈值

可筛选异常特征未处理特征image.png

然后点击立即处理 即可跳转到特征详情页面: image.png 可以查看到:

  • 当前特征异常的指标:缺失值率
  • 为当前特征设置的自定义阈值
  • 特征不同指标的曲线;
    • 其中缺失值率曲线的红色线表示默认的最大阈值,真实数据已经超过该范围。

# 设置阈值

点击 编辑按钮,即可设置阈值: image.png 为指标设置了合适的阈值以后,异常数据会显示为 已处理 状态。

# 样本管理

# 样本列表

image.png

  • 最新样本时间:样本最新的日期
  • 样本天数:样本有数据的第一天,到当前日期的天数
  • 告警:显示当前样本一共有多少未处理已领取的异常特征
  • 海象任务 id: 点击可跳转到对应的海象任务页面

功能:

  • 下线后,页面将看不到该样本,谨慎点击
  • 告警未处理: 点击后将跳转到样本详情页面:

# 样本详情

image.png

# 样本数量监控

点击 样本监控 的 Tab image.png

  • 支持选择时间范围和单位
  • 样本份数:一段时间内,海象任务产生了多少个样本文件
  • 样本数量:一段时间内,产生的样本总数

该页面主要以样本维度统计;

# 样本配置

用于修改样本的基本信息: image.png

# 必填字段

  • HDFS 地址
    • 具体格式:固定部分 + 日期变动部分,例如 hdfs://huyamlcluster/user/hive/warehouse/huya_bml.db/recommend_allsample_pbfeature_stream_v5.tfrecord/20251124/08/20_00 这个路径中,后半段都是日期,其格式为:hdfs://huyamlcluster/user/hive/warehouse/huya_bml.db/recommend_allsample_pbfeature_stream_v5.tfrecord/%Y%m%d/%H/%M_%S
    • %Y: 年
    • %m:月
    • %d: 日
    • %H:小时
    • %M:分钟
    • %S:秒
  • 样本周期:天级别、小时级别、分钟级别

海象任务 id 尽可能不留空,方便溯源;

# 样本分析:

给当前样本生成一份分析报告,需要联系 @李晓杰() 开启才能看到。 开启后: image.png

点击 点击跳转页面按钮,可以查看详细的报告: image.png 包括:

  • 平均值
  • 方差
  • 最小值
  • 最大值
  • 特征分布 等

# 特征列表

image.png

  • 特征类型:分成下面几种类型:

image.png

  • 特征状态:近 7 天没有异常就是正常,异常的定义是:真实数据不在阈值范围内
  • 样本空值率:空样本所占的比率,只显示最近一次
  • 告警阈值:显示各个指标以及其阈值范围
  • 特征说明:可自定义,默认显示 yaml 中的说明
  • 特征标签:用于给特征做标记,可新增不存在的标签

# 特征详情页面

image.png

  1. 点击编辑按钮,可以编辑特征说明、特征类型和默认值:

    • image.png
    • 默认值:在计算缺失值率的时候,会根据该配置作为缺失值进行计算
  2. 点击领取按钮,可领取当前异常数据;领取后可抑制 7 天 告警:

  3. 可编辑不同指标的告警范围,如果编辑了包含异常数据的指标以后(例如缺失值比例),则自动将该异常状态改成 已领取

下方是当前特征关联的指标。

不同类型特征监控的指标如下表所示:

特征类型 监控指标
数值型 空值率、缺失值率、平均值、标准差、样本数量
类别型 空值率、缺失值率、样本数量
列表型 空值率、平均长度、样本数量
单值型 label 空值率、缺失值率、正样本比率、平均值、标准差、样本量
列表型 label 空值率、平均长度、样本量