You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何保留行上下文,用度量值校验最新时序数据并生成精准告警?

修正方案:时序数据违规告警与度量值上下文修复

一、修复行上下文丢失的度量值

1. 滚动均值Rolling Average

原代码因嵌套SUMMARIZE和CALCULATE导致上下文混乱,调整后确保滚动窗口按维度正确分区:

Rolling Average =
AVERAGEX(
    WINDOW(
        -5, REL, 0, REL,
        ALLSELECTED(AllData[Date], AllData[Attribute], AllData[SiteName]),
        ORDERBY(AllData[Date]),
        PARTITIONBY(AllData[Attribute], AllData[SiteName])
    ),
    AllData[Value]
)

说明:移除冗余的聚合嵌套,直接引用字段值,确保按Attribute+SiteName分区计算最近6个周期(含当前)的均值。

2. 突变异常sudden_change

替换SELECTEDVALUE为MAX避免上下文丢失,简化逻辑:

sudden_change =
VAR CurrentValue = MAX(AllData[Value])
VAR RollingAvg = [Rolling Average]
RETURN
IF(
    CurrentValue > 1.7 * RollingAvg || CurrentValue < 0.3 * RollingAvg,
    CurrentValue,
    BLANK()
)

说明:用变量存储当前值与滚动均值,直接判断是否超出阈值,避免嵌套IF的冗余写法。

3. 3标准差异常Reactive 3Std

确保当前值与对应维度的3标准差阈值匹配:

Reactive 3Std =
VAR CurrentValue = MAX(AllData[Value])
VAR StdThreshold = [3StdDev]
RETURN
IF(
    CurrentValue > StdThreshold,
    CurrentValue,
    BLANK()
)

说明:如果[3StdDev]未做分区处理,需给其添加PARTITIONBY(AllData[Attribute], AllData[SiteName])逻辑,保证阈值与当前数据维度一致。

4. QA/QC异常purple dots measure

简化非空判断逻辑:

purple dots measure =
VAR MaxPurpleDot = MAX(AllData[Purple dot])
RETURN
IF(NOT(ISBLANK(MaxPurpleDot)), MaxPurpleDot, BLANK())

二、精准告警提示Message TARP

重构度量值,生成带具体违规原因的提示文本:

Message TARP =
VAR MostRecentDate = MAX(AllData[Date])
VAR LatestContext = FILTER(ALLSELECTED(AllData), AllData[Date] = MostRecentDate)
-- 检查各规则触发状态
VAR Is3StdViolation = NOT(ISBLANK(CALCULATE([Reactive 3Std], LatestContext)))
VAR IsSuddenChangeViolation = NOT(ISBLANK(CALCULATE([sudden_change], LatestContext)))
VAR IsPurpleDotViolation = NOT(ISBLANK(CALCULATE([purple dots measure], LatestContext)))
-- 拼接违规原因
VAR ViolationReasons = 
    CONCATENATEX(
        {
            IF(Is3StdViolation, "3标准差异常"),
            IF(IsSuddenChangeViolation, "突变异常"),
            IF(IsPurpleDotViolation, "QA/QC异常")
        },
        [Value],
        "、"
    )
RETURN
IF(
    NOT(ISBLANK(ViolationReasons)),
    "最新数据点触发告警:" & ViolationReasons & ",请跟进处理。",
    BLANK()
)

说明:

  • 用LatestContext统一管理最新日期的筛选逻辑,避免重复编写筛选器
  • 逐个校验违规规则,生成具体原因列表
  • 多规则触发时自动拼接原因,输出清晰的告警文本

三、验证要点

  • 确认[3StdDev]已按Attribute和SiteName分区计算均值+3标准差
  • 在卡片/表格组件中测试Message TARP,验证最新数据违规时是否显示对应原因
  • 检查Rolling Average按日期、属性、站点分组后是否输出正确的滚动均值

内容的提问来源于stack exchange,提问作者flashliquid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:30:40