domino_admin_toolkit.analyzers.rabbitmq_analyzer module

pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQAlarmsAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQAlarmsAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQConnectionAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQConnectionAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQDeadQueuesAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQDeadQueuesAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQDiskSpaceAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQDiskSpaceAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQFdUsageAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQFdUsageAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQFeatureFlagsAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQFeatureFlagsAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQMemorySettingsAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

MIN_RELATIVE_MEMORY_PCT: ClassVar[float] = 35.0
name: ClassVar[str] = 'RabbitMQMemorySettingsAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQMemoryUsageAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQMemoryUsageAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQNodeStatusAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQNodeStatusAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQPortConnectivityAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQPortConnectivityAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQQueueDepthAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

One queue row per call (Runner passes dicts from DataFrame rows).

Return type:

list[CheckResult]

name: ClassVar[str] = 'RabbitMQQueueDepthAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQSplitBrainAnalyzer

Bases: AnalyzerBase

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQSplitBrainAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQStreamCoordinatorAnalyzer

Bases: DataFrameAnalyzerBase

Validates cluster-wide RabbitMQ stream coordinator Raft health.

Reads the single-row coordinator DataFrame collected from Prometheus. SKIPs when no coordinator metrics are reported (no streams declared yet, or Prometheus is not scraping rabbitmq-ha). FAILs on apply lag or excessive commit latency — the runtime signatures of a coordinator that looks healthy on the Management API but has actually stalled.

Fields:

analyze(data)

Analyzes the full DataFrame and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: The full DataFrame. Called once per check_df() invocation.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQStreamCoordinatorAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQStreamHealthAnalyzer

Bases: AnalyzerBase[StreamHealthRow]

Validates per-stream health from the RabbitMQ Management API.

FAILs when state != "running", when no leader is elected, or when the set of declared members is not a subset of online — the corruption signature where a stream’s writer set has drifted from its readable set.

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQStreamHealthAnalyzer'
pydantic model domino_admin_toolkit.analyzers.rabbitmq_analyzer.RabbitMQStreamLeaderPresenceAnalyzer

Bases: AnalyzerBase[StreamLeaderRow]

Validates per-stream leader presence from Prometheus rabbitmq_queue_info.

Distinct from the Management API leader check because Prometheus reads the Raft subsystem directly — it catches the case where the Management API has a stale cache reporting state=running while Raft has actually lost the leader. FAILs when has_leader is False for a stream.

Fields:

analyze(data)

Analyzes one row and returns a list of CheckResult instances.

Return type:

list[CheckResult]

Args:

data: One row dict (TRow). The Runner calls this once per DataFrame row.

Returns:

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

Raises:

NotImplementedError: If this method is not implemented by subclasses.

name: ClassVar[str] = 'RabbitMQStreamLeaderPresenceAnalyzer'
class domino_admin_toolkit.analyzers.rabbitmq_analyzer.StreamHealthRow

Bases: TypedDict

One row per stream from the RabbitMQ Management API.

consumers: int | None
leader: str | None
members_count: int | None
members_online_diff: int | None
messages: int | None
name: str
online_count: int | None
state: str | None
vhost: str
class domino_admin_toolkit.analyzers.rabbitmq_analyzer.StreamLeaderRow

Bases: TypedDict

One row per stream pivoted from rabbitmq_queue_info.

has_leader: bool | None
queue: str
vhost: str
domino_admin_toolkit.analyzers.rabbitmq_analyzer.get_rabbitmq_connections_df(rabbitmq_data, k8s_client)

Retrieves RabbitMQ connection data for all nodes and flattens it into a DataFrame.

Return type:

DataFrame

domino_admin_toolkit.analyzers.rabbitmq_analyzer.get_rabbitmq_data(k8s_client)

Retrieves RabbitMQ cluster information from the API.

Return type:

dict

Args:

k8s_client: DominoKubernetesClient instance

domino_admin_toolkit.analyzers.rabbitmq_analyzer.get_rabbitmq_feature_flags_df(rabbitmq_data, k8s_client)

Retrieves RabbitMQ feature flags for all nodes and flattens them into a DataFrame.

Return type:

DataFrame

domino_admin_toolkit.analyzers.rabbitmq_analyzer.get_rabbitmq_node_df(rabbitmq_data, k8s_client)

Gathers RabbitMQ data into a DataFrame. Ensures each node’s data is fetched independently.

Return type:

DataFrame

domino_admin_toolkit.analyzers.rabbitmq_analyzer.get_rabbitmq_ports_df(rabbitmq_data, k8s_client)

Retrieves RabbitMQ port connectivity data for all nodes and flattens it into a DataFrame.

Return type:

DataFrame

domino_admin_toolkit.analyzers.rabbitmq_analyzer.get_rabbitmq_queue_df(rabbitmq_data, k8s_client)

Gathers RabbitMQ queue-level data into a DataFrame and maps queues to microservices.

Return type:

DataFrame