用途:通过 Prometheus HTTP API 查询监控指标、检查告警、验证目标健康状态。API 与 PromQL 语法参考 Context7 MCP,本技能仅记录环境相关规则。
主要能力:可查询 node_(主机 CPU、内存、磁盘、网络)、kube_(K8s 对象状态)、container_(cAdvisor 容器资源)、apiserver_、kubelet_、prometheus_ 等指标前缀;也支持自定义前缀如 kafka_、fluentbit_。常见流程包括节点资源排查、Kafka 健康检查、容器排查、K8s 集群健康检查。
使用方式:先配置 PROMETHEUS_URL(必填),例如 http://prometheus.internal:9090,并按环境配置认证(无、basic auth 或 bearer token)。确认使用 HTTP 还是 HTTPS。step 不应小于抓取间隔(通常 15s-60s)。macOS 上使用 date -v-1H +%s 代替 Linux 的 date -d '1 hour ago' +%s。
常用查询示例:Kafka 消费者延迟:curl -s "$PROMETHEUS_URL/api/v1/query?query=sum%20by%20(consumergroup,topic)(kafka_consumergroup_lag)" | jq '.data.result[] | {group: .metric.consumergroup, topic: .metric.topic, lag: .value[1]}';节点 CPU 前 10:curl -s "$PROMETHEUS_URL/api/v1/query?query=topk(10,100*(1-rate(node_cpu_seconds_total{mode="idle"}[5m])))" | jq '.data.result[] | {node: .metric.instance, cpu_pct: .value[1]}';磁盘空间预测:curl -s "$PROMETHEUS_URL/api/v1/query?query=predict_linear(node_filesystem_avail_bytes{mountpoint="/"}[24h],86400)" | jq '.data.result[] | {instance: .metric.instance, predicted_bytes: .value[1]}'。
限制:高基数标签(user_id、request_id)不得用于 rate() 或 sum by() 聚合,否则可能导致 Prometheus OOM。job 标签命名建议遵循 {env}-{region}-{service}、kubernetes-{resource}、{component}-exporter 等约定。Kafka 延迟正常范围取决于工作负载,持续增长表示消费处理能力有问题。其他具体价格、收费、平台支持暂未提供。