list_alerts_by_cluster
Retrieve Kubernetes alerts for a specific cluster from the Karma dashboard to monitor and analyze issues affecting that environment.
Instructions
List alerts filtered by specific cluster
Args: cluster_name: Name of the cluster to filter by (e.g., 'teddy-prod', 'edge-prod')
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cluster_name | Yes |
Implementation Reference
- src/karma_mcp/server.py:418-466 (handler)The `list_alerts_by_cluster` tool implementation that fetches alerts, filters them by cluster using a helper function, and formats the result.
async def list_alerts_by_cluster(cluster_name: str) -> str: """List alerts filtered by specific cluster Args: cluster_name: Name of the cluster to filter by (e.g., 'teddy-prod', 'edge-prod') """ data, error = await fetch_karma_alerts() if error: return error # Use utility function to filter by cluster filtered_data = filter_alerts_by_cluster(data, cluster_name) # Count filtered alerts total_alerts = 0 grids = filtered_data.get("grids", []) for grid in grids: for group in grid.get("alertGroups", []): total_alerts += len(group.get("alerts", [])) if total_alerts == 0: return f"No alerts found for cluster: {cluster_name}" # Format output using utility functions result = f"🏢 Alerts in cluster '{cluster_name}'\n" result += "=" * 50 + "\n\n" result += f"Found {total_alerts} alerts:\n\n" counter = 1 for grid in grids: for group in grid.get("alertGroups", []): for alert in group.get("alerts", []): metadata = extract_alert_metadata(group, alert) result += f"{counter:2d}. {metadata['alertname']}\n" result += f" Severity: {metadata['severity']}\n" result += f" State: {metadata['state']}\n" result += f" Namespace: {metadata['namespace']}\n" result += f" Cluster: {metadata['cluster']}\n" # Add instance if available instance = extract_label_value(alert.get("labels", []), "instance") if instance != "unknown": result += f" Instance: {instance}\n" result += "\n" counter += 1 return result