Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add gke-labs/kube-agents --skill gke-alert-configurationgit clone --depth 1 https://github.com/gke-labs/kube-agentsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/gke-labs/kube-agents/gke-alert-configuration)<a href="https://agentmods.dev/skills/gke-labs/kube-agents/gke-alert-configuration"><img src="https://agentmods.dev/badge/skills/gke-labs/kube-agents/gke-alert-configuration/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/gke-labs/kube-agents/gke-alert-configuration"><img src="https://agentmods.dev/badge/skills/gke-labs/kube-agents/gke-alert-configuration.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00120 | $0.07159 |
| Opus 5.5 | $0.00048 | $0.02864 |
| Sonnet 5.5 | $0.00024 | $0.01432 |
| Haiku 4.5 | $0.00012 | $0.00716 |
Grade A, and why
gke-alert-configuration scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 581 lines — stays where its author put it; the contents beside it link to each section on GitHub.
GKE Alert Configuration
This skill provides guidelines and best practices for creating robust, high-signal alerting policies for Google Kubernetes Engine workloads using Google Cloud Managed Service for Prometheus and Terraform. It ensures comprehensive coverage of the 4 Golden Signals and key cluster health metrics while minimizing alert noise.
Critical Rules
- Negative Triggers and Scope Redirection for Non-GKE Standalone Runtimes:
- This skill is strictly scoped to Google Kubernetes Engine (GKE) workloads, clusters, and services using PromQL and Google Cloud Managed Service for Prometheus.
- Do not use for non-GKE compute runtimes, such as standalone Compute Engine virtual machines or standalone Cloud Run services without GKE.
- STOP AND RESPOND DIRECTLY (Do Not Edit Files): When the user
requests alert configuration for non-GKE compute infrastructure:
- Do not write, create, edit, or validate any Terraform files on disk.
- Immediately stop and respond directly to the user in chat:
- Explicitly Clarify Out-of-Scope: State clearly that standalone Compute Engine virtual machine monitoring or standalone Cloud Run monitoring is out of scope for this GKE-specific PromQL alerting skill, which is designed specifically for GKE workloads using Google Cloud Managed Service for Prometheus and PromQL.
- Do Not Generate GKE PromQL Alerts: Do not create or generate Kubernetes PromQL alert policies or fabricate Kubernetes container, pod, or node resources for non-GKE infrastructure.
- Redirect the User: Guide and redirect the user to standard
Google Cloud Monitoring metrics, such as
compute.googleapis.com/instance/cpu/utilizationorrun.googleapis.com/request_latencies, using standardgoogle_monitoring_alert_policywithcondition_thresholdor MQL, or recommend the relevant specialized Cloud observability skill.
- Mandatory
kube-state-metrics(KSM) Cost Guardrail:- Deploying open-source
kube-state-metricsin Google Cloud Managed Service for Prometheus incurs billable metric ingestion costs. - STOP AND ASK PERMISSION FIRST (Do Not Edit Files): When a requested
alert rule relies on Tier 2 KSM metrics (such as
kube_cronjob_*,kube_pod_status_phase,kube_persistentvolume_*,kube_deployment_*,kube_statefulset_*,kube_job_*, orkube_daemonset_*), do not write, create, edit, or validate any Terraform files or generate alert policies before obtaining user approval. - Instead, you must immediately stop and respond directly to the user
to:
- Alert the user that the requested alert requires
kube-state-metrics. - Explain the cost impact: Detail that
kube-state-metricsincurs billable sample ingestion costs in Google Cloud Managed Service for Prometheus. - Ask for explicit permission: Ask the user for explicit permission before assuming, enabling, or generating KSM-dependent alert configurations.
- Recommend filtering or allowlisting: Suggest and recommend
filtering or allowlisting only the specific required metrics, such
as using a
PodMonitoringresource withmetricRelabeling(action: keep) or KSM--metric-allowlistto minimize ingestion costs. Provide a concrete allowlist example.
- Alert the user that the requested alert requires
- Always prefer Non-KSM Native Alternatives (Tier 1 cAdvisor or native
GKE metrics documented in
metrics_and_alerts_catalog.md)
whenever possible, such as using
container_memory_working_set_bytesandcontainer_spec_memory_limit_bytesinstead ofkube_pod_container_resource_limits. - Explicit Tier and Cost Surcharge Identification in Response: In
every response where you generate or recommend an alerting policy, you
must explicitly state its classification tier and cost impact:
- Tier 1 native or standard metric (GKE built-in metrics, cAdvisor
container_*, kubelet volume stats, nativekubernetes.io/node/status_condition, and control-plane metrics. Everykube_*series the references name (kube_node_status_condition,kube_node_spec_taintandkube_pod_container_status_restarts_totalamong them) is a kube-state-metrics series and therefore Tier 2, whatever the KSM-required or tier columns in the references say; see metrics_and_alerts_catalog.md): State that it is a Tier 1 native or standard metric with zero KSM cost surcharge. - Tier 2 KSM metric: State that it is a Tier 2 KSM-dependent
metric and follow the permission and allowlisting guardrail above.
(Tip: Generally, metrics with the
kube_prefix that represent resource state or metadata belong to Tier 2).
- Tier 1 native or standard metric (GKE built-in metrics, cAdvisor
- Deploying open-source
- Plan-Validate-Execute Loop for Approved File Edits: When modifying,
adding, or merging approved Terraform files on disk in a workspace, follow
the three-phase workflow:
- Plan: Draft a structured change plan (
changes.json) containing proposed policy resource names, PromQL expressions, grouping labels, and durations. - Validate: Run the pre-edit validation script (
python3 "$HERMES_HOME"/skills/gke-alert-configuration/scripts/validate_config.py --plan changes.json) to check bracket balance, time-window and offset formats, duration rules, and duplicate signals. The duplicate check compares only entries that carry asignal_type(for examplesaturation_memory), so give each planned policy one. Write the plan as{"policies": [{"resource_name": ..., "query": ..., "duration": ..., "signal_type": ...}]}: the script reads a duration only from thedurationkey and takes a missing one as0s, so a duration under any other key passes the duration rule unchecked. It does not parse PromQL, so a pass does not prove the query is valid. - Execute: After the plan passes validation, apply or merge changes
in-place into the target Terraform configuration (
alerts.tf). - Note: When answering questions or providing Terraform snippets directly in chat where no disk modification is requested, output the complete, valid Terraform HCL block in your response.
- Plan: Draft a structured change plan (
- Configure the 4 Golden Signals and Cluster Health: Always ensure the
target Kubernetes workload or service has the following alerting coverage:
- Latency (P95 response time)
- Errors (Multi-Window Multi-Burn-Rate SLO alerts, such as Fast Burn 1 hour / 5 minutes with factor 14.4, Slow Burn 6 hours / 30 minutes with factor 6.0; do not use simple static ratios)
- Traffic (Sudden drop or complete metric disappearance using
absent()ordefault 0syntax, or overload spikes) - Saturation (Memory Limit Utilization Only): When describing or
configuring alert policies for a cluster or project, include ONLY
Memory Saturation (
container_memory_working_set_bytes/container_spec_memory_limit_bytes). Do NOT include CPU saturation alerts or listcontainer_cpu_usage_seconds_totalas an alert metric because CPU is compressible and throttled by CFS quotas rather than causing uncompressible fatal termination (OOM). - Cluster Health (Pod CrashLooping, Node NotReady)
- PromQL Only (Managed Prometheus): You must use
condition_prometheus_query_languagewith PromQL. Do NOT use MQL or standardcondition_thresholdunless explicitly requested. Google Cloud Managed Service for Prometheus is the standard telemetry ingestion path for GKE. - Terraform Only: Write the generated observability configuration ONLY as
Terraform (
.tf) files, such asalerts.tfandvariables.tf. - Dynamic Multi-Resource Alerting (No Hardcoding): You must not hardcode
specific pod names, node names, or service names in alerting conditions
unless explicitly requested. Alerting policies must be written to cover
resources dynamically:
- Always use grouping aggregations (
by (cluster, namespace, service, pod, container)) instead of filtering to a single instance. This allows a single alert policy to dynamically track each service or pod separately. - Always declare and use Terraform variables for
project_id,cluster_name, andnamespace(var.project_id,var.cluster_name,var.namespace) to make the configuration reusable across environments. Always define these variables invariables.tf(or within the configuration) and reference all three in policies or PromQL label matchers.
- Always use grouping aggregations (
- No Redundant Duration Windows on Lookbacks:
- When PromQL expressions already use an aggregated lookback window (such
as
increase(...[15m]) > 3or multi-window SLO burn rates), the query time window already smooths out transient spikes. - Adding a Terraform duration on top of a PromQL lookback window increases the Mean Time to Detect (MTTD) without providing additional smoothing benefits.
- In these cases, set Terraform
duration = "0s"(or"60s"). Do not enforceduration = "300s"on top of[15m], which delays critical crashloop alerts by up to 20 minutes total (15 minutes + 5 minutes). - Use
duration = "300s"only on instantaneous gauge conditions, such askube_node_status_condition == 0.
- When PromQL expressions already use an aggregated lookback window (such
as
- Use SLO Burn Rates Instead of Simple Ratios: For error rate alerting,
always generate Multi-Window Multi-Burn-Rate (MWMBR) SLO alerts (such as
14.4x burn rate over 1 hour and 5 minute windows for a 99% SLO) rather than
simple error rate ratios (
rate(5xx)/rate(total) > 0.05), which produce excessive false alarms on low traffic. - Robust Traffic Drop Detection (
absent()/default 0): When monitoring for traffic drops to zero, do not userate(...) == 0alone because Prometheus time series disappear completely when no requests occur (evaluating to an empty vector rather than 0). Usedefault 0syntax, such assum(rate(...[5m])) default 0 == 0, orabsent(...) == 1. - Notification Channels: By default, never configure any notification channels without user input. If the user explicitly provides a notification channel, configure the alerts to use it. Otherwise, you must prompt the user in your response to ask if they would like to configure one.
- Consult GKE Metrics and Open-Source Alerts Catalog: When designing or
generating evaluation suites or alerting policies, consult
metrics_and_alerts_catalog.md
for public GKE metrics (
kubernetes.io/) and open-source Kubernetes alerts (awesome-prometheus-alerts). - Plain English Response: You must include a plain English explanation for what the alerts do in your response. Explain what the alert measures, what the threshold represents, and what a trigger indicates.
- User Labels: Include a
user_labelsblock in allgoogle_monitoring_alert_policyresources to track policies created by this skill:
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +1 lines 16efd2bd1d9c
- 5d ago Changed 770dfe181338
- 6d ago First seen · 580 lines · 120 tokens per session scan A 91e11f9f694d
gke-alert-configuration is a skill published in the GitHub repository gke-labs/kube-agents (109 stars, last pushed today), licensed Apache-2.0. It adds 120 tokens to every session and 7,159 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-16.
Other skills, from other repositories
gke-compute-classes
Configures, optimizes, and troubleshoots GKE ComputeClasses. Use when configuring Spot VMs with on-demand fallback, targeting specific accelerators (GPUs/TPUs) or machine families, restricting ComputeClass access, or debugging pending pods related to node pool auto-creation. Do not use for cluster-level Node Auto…
gke-workload-security
Audits, configures, and hardens workload-level security controls for Google Kubernetes Engine (GKE) applications and namespaces. Covers running security audits (auditcluster.sh), enforcing Network Policies (default-deny and Dataplane V2 logging), isolating high-risk pods inside GKE Sandbox (gVisor), enforcing Pod…
gke-reliability
Improves GKE workload reliability, using PDBs, health probes, and topology spread constraints. Use when configuring GKE workload reliability, setting up PDBs, or configuring GKE health probes (liveness, readiness, startup). Don't use for generating K8s YAML manifests (use gke-manifest-generation) or disaster recovery…
cloud-architect
Designs cloud architectures, creates migration plans, generates cost optimization recommendations, and produces disaster recovery strategies across AWS, Azure, and GCP. Use when designing cloud architectures, planning migrations, or optimizing multi-cloud deployments. Invoke for Well-Architected Framework, cost…
nemo-automodel-launcher-config
Configure NeMo AutoModel job launches for interactive runs, Slurm clusters, and SkyPilot cloud execution.
azure-mgmt-botservice-dotnet
Azure Resource Manager SDK for Bot Service in .NET. Management plane operations for creating and managing Azure Bot resources, channels (Teams, DirectLine, Slack), and connection settings. Triggers: "Bot Service", "BotResource", "Azure Bot", "DirectLine channel", "Teams channel", "bot management .NET", "create bot".