Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Prometheus Configuration

ASecurity

当需要部署 Prometheus、配置抓取(scrape)/服务发现、编写 recording 与告警规则并用 promtool 校验时使用;产出 prometheus.yml、规则文件与验证命令;不适用于 Grafana 看板、告警通知路由(Alertmanager)、追踪/日志或 PromQL 排障;触发词:Prometheus、prometheus.yml、scrape、recording rule、告警规则、promtool、kube-prometheus、node-exporter。

3 stars
0 votes
0 copies
2 views
Added 9/19/2026
ai-agentsbashnodedockerkubernetescode-reviewgitapidevops

Works with

cursorcliapi

Security Analysis

A96/100
mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned 9/19/2026

$npx -y skills add findscripter/everything-skills --skill prometheus-configuration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Prometheus Configuration?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Prometheus Configuration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-prometheus-configuration/badge)](https://www.skillsdirectory.com/skills/findscripter-prometheus-configuration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: prometheus-configuration
title: Prometheus 监控配置
description: 当需要部署 Prometheus、配置抓取(scrape)/服务发现、编写 recording 与告警规则并用 promtool 校验时使用;产出 prometheus.yml、规则文件与验证命令;不适用于 Grafana 看板、告警通知路由(Alertmanager)、追踪/日志或 PromQL 排障;触发词:Prometheus、prometheus.yml、scrape、recording rule、告警规则、promtool、kube-prometheus、node-exporter。
domain: 研发/observability
triggers: [Prometheus, prometheus.yml, scrape, recording rule, 告警规则, alert rule, promtool, kube-prometheus, node-exporter, service discovery, 服务发现, relabel]
tags: [prometheus, monitoring, observability, devops, sre]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [prometheus, promtool, helm, docker-compose]
requires: []
related: [grafana-dashboards, slo-sli-implementation, observability-strategy-designer, distributed-tracing]
combines_with: [kubernetes-architect, devops-troubleshooter, sre-incident-responder]
license: MIT
source: sickn33/agentic-awesome-skills
source_license: MIT
---
采编自 sickn33/antigravity-awesome-skills(MIT)。

## 何时使用

- 需要从零搭建 Prometheus(Helm/Docker Compose)并编写 `prometheus.yml`。
- 需要配置抓取目标:静态 targets、文件服务发现、Kubernetes 服务发现,并用 relabel 清洗标签。
- 需要写 recording 规则(预聚合高频/昂贵查询)或告警规则(up、错误率、P95、CPU/内存/磁盘)。
- 需要用 `promtool` 校验配置与规则、自检抓取目标是否健康。

不该用的边界:
- 只做可视化看板 → 用 Grafana 相关技能,本技能不画图。
- 告警的通知渠道/分组/静默/路由 → 属 Alertmanager 配置,本技能只声明 `alerting` 指向它并写规则。
- 写复杂 PromQL 做即席排障、做 SLO/错误预算建模、分布式追踪/日志 → 超出范围。
- 长期存储/联邦的深度运维(Thanos/Cortex 搭建细节)→ 仅在最佳实践中点到,不展开。

## 步骤 / 指令

```
1. 部署 Prometheus(按环境二选一)
   - K8s:helm 装 kube-prometheus-stack,设 retention 与存储卷大小。
   - 单机/本地:Docker Compose 起 prom/prometheus,挂载 prometheus.yml 与数据卷。

2. 写 prometheus.yml 主配置
   - global:scrape_interval / evaluation_interval(典型 15~60s)、external_labels(cluster/region)。
   - alerting:alertmanagers.static_configs 指向 alertmanager:9093。
   - rule_files:通配载入 /etc/prometheus/rules/*.yml。
   - scrape_configs:先加 prometheus 自监控,再加各 job。

3. 配抓取目标(按来源选一种或多种)
   - 静态:static_configs.targets + 可选 labels。
   - 文件 SD:file_sd_configs.files 指向 *.json/*.yml,配 refresh_interval。
   - K8s SD:kubernetes_sd_configs.role=pod|service,用 relabel_configs 按
     prometheus.io/scrape、/path、/port 注解 keep+改写 __address__/__metrics_path__。
   - 用 relabel 把 __meta_* 元标签落成 namespace/pod 等业务标签。

4. 写 recording 规则(rules/recording_rules.yml)
   - 命名遵循 level:metric:operation(如 job:http_requests:rate5m)。
   - 预聚合:请求率、错误率%、histogram_quantile 算 P95、节点 CPU/内存/磁盘利用率。

5. 写告警规则(rules/alert_rules.yml)
   - 每条含 expr / for / labels.severity / annotations.summary+description。
   - 复用 recording 结果当 expr(如 job:http_requests_error_rate:percentage > 5)。

6. 校验后再上线
   - promtool check config / check rules,必要时 query instant 自测。
   - reload 后查 /api/v1/targets 确认目标 UP。
```

规则与约定:
- 指标命名一致:`前缀_名称_单位`;recording 规则名用 `level:metric:operation` 冒号风格。
- 抓取间隔按需 15~60s;昂贵查询一律转 recording 规则,告警 expr 引用预聚合结果以降负载。
- relabel 用于标签清洗与 SD 过滤(`action: keep/replace`),别在告警里堆裸 PromQL。
- 改完配置/规则必须先 `promtool` 校验再 reload,避免坏配置中断抓取。

## 示例

部署(K8s / 本地二选一):
```bash
# Kubernetes + Helm
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack \
  --namespace monitoring --create-namespace \
  --set prometheus.prometheusSpec.retention=30d \
  --set prometheus.prometheusSpec.storageVolumeSize=50Gi
```
```yaml
# docker-compose.yml(本地)
services:
  prometheus:
    image: prom/prometheus:latest
    ports: ["9090:9090"]
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus-data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--storage.tsdb.retention.time=30d'
volumes:
  prometheus-data:
```

主配置 prometheus.yml(含 K8s pod 服务发现):
```yaml
global:
  scrape_interval: 15s
  evaluation_interval: 15s
  external_labels: { cluster: 'production', region: 'us-west-2' }
alerting:
  alertmanagers:
    - static_configs:
        - targets: ['alertmanager:9093']
rule_files:
  - /etc/prometheus/rules/*.yml
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node1:9100', 'node2:9100']
  - job_name: 'kubernetes-pods'
    kubernetes_sd_configs:
      - role: pod
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: true
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
        action: replace
        target_label: __metrics_path__
        regex: (.+)
      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
        action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        target_label: __address__
      - source_labels: [__meta_kubernetes_namespace]
        action: replace
        target_label: namespace
```

文件服务发现:
```yaml
- job_name: 'file-sd'
  file_sd_configs:
    - files: ['/etc/prometheus/targets/*.json']
      refresh_interval: 5m
```
```json
[{ "targets": ["app1:9090", "app2:9090"], "labels": { "env": "production", "service": "api" } }]
```

recording 规则(预聚合):
```yaml
groups:
  - name: api_metrics
    interval: 15s
    rules:
      - record: job:http_requests:rate5m
        expr: sum by (job) (rate(http_requests_total[5m]))
      - record: job:http_requests_errors:rate5m
        expr: sum by (job) (rate(http_requests_total{status=~"5.."}[5m]))
      - record: job:http_requests_error_rate:percentage
        expr: (job:http_requests_errors:rate5m / job:http_requests:rate5m) * 100
      - record: job:http_request_duration:p95
        expr: histogram_quantile(0.95, sum by (job, le) (rate(http_request_duration_seconds_bucket[5m])))
  - name: resource_metrics
    interval: 30s
    rules:
      - record: instance:node_cpu:utilization
        expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
      - record: instance:node_memory:utilization
        expr: 100 - ((node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100)
```

告警规则:
```yaml
groups:
  - name: availability
    rules:
      - alert: ServiceDown
        expr: up{job="my-app"} == 0
        for: 1m
        labels: { severity: critical }
        annotations:
          summary: "Service {{ $labels.instance }} is down"
          description: "{{ $labels.job }} has been down for more than 1 minute"
      - alert: HighErrorRate
        expr: job:http_requests_error_rate:percentage > 5
        for: 5m
        labels: { severity: warning }
        annotations:
          summary: "High error rate for {{ $labels.job }}"
          description: "Error rate is {{ $value }}% (threshold: 5%)"
  - name: resources
    rules:
      - alert: HighCPUUsage
        expr: instance:node_cpu:utilization > 80
        for: 5m
        labels: { severity: warning }
        annotations: { summary: "High CPU on {{ $labels.instance }}", description: "CPU {{ $value }}%" }
      - alert: DiskSpaceLow
        expr: instance:node_disk:utilization > 90
        for: 5m
        labels: { severity: critical }
        annotations: { summary: "Low disk on {{ $labels.instance }}", description: "Disk {{ $value }}%" }
```

校验与自检:
```bash
promtool check config prometheus.yml
promtool check rules /etc/prometheus/rules/*.yml
promtool query instant http://localhost:9090 'up'
curl http://localhost:9090/api/v1/targets          # 抓取目标健康
curl http://localhost:9090/api/v1/status/config    # 当前生效配置
```

## 注意事项

- 上线前必校验:任何 `prometheus.yml`/规则改动先 `promtool check`,坏配置 reload 会中断抓取。
- recording 规则名用 `level:metric:operation` 冒号风格;指标命名统一为 `前缀_名称_单位`,避免后续聚合混乱。
- 告警 expr 尽量引用 recording 结果,别在告警里直接跑昂贵聚合,否则评估周期被拖垮。
- K8s SD 强依赖 relabel:`action: keep` 决定哪些 pod/service 被抓,漏配会抓全量或抓不到。注解端口改写要保留 `__address__:port` 形态。
- `for` 不可省:避免抖动误告警;severity 至少区分 critical/warning,供 Alertmanager 路由。
- 抓取间隔与 retention 配比要按存储容量定;大规模再上联邦/Thanos/Cortex 做长期存储,并务必监控 Prometheus 自身。
- HTTPS 抓取目标配 `tls_config`(ca/cert/key),`scheme: https`,否则抓取失败。
- 不要凭记忆填 CVE/版本/exporter 端口,以实际环境与 `/api/v1/targets` 输出为准。

## 互见

- related:`code-reviewer`、`dependency-auditor` —— 同属研发域工程治理;本技能聚焦监控配置产物。
- combines_with:Grafana 看板(可视化 recording/告警指标)、Alertmanager(承接本技能写的告警规则做通知路由),二者与本技能上下游协同构成完整可观测链路。

Attribution

findscripterfindscripter
View sourceSee grades on GitHubMore from findscripter →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →