stormlog.issues
Durable issue fingerprints and grouped issue row models.
Functions
|
Return a stable alert category from event context text. |
|
Return a recursively immutable canonical dimension mapping. |
|
Return a mutable JSON-safe copy of canonical dimension material. |
|
Normalize fingerprint dimensions into a canonical JSON-safe mapping. |
|
Validate and normalize an issue state string. |
|
Return a low-cardinality text token for fingerprint dimensions. |
|
Return a stable low-cardinality error stem. |
Classes
|
Link from a grouped issue back to raw session, event, or bundle evidence. |
|
Stable grouping identity for recurring Stormlog issues. |
|
Grouped issue suitable for CLI/TUI presentation and future persistence. |
- class stormlog.issues.IssueEvidenceLink(session_id=None, timestamp_ns=None, rank=None, source_path=None, source_kind=None, event_type=None, bundle_path=None, metadata=<factory>)[source]
Bases:
objectLink from a grouped issue back to raw session, event, or bundle evidence.
- Parameters:
session_id (str | None)
timestamp_ns (int | None)
rank (int | None)
source_path (str | None)
source_kind (str | None)
event_type (str | None)
bundle_path (str | None)
metadata (Mapping[str, Any])
- session_id: str | None = None
- timestamp_ns: int | None = None
- rank: int | None = None
- source_path: str | None = None
- source_kind: str | None = None
- event_type: str | None = None
- bundle_path: str | None = None
- metadata: Mapping[str, Any]
- class stormlog.issues.IssueFingerprint(kind, dimensions, schema_version=1)[source]
Bases:
objectStable grouping identity for recurring Stormlog issues.
- Parameters:
kind (Literal['oom', 'collector_degradation', 'alert', 'hidden_memory_anomaly'])
dimensions (Mapping[str, Any])
schema_version (int)
- kind: Literal['oom', 'collector_degradation', 'alert', 'hidden_memory_anomaly']
- dimensions: Mapping[str, Any]
- schema_version: int = 1
- property fingerprint_id: str
Return a deterministic hash for this fingerprint.
- class stormlog.issues.StormlogIssue(fingerprint, title, severity, hit_count, first_seen_ns, last_seen_ns, affected_sessions, representative_evidence, evidence, state='open', details=<factory>)[source]
Bases:
objectGrouped issue suitable for CLI/TUI presentation and future persistence.
- Parameters:
fingerprint (IssueFingerprint)
title (str)
severity (str)
hit_count (int)
first_seen_ns (int | None)
last_seen_ns (int | None)
affected_sessions (Sequence[str])
representative_evidence (IssueEvidenceLink)
evidence (Sequence[IssueEvidenceLink])
state (Literal['open', 'resolved', 'ignored', 'regressed'])
details (Mapping[str, Any])
- fingerprint: IssueFingerprint
- title: str
- severity: str
- hit_count: int
- first_seen_ns: int | None
- last_seen_ns: int | None
- affected_sessions: Sequence[str]
- representative_evidence: IssueEvidenceLink
- evidence: Sequence[IssueEvidenceLink]
- state: Literal['open', 'resolved', 'ignored', 'regressed'] = 'open'
- details: Mapping[str, Any]
- property fingerprint_id: str
Return the issue fingerprint id.
- property kind: Literal['oom', 'collector_degradation', 'alert', 'hidden_memory_anomaly']
Return the issue kind.
- stormlog.issues.categorize_alert_context(context)[source]
Return a stable alert category from event context text.
- Parameters:
context (object)
- Return type:
str
- stormlog.issues.freeze_dimensions(dimensions)[source]
Return a recursively immutable canonical dimension mapping.
- Parameters:
dimensions (Mapping[str, Any])
- Return type:
Mapping[str, Any]
- stormlog.issues.json_safe_dimensions(dimensions)[source]
Return a mutable JSON-safe copy of canonical dimension material.
- Parameters:
dimensions (Mapping[str, Any])
- Return type:
dict[str, Any]
- stormlog.issues.normalize_dimensions(dimensions)[source]
Normalize fingerprint dimensions into a canonical JSON-safe mapping.
- Parameters:
dimensions (Mapping[str, Any])
- Return type:
dict[str, Any]
- stormlog.issues.normalize_issue_state(state)[source]
Validate and normalize an issue state string.
- Parameters:
state (str)
- Return type:
Literal[‘open’, ‘resolved’, ‘ignored’, ‘regressed’]