feat(management): 确定性异常规则×4——P90恶化/回复率骤降/活动骤降/过载+derive_metrics公有化
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -61,8 +61,11 @@ def normalize(spec: dict, value: float | None) -> float | None:
|
||||
raise ValueError(f"未知指标类型 {mtype!r}(须 target/reverse/band)")
|
||||
|
||||
|
||||
def _derive_metrics(pm: PeriodMetrics) -> dict[str, float | None]:
|
||||
"""从 PeriodMetrics 派生可评分指标值(键=指标名,None=无值≠0)。"""
|
||||
def derive_metrics(pm: PeriodMetrics) -> dict[str, float | None]:
|
||||
"""从 PeriodMetrics 派生可评分指标值(键=指标名,None=无值≠0)。
|
||||
|
||||
公有供 anomalies(B3)/dashboard(B4) 复用——评分与异常对比同一派生口径。
|
||||
"""
|
||||
out: dict[str, float | None] = {
|
||||
"fr_p90_ms": pm.fr_p90_ms,
|
||||
"active_friends": pm.active_friends, # band 用,周期 distinct
|
||||
@@ -121,9 +124,9 @@ def score_employee(
|
||||
team 为指标级中位数(键=派生指标名,可 None)。返回结构见模块 docstring
|
||||
——metrics_detail 键=配置里的 metric_code(band 型如 active_friends_band)。
|
||||
"""
|
||||
cur_vals = _derive_metrics(current)
|
||||
prev_vals = _derive_metrics(prev) if prev is not None else None
|
||||
base_vals = _derive_metrics(baseline) if baseline is not None else None
|
||||
cur_vals = derive_metrics(current)
|
||||
prev_vals = derive_metrics(prev) if prev is not None else None
|
||||
base_vals = derive_metrics(baseline) if baseline is not None else None
|
||||
guards = config.get("sample_guards", {})
|
||||
soft = guards.get("soft_threads", 10)
|
||||
minimum = guards.get("min_threads", 30)
|
||||
|
||||
Reference in New Issue
Block a user