[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FFH4T8VFT918Q18K51D1VC":3,"skill-same:01M6FFH4T8VFT918Q18K51D1VC":53},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6FFH4T8VFT918Q18K51D1VC","prometheus-configuration",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Frmyndharis\u002Fantigravity-skills\u002Fprometheus-configuration\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[23,24,25],"prometheus","prometheus configuration","configuration","2026-11-10 10:12:30",false,"# Prometheus Configuration\n\nComplete guide to Prometheus setup, metric collection, scrape configuration, and recording rules.\n\n## Do not use this skill when\n\n- The task is unrelated to prometheus configuration\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources\u002Fimplementation-playbook.md`.\n\n## Purpose\n\nConfigure Prometheus for comprehensive metric collection, alerting, and monitoring of infrastructure and applications.\n\n## Use this skill when\n\n- Set up Prometheus monitoring\n- Configure metric scraping\n- Create recording rules\n- Design alert rules\n- Implement service discovery\n\n## Prometheus Architecture\n\n```\n┌──────────────┐\n│ Applications │ ← Instrumented with client libraries\n└──────┬───────┘\n       │ \u002Fmetrics endpoint\n       ↓\n┌──────────────┐\n│  Prometheus  │ ← Scrapes metrics periodically\n│    Server    │\n└──────┬───────┘\n       │\n       ├─→ AlertManager (alerts)\n       ├─→ Grafana (visualization)\n       └─→ Long-term storage (Thanos\u002FCortex)\n```\n\n## Installation\n\n### Kubernetes with Helm\n\n```bash\nhelm repo add prometheus-community https:\u002F\u002Fprometheus-community.github.io\u002Fhelm-charts\nhelm repo update\n\nhelm install prometheus prometheus-community\u002Fkube-prometheus-stack \\\n  --namespace monitoring \\\n  --create-namespace \\\n  --set prometheus.prometheusSpec.retention=30d \\\n  --set prometheus.prometheusSpec.storageVolumeSize=50Gi\n```\n\n### Docker Compose\n\n```yaml\nversion: '3.8'\nservices:\n  prometheus:\n    image: prom\u002Fprometheus:latest\n    ports:\n      - \"9090:9090\"\n    volumes:\n      - .\u002Fprometheus.yml:\u002Fetc\u002Fprometheus\u002Fprometheus.yml\n      - prometheus-data:\u002Fprometheus\n    command:\n      - '--config.file=\u002Fetc\u002Fprometheus\u002Fprometheus.yml'\n      - '--storage.tsdb.path=\u002Fprometheus'\n      - '--storage.tsdb.retention.time=30d'\n\nvolumes:\n  prometheus-data:\n```\n\n## Configuration File\n\n**prometheus.yml:**\n```yaml\nglobal:\n  scrape_interval: 15s\n  evaluation_interval: 15s\n  external_labels:\n    cluster: 'production'\n    region: 'us-west-2'\n\n# Alertmanager configuration\nalerting:\n  alertmanagers:\n    - static_configs:\n        - targets:\n          - alertmanager:9093\n\n# Load rules files\nrule_files:\n  - \u002Fetc\u002Fprometheus\u002Frules\u002F*.yml\n\n# Scrape configurations\nscrape_configs:\n  # Prometheus itself\n  - job_name: 'prometheus'\n    static_configs:\n      - targets: ['localhost:9090']\n\n  # Node exporters\n  - job_name: 'node-exporter'\n    static_configs:\n      - targets:\n        - 'node1:9100'\n        - 'node2:9100'\n        - 'node3:9100'\n    relabel_configs:\n      - source_labels: [__address__]\n        target_label: instance\n        regex: '([^:]+)(:[0-9]+)?'\n        replacement: '${1}'\n\n  # Kubernetes pods with annotations\n  - job_name: 'kubernetes-pods'\n    kubernetes_sd_configs:\n      - role: pod\n    relabel_configs:\n      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]\n        action: keep\n        regex: true\n      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]\n        action: replace\n        target_label: __metrics_path__\n        regex: (.+)\n      - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]\n        action: replace\n        regex: ([^:]+)(?::\\d+)?;(\\d+)\n        replacement: $1:$2\n        target_label: __address__\n      - source_labels: [__meta_kubernetes_namespace]\n        action: replace\n        target_label: namespace\n      - source_labels: [__meta_kubernetes_pod_name]\n        action: replace\n        target_label: pod\n\n  # Application metrics\n  - job_name: 'my-app'\n    static_configs:\n      - targets:\n        - 'app1.example.com:9090'\n        - 'app2.example.com:9090'\n    metrics_path: '\u002Fmetrics'\n    scheme: 'https'\n    tls_config:\n      ca_file: \u002Fetc\u002Fprometheus\u002Fca.crt\n      cert_file: \u002Fetc\u002Fprometheus\u002Fclient.crt\n      key_file: \u002Fetc\u002Fprometheus\u002Fclient.key\n```\n\n**Reference:** See `assets\u002Fprometheus.yml.template`\n\n## Scrape Configurations\n\n### Static Targets\n\n```yaml\nscrape_configs:\n  - job_name: 'static-targets'\n    static_configs:\n      - targets: ['host1:9100', 'host2:9100']\n        labels:\n          env: 'production'\n          region: 'us-west-2'\n```\n\n### File-based Service Discovery\n\n```yaml\nscrape_configs:\n  - job_name: 'file-sd'\n    file_sd_configs:\n      - files:\n        - \u002Fetc\u002Fprometheus\u002Ftargets\u002F*.json\n        - \u002Fetc\u002Fprometheus\u002Ftargets\u002F*.yml\n        refresh_interval: 5m\n```\n\n**targets\u002Fproduction.json:**\n```json\n[\n  {\n    \"targets\": [\"app1:9090\", \"app2:9090\"],\n    \"labels\": {\n      \"env\": \"production\",\n      \"service\": \"api\"\n    }\n  }\n]\n```\n\n### Kubernetes Service Discovery\n\n```yaml\nscrape_configs:\n  - job_name: 'kubernetes-services'\n    kubernetes_sd_configs:\n      - role: service\n    relabel_configs:\n      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]\n        action: keep\n        regex: true\n      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]\n        action: replace\n        target_label: __scheme__\n        regex: (https?)\n      - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]\n        action: replace\n        target_label: __metrics_path__\n        regex: (.+)\n```\n\n**Reference:** See `references\u002Fscrape-configs.md`\n\n## Recording Rules\n\nCreate pre-computed metrics for frequently queried expressions:\n\n```yaml\n# \u002Fetc\u002Fprometheus\u002Frules\u002Frecording_rules.yml\ngroups:\n  - name: api_metrics\n    interval: 15s\n    rules:\n      # HTTP request rate per service\n      - record: job:http_requests:rate5m\n        expr: sum by (job) (rate(http_requests_total[5m]))\n\n      # Error rate percentage\n      - record: job:http_requests_errors:rate5m\n        expr: sum by (job) (rate(http_requests_total{status=~\"5..\"}[5m]))\n\n      - record: job:http_requests_error_rate:percentage\n        expr: |\n          (job:http_requests_errors:rate5m \u002F job:http_requests:rate5m) * 100\n\n      # P95 latency\n      - record: job:http_request_duration:p95\n        expr: |\n          histogram_quantile(0.95,\n            sum by (job, le) (rate(http_request_duration_seconds_bucket[5m]))\n          )\n\n  - name: resource_metrics\n    interval: 30s\n    rules:\n      # CPU utilization percentage\n      - record: instance:node_cpu:utilization\n        expr: |\n          100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)\n\n      # Memory utilization percentage\n      - record: instance:node_memory:utilization\n        expr: |\n          100 - ((node_memory_MemAvailable_bytes \u002F node_memory_MemTotal_bytes) * 100)\n\n      # Disk usage percentage\n      - record: instance:node_disk:utilization\n        expr: |\n          100 - ((node_filesystem_avail_bytes \u002F node_filesystem_size_bytes) * 100)\n```\n\n**Reference:** See `references\u002Frecording-rules.md`\n\n## Alert Rules\n\n```yaml\n# \u002Fetc\u002Fprometheus\u002Frules\u002Falert_rules.yml\ngroups:\n  - name: availability\n    interval: 30s\n    rules:\n      - alert: ServiceDown\n        expr: up{job=\"my-app\"} == 0\n        for: 1m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"Service {{ $labels.instance }} is down\"\n          description: \"{{ $labels.job }} has been down for more than 1 minute\"\n\n      - alert: HighErrorRate\n        expr: job:http_requests_error_rate:percentage > 5\n        for: 5m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"High error rate for {{ $labels.job }}\"\n          description: \"Error rate is {{ $value }}% (threshold: 5%)\"\n\n      - alert: HighLatency\n        expr: job:http_request_duration:p95 > 1\n        for: 5m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"High latency for {{ $labels.job }}\"\n          description: \"P95 latency is {{ $value }}s (threshold: 1s)\"\n\n  - name: resources\n    interval: 1m\n    rules:\n      - alert: HighCPUUsage\n        expr: instance:node_cpu:utilization > 80\n        for: 5m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"High CPU usage on {{ $labels.instance }}\"\n          description: \"CPU usage is {{ $value }}%\"\n\n      - alert: HighMemoryUsage\n        expr: instance:node_memory:utilization > 85\n        for: 5m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"High memory usage on {{ $labels.instance }}\"\n          description: \"Memory usage is {{ $value }}%\"\n\n      - alert: DiskSpaceLow\n        expr: instance:node_disk:utilization > 90\n        for: 5m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"Low disk space on {{ $labels.instance }}\"\n          description: \"Disk usage is {{ $value }}%\"\n```\n\n## Validation\n\n```bash\n# Validate configuration\npromtool check config prometheus.yml\n\n# Validate rules\npromtool check rules \u002Fetc\u002Fprometheus\u002Frules\u002F*.yml\n\n# Test query\npromtool query instant http:\u002F\u002Flocalhost:9090 'up'\n```\n\n**Reference:** See `scripts\u002Fvalidate-prometheus.sh`\n\n## Best Practices\n\n1. **Use consistent naming** for metrics (prefix_name_unit)\n2. **Set appropriate scrape intervals** (15-60s typical)\n3. **Use recording rules** for expensive queries\n4. **Implement high availability** (multiple Prometheus instances)\n5. **Configure retention** based on storage capacity\n6. **Use relabeling** for metric cleanup\n7. **Monitor Prometheus itself**\n8. **Implement federation** for large deployments\n9. **Use Thanos\u002FCortex** for long-term storage\n10. **Document custom metrics**\n\n## Troubleshooting\n\n**Check scrape targets:**\n```bash\ncurl http:\u002F\u002Flocalhost:9090\u002Fapi\u002Fv1\u002Ftargets\n```\n\n**Check configuration:**\n```bash\ncurl http:\u002F\u002Flocalhost:9090\u002Fapi\u002Fv1\u002Fstatus\u002Fconfig\n```\n\n**Test query:**\n```bash\ncurl 'http:\u002F\u002Flocalhost:9090\u002Fapi\u002Fv1\u002Fquery?query=up'\n```\n\n## Reference Files\n\n- `assets\u002Fprometheus.yml.template` - Complete configuration template\n- `references\u002Fscrape-configs.md` - Scrape configuration patterns\n- `references\u002Frecording-rules.md` - Recording rule examples\n- `scripts\u002Fvalidate-prometheus.sh` - Validation script\n\n## Related Skills\n\n- `grafana-dashboards` - For visualization\n- `slo-implementation` - For SLO monitoring\n- `distributed-tracing` - For request tracing\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Frmyndharis\u002Fantigravity-skills\u002Fprometheus-configuration",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill prometheus-configuration",{"tool":45,"command":46},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill prometheus-configuration",{"tool":48,"command":49},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill prometheus-configuration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Frmyndharis\u002Fantigravity-skills\u002Fprometheus-configuration\u002FSKILL.md",true,[],[54,66,76,85,91,98],{"skillNo":55,"name":56,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":62,"publishedAt":26},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[59],{"categoryNo":60,"categoryName":61,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[63,64,65],"model","model hierarchy","model hierarchy skill",{"skillNo":67,"name":68,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":72,"publishedAt":26},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[71],{"categoryNo":60,"categoryName":61,"taxonomyType":20,"taxonomyTypeDesc":21},[73,74,75],"MCP","zoom","zoom mcp",{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":26},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[82,83,84,74],"sdk","zoom apps sdk","apps",{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":26},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[87],{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":97,"publishedAt":26},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[96],{"categoryNo":60,"categoryName":61,"taxonomyType":20,"taxonomyTypeDesc":21},[93],{"skillNo":99,"name":100,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":26},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[100]]