domino_admin_toolkit.analyzers.pod_memory module

pydantic model domino_admin_toolkit.analyzers.pod_memory.K8sPodMemoryOOMDetected

Bases: AnalyzerBase

Detects OOM-killed containers using container_oom_events_total (a counter).

FAILs when any OOM events are recorded in the last hour. Uses container_oom_events_total (not kube_pod_container_status_last_terminated_reason) to avoid the rate()-on-gauge bug that always returns ~0.

Fields:

analyze(data)

Analyzes the provided data and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data (Dict[str, Any]): The data to be analyzed. The structure depends on the analyzer’s implementation.

Returns:

List[CheckResult]: A list containing the results of the analysis.

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'K8sPodMemoryOOMDetected'
pydantic model domino_admin_toolkit.analyzers.pod_memory.K8sPodMemoryRequestsVsUsed

Bases: AnalyzerBase

Analyzes per-pod memory requests versus actual sustained usage (avg over 1h).

FAILs when a pod’s memory usage exceeds its requests by more than critical_diff_bytes (default 2 GiB). Uses avg (not peak) so transient spikes don’t trigger false failures.

Fields:
field critical_diff_bytes: int = 2147483648
analyze(data)

Analyzes the provided data and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data (Dict[str, Any]): The data to be analyzed. The structure depends on the analyzer’s implementation.

Returns:

List[CheckResult]: A list containing the results of the analysis.

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'K8sPodMemoryRequestsVsUsed'