[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-prometheus-optimize-high-cardinality":3,"mdc-y6pdit-key":35,"related-org-prometheus-optimize-high-cardinality":142,"related-repo-prometheus-optimize-high-cardinality":228},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"optimize-high-cardinality","reduce high-cardinality Prometheus metrics","Find and reduce high-cardinality metrics and labels. Use when series counts or memory grow, queries slow down, or tsdb_stats shows label explosions; pinpoints offending labels and proposes relabeling, dropping, and aggregation fixes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"prometheus","Prometheus (CNCF)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fprometheus.png",[12,16,18,21],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":8,"type":15},"Prometheus",{"name":19,"slug":20,"type":15},"Monitoring","monitoring",{"name":22,"slug":23,"type":15},"Metrics","metrics",65,"https:\u002F\u002Fgithub.com\u002Fprometheus\u002Fprometheus-mcp","2026-07-23T06:05:51.227756","Apache-2.0",18,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"MCP server for LLMs to interact with Prometheus","https:\u002F\u002Fgithub.com\u002Fprometheus\u002Fprometheus-mcp\u002Ftree\u002FHEAD\u002Fpkg\u002Fmcp\u002Fassets\u002Fskills\u002Foptimize-high-cardinality","---\nname: optimize-high-cardinality\ndescription: Find and reduce high-cardinality metrics and labels. Use when series counts or memory grow, queries slow down, or tsdb_stats shows label explosions; pinpoints offending labels and proposes relabeling, dropping, and aggregation fixes.\nlicense: Apache-2.0\ncompatibility: Requires the tools of a connected Prometheus MCP server\n---\n\n# Exploring, Identifying, and Optimizing High-Cardinality Metrics\n\nCardinality (the number of unique label combinations) drives Prometheus memory, storage, and query cost. Find the metrics and labels responsible for series explosions and propose fixes that keep the signal while shedding the cost.\n\n## Getting oriented\n\n- tsdb_stats is the primary instrument: seriesCountByMetricName ranks the biggest metrics, labelValueCountByLabelName exposes labels with huge value sets, and memoryInBytesByLabelName shows what they cost.\n- series and label_values let you inspect a suspect metric's actual label combinations and values.\n- targets_metadata shows which targets expose a metric, i.e. where a fix would need to be applied.\n- Prometheus's own TSDB metrics track cardinality live: range_query prometheus_tsdb_head_series for overall growth, rate(prometheus_tsdb_head_series_created_total[5m]) for churn, and topk(10, scrape_series_added) to attribute new series to the targets creating them.\n\n## Topics worth exploring\n\nTreat these as starting points and follow the biggest numbers:\n\n- Which label drives a metric's cardinality: compare per-label series counts, e.g. with query:\n  count by (path) (http_requests_total)\n  Repeat for other labels; the grouping that yields the most series is the driver.\n- Unbounded label value review: IDs, UUIDs, URL paths with embedded parameters, timestamps, etc. label_values on a suspect label makes these obvious.\n- Growth over time: range_query count(\u003Cmetric>) to see whether cardinality is stable, stepped (deploys), or unbounded (leaking labels).\n\n## Suggesting changes\n\nQuantify each proposal's impact (series before vs after) since advice depends on results of investigation, provide concrete metric_relabel_configs or recording rule YAML or suggested next actions.\n",{"data":36,"body":38},{"name":4,"description":6,"license":27,"compatibility":37},"Requires the tools of a connected Prometheus MCP server",{"type":39,"children":40},"root",[41,50,56,63,96,102,107,131,137],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"exploring-identifying-and-optimizing-high-cardinality-metrics",[47],{"type":48,"value":49},"text","Exploring, Identifying, and Optimizing High-Cardinality Metrics",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54],{"type":48,"value":55},"Cardinality (the number of unique label combinations) drives Prometheus memory, storage, and query cost. Find the metrics and labels responsible for series explosions and propose fixes that keep the signal while shedding the cost.",{"type":42,"tag":57,"props":58,"children":60},"h2",{"id":59},"getting-oriented",[61],{"type":48,"value":62},"Getting oriented",{"type":42,"tag":64,"props":65,"children":66},"ul",{},[67,73,78,83],{"type":42,"tag":68,"props":69,"children":70},"li",{},[71],{"type":48,"value":72},"tsdb_stats is the primary instrument: seriesCountByMetricName ranks the biggest metrics, labelValueCountByLabelName exposes labels with huge value sets, and memoryInBytesByLabelName shows what they cost.",{"type":42,"tag":68,"props":74,"children":75},{},[76],{"type":48,"value":77},"series and label_values let you inspect a suspect metric's actual label combinations and values.",{"type":42,"tag":68,"props":79,"children":80},{},[81],{"type":48,"value":82},"targets_metadata shows which targets expose a metric, i.e. where a fix would need to be applied.",{"type":42,"tag":68,"props":84,"children":85},{},[86,88,94],{"type":48,"value":87},"Prometheus's own TSDB metrics track cardinality live: range_query prometheus_tsdb_head_series for overall growth, rate(prometheus_tsdb_head_series_created_total",{"type":42,"tag":89,"props":90,"children":91},"span",{},[92],{"type":48,"value":93},"5m",{"type":48,"value":95},") for churn, and topk(10, scrape_series_added) to attribute new series to the targets creating them.",{"type":42,"tag":57,"props":97,"children":99},{"id":98},"topics-worth-exploring",[100],{"type":48,"value":101},"Topics worth exploring",{"type":42,"tag":51,"props":103,"children":104},{},[105],{"type":48,"value":106},"Treat these as starting points and follow the biggest numbers:",{"type":42,"tag":64,"props":108,"children":109},{},[110,115,120],{"type":42,"tag":68,"props":111,"children":112},{},[113],{"type":48,"value":114},"Which label drives a metric's cardinality: compare per-label series counts, e.g. with query:\ncount by (path) (http_requests_total)\nRepeat for other labels; the grouping that yields the most series is the driver.",{"type":42,"tag":68,"props":116,"children":117},{},[118],{"type":48,"value":119},"Unbounded label value review: IDs, UUIDs, URL paths with embedded parameters, timestamps, etc. label_values on a suspect label makes these obvious.",{"type":42,"tag":68,"props":121,"children":122},{},[123,125],{"type":48,"value":124},"Growth over time: range_query count(",{"type":42,"tag":126,"props":127,"children":128},"metric",{},[129],{"type":48,"value":130},") to see whether cardinality is stable, stepped (deploys), or unbounded (leaking labels).",{"type":42,"tag":57,"props":132,"children":134},{"id":133},"suggesting-changes",[135],{"type":48,"value":136},"Suggesting changes",{"type":42,"tag":51,"props":138,"children":139},{},[140],{"type":48,"value":141},"Quantify each proposal's impact (series before vs after) since advice depends on results of investigation, provide concrete metric_relabel_configs or recording rule YAML or suggested next actions.",{"items":143,"total":227},[144,159,170,185,192,203,214],{"slug":145,"name":145,"fn":146,"description":147,"org":148,"tags":149,"stars":24,"repoUrl":25,"updatedAt":158},"check-system-health","health-check Prometheus server and targets","Health-check the Prometheus server and its targets. Use for status, uptime, or is-monitoring-OK questions; reviews readiness, active alerts, target health, TSDB stats, and runtime info.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[150,151,154,157],{"name":19,"slug":20,"type":15},{"name":152,"slug":153,"type":15},"Observability","observability",{"name":155,"slug":156,"type":15},"Operations","operations",{"name":17,"slug":8,"type":15},"2026-07-23T06:05:55.322773",{"slug":160,"name":160,"fn":161,"description":162,"org":163,"tags":164,"stars":24,"repoUrl":25,"updatedAt":169},"find-top-resource-consumers","identify top resource consumers in Prometheus","Find the top CPU, memory, or disk consumers. Use for capacity reviews, noisy-neighbor hunts, and top-N questions about which jobs, pods, or instances use the most resources or drive TSDB growth; builds topk() queries over discovered metrics.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[165,166,167,168],{"name":19,"slug":20,"type":15},{"name":152,"slug":153,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":8,"type":15},"2026-07-23T06:05:56.351716",{"slug":171,"name":171,"fn":172,"description":173,"org":174,"tags":175,"stars":24,"repoUrl":25,"updatedAt":184},"investigate-error-rates","investigate elevated Prometheus error rates","Investigate elevated error rates and failing requests. Use when errors or 5xx\u002FgRPC failures spike, SLOs burn, or an error alert fires; quantifies error ratios with rate(), compares to baseline, and isolates affected jobs and instances.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[176,179,182,183],{"name":177,"slug":178,"type":15},"Alerting","alerting",{"name":180,"slug":181,"type":15},"Debugging","debugging",{"name":19,"slug":20,"type":15},{"name":17,"slug":8,"type":15},"2026-07-23T06:05:51.762762",{"slug":4,"name":4,"fn":5,"description":6,"org":186,"tags":187,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[188,189,190,191],{"name":22,"slug":23,"type":15},{"name":19,"slug":20,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":8,"type":15},{"slug":193,"name":193,"fn":194,"description":195,"org":196,"tags":197,"stars":24,"repoUrl":25,"updatedAt":202},"review-prometheus-rules","audit and improve Prometheus alerting rules","Audit and improve recording and alerting rules. Use when reviewing alert coverage or rule health, drafting new alerts or recording rules, investigating flapping or noisy alerts, or speeding up slow dashboards with pre-computed expressions; produces complete rule-group YAML.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[198,199,200,201],{"name":177,"slug":178,"type":15},{"name":19,"slug":20,"type":15},{"name":152,"slug":153,"type":15},{"name":17,"slug":8,"type":15},"2026-07-23T06:05:55.853937",{"slug":204,"name":204,"fn":205,"description":206,"org":207,"tags":208,"stars":24,"repoUrl":25,"updatedAt":213},"troubleshoot-missing-data","diagnose missing Prometheus metrics and gaps","Diagnose missing metrics, absent series, or scrape gaps. Use when queries unexpectedly return empty, a metric stopped reporting, a target is down or unscraped, or dashboards show no data; walks target health, metadata, and config checks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[209,210,211,212],{"name":180,"slug":181,"type":15},{"name":22,"slug":23,"type":15},{"name":19,"slug":20,"type":15},{"name":17,"slug":8,"type":15},"2026-07-23T06:05:52.251401",{"slug":215,"name":215,"fn":216,"description":217,"org":218,"tags":219,"stars":24,"repoUrl":25,"updatedAt":226},"tune-prometheus-config","tune Prometheus configuration and performance","Review and tune Prometheus configuration and performance. Use for scrape interval, retention, storage, relabeling, flag, and capacity questions, or when Prometheus itself is slow or resource-hungry; recommends concrete config changes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[220,223,224,225],{"name":221,"slug":222,"type":15},"Configuration","configuration",{"name":19,"slug":20,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":8,"type":15},"2026-07-23T06:05:50.729808",7,{"items":229,"total":227},[230,237,244,251,258,265,272],{"slug":145,"name":145,"fn":146,"description":147,"org":231,"tags":232,"stars":24,"repoUrl":25,"updatedAt":158},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[233,234,235,236],{"name":19,"slug":20,"type":15},{"name":152,"slug":153,"type":15},{"name":155,"slug":156,"type":15},{"name":17,"slug":8,"type":15},{"slug":160,"name":160,"fn":161,"description":162,"org":238,"tags":239,"stars":24,"repoUrl":25,"updatedAt":169},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[240,241,242,243],{"name":19,"slug":20,"type":15},{"name":152,"slug":153,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":8,"type":15},{"slug":171,"name":171,"fn":172,"description":173,"org":245,"tags":246,"stars":24,"repoUrl":25,"updatedAt":184},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[247,248,249,250],{"name":177,"slug":178,"type":15},{"name":180,"slug":181,"type":15},{"name":19,"slug":20,"type":15},{"name":17,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":252,"tags":253,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[254,255,256,257],{"name":22,"slug":23,"type":15},{"name":19,"slug":20,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":8,"type":15},{"slug":193,"name":193,"fn":194,"description":195,"org":259,"tags":260,"stars":24,"repoUrl":25,"updatedAt":202},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[261,262,263,264],{"name":177,"slug":178,"type":15},{"name":19,"slug":20,"type":15},{"name":152,"slug":153,"type":15},{"name":17,"slug":8,"type":15},{"slug":204,"name":204,"fn":205,"description":206,"org":266,"tags":267,"stars":24,"repoUrl":25,"updatedAt":213},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[268,269,270,271],{"name":180,"slug":181,"type":15},{"name":22,"slug":23,"type":15},{"name":19,"slug":20,"type":15},{"name":17,"slug":8,"type":15},{"slug":215,"name":215,"fn":216,"description":217,"org":273,"tags":274,"stars":24,"repoUrl":25,"updatedAt":226},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[275,276,277,278],{"name":221,"slug":222,"type":15},{"name":19,"slug":20,"type":15},{"name":13,"slug":14,"type":15},{"name":17,"slug":8,"type":15}]