About infrastructure
A skill for configuring Grafana Cloud infrastructure monitoring across Kubernetes, hosts, containers, and cloud providers. It explains onboarding through the k8s-monitoring Helm chart or Alloy, with validation and troubleshooting guidance.
Key features
- 01Helm chart 配置 Kubernetes 监控
- 02使用 Alloy 采集主机指标
- 03配置 AWS、Azure、GCP 数据源
- 04检查采集状态并排查故障
Use cases
- 01将 Kubernetes 集群接入 Grafana Cloud
- 02采集 Linux 主机指标
- 03查询 AWS、Azure 或 GCP 指标
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ grafana/ skills --skill infrastructureAfter installing, type/infrastructurein Claude Code to confirm it loaded.
Bundled filesreferences/clouds-and-hosts.mdreferences/k8s-monitoring-values.md
Details
From the project READMEGrafana Cloud Infrastructure Monitoring
Docs: https://grafana.com/docs/grafana-cloud/monitor-infrastructure/
K8s + host + container + cloud-provider telemetry, mostly via the grafana/k8s-monitoring Helm chart or Alloy.
Prerequisites
- Grafana Cloud stack with Prometheus / Loki / Tempo endpoints + API key (
metrics:write,logs:write,traces:write) - For Kubernetes: a cluster +
helm3.x +kubectlcontext pointing at it - For hosts / Docker: Alloy installed on the node
Common Workflows
1. Onboard a Kubernetes cluster (k8s-monitoring chart)
# 1. Create the namespace + secret
kubectl create namespace monitoring
kubectl create secret generic grafana-cloud-secret \
-n monitoring --from-literal=api-key=<your-api-key>
# 2. Install — values.yaml in references/k8s-monitoring-values.md
helm repo add grafana https://grafana.github.io/helm-charts && helm repo update
helm install k8s-monitoring grafana/k8s-monitoring \
--version 4.1.4 -n monitoring -f values.yaml
# 3. Verify every pod is Running
kubectl get pods -n monitoring
# Expect alloy-*, kube-state-metrics-*, node-exporter-*, etc. all Ready.
# 4. Verify no error logs in the metrics/logs/traces Alloys
kubectl -n monitoring logs deploy/k8s-monitoring-alloy-metrics --tail=50 | grep -iE 'error|level=err' || echo "clean"
# 5. Verify telemetry landed in Grafana Cloud
# PromQL on the metrics datasource (should be > 0):
# sum(up{cluster="production-us-east"})
# LogQL on Loki:
# sum(count_over_time({cluster="production-us-east"}[5m]))
Full values.yaml, key PromQL, dashboard IDs (15520, 1860, 14282…), and alert rules: references/k8s-monitoring-values.md.
2. Monitor a Linux host
# 1. /etc/alloy/config.alloy — see references/clouds-and-hosts.md for the full block
prometheus.exporter.unix "host" { rootfs_path = "/" }
prometheus.scrape "node" { targets = prometheus.exporter.unix.host.targets
forward_to = [prometheus.remote_write.cloud.receiver] }
# 2. Reload Alloy and verify the unix exporter is up
systemctl reload alloy
curl -s http://localhost:12345/api/v0/web/components | jq '.[] | select(.id|contains("prometheus.exporter.unix"))'
# 3. Verify in Grafana Cloud — open the "Node Exporter Full" dashboard (ID 1860)
# and pick your host from the `instance` dropdown.
3. Pull AWS / Azure / GCP metrics
Provision the datasource (full YAML in references/clouds-and-hosts.md), then:
# 1. After provisioning, restart Grafana to pick up the file
# 2. Verify the datasource — Grafana → Connections → Data sources → "Test"
# Expect "Successfully queried the CloudWatch metrics API" (or equivalent).
# 3. Confirm a query — Explore → datasource → metric e.g.
# CloudWatch namespace AWS/EC2 metric CPUUtilization, last 1h.
Troubleshooting
- chart installed but no metrics in Cloud → check the
grafana-cloud-secretapi-keyvalue; check Alloy logs for401 kube-state-metricspod Pending → likely RBAC; reapply the chart's CRDs/CRBs- Node-exporter pod CrashLoopBackOff → typically
hostNetwork: truecollision with the host's :9100; change the port - CloudWatch "Access denied" → IAM role missing
cloudwatch:GetMetricData,cloudwatch:ListMetrics