{"id":"7397f793-179c-4405-a9c6-69b193ada060","shortId":"bUwXGh","kind":"skill","title":"prometheus-configuration","tagline":"Complete guide to Prometheus setup, metric collection, scrape configuration, and recording rules.","description":"# 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/implementation-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       │ /metrics endpoint\n       ↓\n┌──────────────┐\n│  Prometheus  │ ← Scrapes metrics periodically\n│    Server    │\n└──────┬───────┘\n       │\n       ├─→ AlertManager (alerts)\n       ├─→ Grafana (visualization)\n       └─→ Long-term storage (Thanos/Cortex)\n```\n\n## Installation\n\n### Kubernetes with Helm\n\n```bash\nhelm repo add prometheus-community https://prometheus-community.github.io/helm-charts\nhelm repo update\n\nhelm install prometheus prometheus-community/kube-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/prometheus:latest\n    ports:\n      - \"9090:9090\"\n    volumes:\n      - ./prometheus.yml:/etc/prometheus/prometheus.yml\n      - prometheus-data:/prometheus\n    command:\n      - '--config.file=/etc/prometheus/prometheus.yml'\n      - '--storage.tsdb.path=/prometheus'\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  - /etc/prometheus/rules/*.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: '/metrics'\n    scheme: 'https'\n    tls_config:\n      ca_file: /etc/prometheus/ca.crt\n      cert_file: /etc/prometheus/client.crt\n      key_file: /etc/prometheus/client.key\n```\n\n**Reference:** See `assets/prometheus.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        - /etc/prometheus/targets/*.json\n        - /etc/prometheus/targets/*.yml\n        refresh_interval: 5m\n```\n\n**targets/production.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/scrape-configs.md`\n\n## Recording Rules\n\nCreate pre-computed metrics for frequently queried expressions:\n\n```yaml\n# /etc/prometheus/rules/recording_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 / 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 / node_memory_MemTotal_bytes) * 100)\n\n      # Disk usage percentage\n      - record: instance:node_disk:utilization\n        expr: |\n          100 - ((node_filesystem_avail_bytes / node_filesystem_size_bytes) * 100)\n```\n\n**Reference:** See `references/recording-rules.md`\n\n## Alert Rules\n\n```yaml\n# /etc/prometheus/rules/alert_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 /etc/prometheus/rules/*.yml\n\n# Test query\npromtool query instant http://localhost:9090 'up'\n```\n\n**Reference:** See `scripts/validate-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/Cortex** for long-term storage\n10. **Document custom metrics**\n\n## Troubleshooting\n\n**Check scrape targets:**\n```bash\ncurl http://localhost:9090/api/v1/targets\n```\n\n**Check configuration:**\n```bash\ncurl http://localhost:9090/api/v1/status/config\n```\n\n**Test query:**\n```bash\ncurl 'http://localhost:9090/api/v1/query?query=up'\n```\n\n## Reference Files\n\n- `assets/prometheus.yml.template` - Complete configuration template\n- `references/scrape-configs.md` - Scrape configuration patterns\n- `references/recording-rules.md` - Recording rule examples\n- `scripts/validate-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\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["prometheus","configuration","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-prometheus-configuration","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/prometheus-configuration","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34616 github stars · SKILL.md body (10,568 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T00:51:26.161Z","embedding":null,"createdAt":"2026-04-18T21:42:54.738Z","updatedAt":"2026-04-23T00:51:26.161Z","lastSeenAt":"2026-04-23T00:51:26.161Z","tsv":"'-60':917 '-9':278 '/etc/prometheus/ca.crt':389 '/etc/prometheus/client.crt':392 '/etc/prometheus/client.key':395 '/etc/prometheus/prometheus.yml':186,193 '/etc/prometheus/rules':236,887 '/etc/prometheus/rules/alert_rules.yml':700 '/etc/prometheus/rules/recording_rules.yml':540 '/etc/prometheus/targets':443,445 '/helm-charts':149 '/kube-prometheus-stack':159 '/metrics':120,382 '/prometheus':190,195 '/prometheus.yml':185 '0':277,715 '0.95':616 '1':280,342,735,774,902 '10':965 '100':604,643,655,665,674,684,693 '15':916 '15s':209,212,546 '1m':717,797 '1s':793 '2':221,343,425,911 '3':920 '3.8':175 '30d':167,197 '30s':632,705 '4':927 '5':585,746,765,934 '50gi':170 '5m':449,566,586,627,654,748,776,808,833,858 '6':941 '7':947 '8':951 '80':806 '85':831 '9':957 '90':856 '9090':182,183,251,454,456,895 '9090/api/v1/query':988 '9090/api/v1/status/config':982 '9090/api/v1/targets':976 '9093':230 '9100':263,265,267,415,417 'action':68,306,319,336,352,363,489,502,518 'add':143 'address':272,328,346 'alert':86,108,128,224,697,707,737,766,799,824,849 'alertmanag':127,222,225,229 'annot':284,302,315,332,485,498,514,721,752,780,812,837,862 'api':461,543 'app':374,714 'app1':453 'app1.example.com:9090':378 'app2':455 'app2.example.com:9090':379 'appli':60 'applic':92,115,368 'appropri':913 'architectur':114 'ask':1060 'assets/prometheus.yml.template':398,993 'avail':687,703,930 'avg':644 'base':428,937 'bash':140,875,973,979,985 'best':62,900 'boundari':1068 'bucket':626 'byte':669,673,688,692 'ca':387 'capac':940 'cert':390 'check':879,885,970,977 'clarif':1062 'clarifi':54 'cleanup':946 'clear':1035 'client':118 'cluster':215 'collect':10,24,85 'command':191 'communiti':146,158 'complet':4,18,994 'compos':172 'comprehens':83 'comput':533 'config':227,241,248,260,269,292,296,376,386,405,412,433,441,467,475,479,880 'config.file':192 'configur':3,12,17,26,42,80,101,202,223,239,400,877,935,978,995,999 'consist':904 'constraint':56 'cpu':634,640,649,804,815,820 'creat':104,163,530 'create-namespac':162 'criteria':1071 'critic':720,861 'curl':974,980,986 'custom':967 'd':339,340 'dashboard':1012 'data':189,201 'deploy':956 'describ':1039 'descript':727,759,786,819,844,869 'design':107 'detail':73 'differ':46 'discoveri':112,430,464 'disk':675,681,854,865,870 'diskspacelow':850 'distribut':1022 'distributed-trac':1021 'docker':171 'document':966 'domain':47 'durat':611,624,772 'endpoint':121 'env':419,458 'environ':1051 'environment-specif':1050 'error':567,574,591,598,743,755,760 'evalu':210 'exampl':74,1004 'expens':925 'expert':1056 'export':253,258 'expr':558,576,594,613,642,664,683,709,739,768,801,826,851 'express':538 'extern':213 'feder':953 'file':203,233,235,388,391,394,427,437,439,442,992 'file-bas':426 'file-sd':436 'filesystem':686,690 'frequent':536 'global':206 'goal':55 'grafana':129,1011 'grafana-dashboard':1010 'group':541,701 'guid':5,19 'helm':139,141,150,153 'high':754,782,814,839,929 'highcpuusag':800 'higherrorr':738 'highlat':767 'highmemoryusag':825 'histogram':614 'host1':414 'host2':416 'http':548,555,563,572,581,589,596,601,609,622,741,770 'https':384,508 'idl':653 'imag':178 'implement':110,928,952,1017 'infrastructur':90 'input':59,1065 'instal':136,154 'instanc':275,638,646,660,679,802,827,852,933 'instant':893 'instruct':53 'instrument':116 'interv':208,211,448,545,631,704,796,915 'io':304,317,334,487,500,516 'job':244,254,285,370,406,434,468,554,561,571,579,588,595,600,608,619,711,740,769 'json':444,451 'keep':307,490 'key':393 'kubernet':137,281,288,290,300,313,330,350,360,462,471,473,483,496,512 'kubernetes-pod':287 'kubernetes-servic':470 'label':214,271,274,298,311,322,327,345,348,355,358,366,418,457,481,494,505,510,521,718,749,777,809,834,859 'labels.instance':724,818,843,868 'labels.job':728,758,785 'larg':955 'latenc':606,783,788 'latest':180 'le':620 'librari':119 'limit':1027 'load':231 'localhost':250,894,975,981,987 'long':132,962 'long-term':131,961 'low':864 'match':1036 'memavail':668 'memori':656,662,667,671,829,840,845 'memtot':672 'meta':299,312,329,349,359,482,495,511 'metric':9,23,84,102,124,323,369,380,522,534,544,630,907,945,968 'minut':736 'miss':1073 'mode':652 'monitor':88,100,161,948,1020 'multipl':931 'my-app':372,712 'name':245,255,286,362,371,407,435,469,542,628,702,794,905,909 'namespac':160,164,351,356 'need':44 'node':252,257,639,648,661,666,670,680,685,689,803,828,853 'node-export':256 'node1':262 'node2':264 'node3':266 'open':77 'outcom':66 'output':1045 'outsid':50 'p95':605,612,773,787 'path':318,324,381,517,523 'pattern':1000 'per':551 'percentag':569,593,636,658,677,745 'period':125 'permiss':1066 'pod':282,289,294,301,314,331,361,367 'port':181,335 'practic':63,901 'pre':532 'pre-comput':531 'prefix':908 'product':216,420,459 'prom/prometheus':179 'prometheus':2,7,16,21,41,81,99,113,122,145,155,157,177,188,200,242,246,303,316,333,486,499,515,932,949 'prometheus-commun':144,156 'prometheus-community.github.io':148 'prometheus-community.github.io/helm-charts':147 'prometheus-configur':1 'prometheus-data':187,199 'prometheus.prometheusspec.retention':166 'prometheus.prometheusspec.storagevolumesize':169 'prometheus.yml':204,881 'promtool':878,884,891 'provid':67 'purpos':79 'quantil':615 'queri':537,890,892,926,984,989 'rate':550,562,568,580,592,621,647,744,756,761 'rate5m':557,575,599,603 'record':14,28,105,528,553,570,587,607,637,659,678,922,1002 'refer':396,525,694,897,991 'references/recording-rules.md':696,1001 'references/scrape-configs.md':527,997 'refresh':447 'regex':276,308,325,338,491,507,524 'region':217,421 'relabel':268,295,478,943 'relat':1008 'relev':61 'replac':279,320,337,341,353,364,503,519 'repo':142,151 'request':549,556,564,573,582,590,597,602,610,623,742,771,1025 'requir':58,76,1064 'resourc':629,795 'resources/implementation-playbook.md':78 'retent':936 'review':1057 'role':293,476 'rule':15,29,106,109,232,234,529,547,633,698,706,798,883,886,923,1003 'safeti':1067 'scheme':383,501,506 'scope':52,1038 'scrape':11,25,103,123,207,238,240,305,399,404,432,466,488,914,971,998 'script':1007 'scripts/validate-prometheus.sh':899,1005 'sd':291,438,440,474 'second':625,650 'see':397,526,695,898 'server':126 'servic':111,176,429,460,463,472,477,484,497,513,552,723 'servicedown':708 'set':97,165,168,912 'setup':8,22 'sever':719,750,778,810,835,860 'size':691 'skill':34,95,1009,1030 'skill-prometheus-configuration' 'slo':1016,1019 'slo-implement':1015 'sourc':270,297,310,326,347,357,480,493,509 'source-sickn33' 'space':866 'specif':1052 'static':226,247,259,375,401,409,411 'static-target':408 'status':584 'step':69 'stop':1058 'storag':134,939,964 'storage.tsdb.path':194 'storage.tsdb.retention.time':196 'substitut':1048 'success':1070 'sum':559,577,617 'summari':722,753,781,813,838,863 'target':228,249,261,273,321,344,354,365,377,402,410,413,452,504,520,972 'targets/production.json':450 'task':37,1034 'templat':996 'term':133,963 'test':889,983,1054 'thanos/cortex':135,959 'threshold':764,792 'tls':385 'tool':49 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':565,583,651 'trace':1023,1026 'treat':1043 'troubleshoot':969 'true':309,492 'typic':919 'unit':910 'unrel':39 'updat':152 'us':219,423 'us-west':218,422 'usag':676,816,821,841,846,871 'use':32,93,903,921,942,958,1028 'util':635,641,657,663,682,805,830,855 'valid':65,874,876,882,1006,1053 'valu':763,790,823,848,873 'verif':71 'version':174 'visual':130,1014 'volum':184,198 'warn':751,779,811,836 'west':220,424 'yaml':173,205,403,431,465,539,699 'yml':237,446,888","prices":[{"id":"60069a31-f32f-4ce8-8861-b104743a528d","listingId":"7397f793-179c-4405-a9c6-69b193ada060","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:42:54.738Z"}],"sources":[{"listingId":"7397f793-179c-4405-a9c6-69b193ada060","source":"github","sourceId":"sickn33/antigravity-awesome-skills/prometheus-configuration","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/prometheus-configuration","isPrimary":false,"firstSeenAt":"2026-04-18T21:42:54.738Z","lastSeenAt":"2026-04-23T00:51:26.161Z"}],"details":{"listingId":"7397f793-179c-4405-a9c6-69b193ada060","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"prometheus-configuration","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34616,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"2fd57dccdd08a48fc9e9154ee125bcfab70514c6","skill_md_path":"skills/prometheus-configuration/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/prometheus-configuration"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"prometheus-configuration","description":"Complete guide to Prometheus setup, metric collection, scrape configuration, and recording rules."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/prometheus-configuration"},"updatedAt":"2026-04-23T00:51:26.161Z"}}