Add anomaly and performance monitoring
This commit is contained in:
@@ -223,6 +223,16 @@ class AutomationConflict(BaseModel):
|
||||
updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
|
||||
|
||||
class AnomalyEvent(BaseModel):
|
||||
anomaly_id: str = Field(pattern=r"^[a-z0-9_.-]{1,120}$")
|
||||
severity: str = Field(default="info", max_length=20)
|
||||
category: str = Field(max_length=40)
|
||||
title: str = Field(min_length=1, max_length=160)
|
||||
detail: str = Field(min_length=1, max_length=500)
|
||||
detected_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
||||
resolved: bool = False
|
||||
|
||||
|
||||
class TimeProfile(BaseModel):
|
||||
profile_id: str = Field(pattern=r"^[a-z0-9_-]{1,64}$")
|
||||
label: str = Field(min_length=1, max_length=80)
|
||||
@@ -270,6 +280,7 @@ class BehaviorState(BaseModel):
|
||||
adaptive_weight_updates: list[AdaptiveWeightUpdate] = Field(default_factory=list)
|
||||
automation_conflicts: list[AutomationConflict] = Field(default_factory=list)
|
||||
time_profiles: list[TimeProfile] = Field(default_factory=list)
|
||||
anomalies: list[AnomalyEvent] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ActuatorRecord(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user