Skip to main content
Glama
driosalido
by driosalido

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
NameRequiredDescriptionDefault
cluster_nameYes

Implementation Reference

  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/driosalido/mcp-karma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server