mcpField
P
prometheus

prometheus

github.com/ionfury云与 DevOps2572 次安装今天更新
代码仓库

关于 prometheus

这项 Prometheus 查询技能面向 Prometheus 和 Alertmanager 位于 OAuth2 Proxy 后方的 Kubernetes 环境,说明如何进入 Pod、设置端口转发,并用附带脚本执行即时和区间 PromQL 查询。

主要功能

  1. 01在 Pod 内查询 Prometheus
  2. 02通过端口转发访问 API
  3. 03执行即时 PromQL 查询
  4. 04按时间步长执行区间查询
  5. 05查看 CPU、内存和 Pod 常用查询

适用场景

  1. 01检查监控目标是否正常运行
  2. 02检查 CPU 和内存使用率
  3. 03查找状态异常的 Pod
  4. 04通过本地端口转发重复执行查询

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ionfury/homelab --skill prometheus

安装后在 Claude Code 中输入/prometheus确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tests.yaml
references/
queries.md
scripts/
promql.sh

详细介绍

Prometheus 查询

设置

Prometheus 和 Alertmanager 位于内部网关上的 OAuth2 Proxy 之后。DNS URL(https://prometheus.internal.tomnowak.work)会重定向到 OAuth 登录页面,因此无法通过 curl 用于 API 查询。

访问方式

方式 1:kubectl exec(快捷,无需设置)

# Query Prometheus API directly inside the pod
kubectl --context <cluster> exec -n monitoring prometheus-kube-prometheus-stack-0 -c prometheus -- \
  wget -qO- 'http://localhost:9090/api/v1/query?query=up' | jq '.data.result'

# Query Alertmanager API
kubectl --context <cluster> exec -n monitoring alertmanager-kube-prometheus-stack-0 -c alertmanager -- \
  wget -qO- 'http://localhost:9093/api/v2/alerts' | jq .

方式 2:端口转发(适用于脚本和重复查询)

kubectl --context <cluster> port-forward -n monitoring svc/prometheus-operated 9090:9090 &
export PROMETHEUS_URL=http://localhost:9090

promql.sh 脚本默认使用 http://localhost:9090,开箱即可配合端口转发使用。

快速查询

使用位于 .claude/skills/prometheus/scripts/promql.sh 的捆绑脚本:

# Start port-forward first (script defaults to http://localhost:9090)
kubectl --context <cluster> port-forward -n monitoring svc/prometheus-operated 9090:9090 &

# Instant query
./scripts/promql.sh query 'up'

# Range query (last hour, 15s resolution)
./scripts/promql.sh range 'node_cpu_seconds_total' --start 1h --step 15s

# Firing alerts only
./scripts/promql.sh alerts --firing

# All alert rules
./scripts/promql.sh rules

# Find metrics by label
./scripts/promql.sh series '{job="node-exporter"}'

# Health check
./scripts/promql.sh health

常见查询

# CPU usage %
./scripts/promql.sh query 'avg(1 - rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100'

# Memory usage %
./scripts/promql.sh query '(1 - sum(node_memory_MemAvailable_bytes) / sum(node_memory_MemTotal_bytes)) * 100'

# Problem pods
./scripts/promql.sh query 'kube_pod_status_phase{phase!~"Running|Succeeded"} == 1'

# Container restarts (last hour)
./scripts/promql.sh query 'increase(kube_pod_container_status_restarts_total[1h]) > 0'

# Firing alerts
./scripts/promql.sh alerts --firing

# Full alert details
./scripts/promql.sh alerts --verbose

创建监控资源

本技能涵盖 Prometheus 的查询。关于编写新的监控资源 (PrometheusRules、ServiceMonitors、PodMonitors、AlertmanagerConfig、记录规则), 请参阅 monitoring-authoring skill。

Prometheus 详情

属性值
Namespacemonitoring
Serviceprometheus-operated:9090
Retention14 days / 50GB
External labelprometheus_source: ${cluster_name}

评论

支持 Markdown