Foundationপ্রথম নীতি থেকে
LEVEL 12 · Virtualization, Containers & Cloud

Metric Cardinality

মেট্রিক কার্ডিনালিটি

একটা metric-এর label set যতগুলো distinct value-combination নিতে পারে তার সংখ্যা — প্রতিটা combination Prometheus-এ একটা আলাদা time series।

also: cardinality explosion, label cardinality, high-cardinality label

metric_name{label1=v1, label2=v2, ...} -- এক combination = এক time series
cardinality = |values(label1)| x |values(label2)| x ...
  • বিপদ metric-সংখ্যায় না, একটা label-এর distinct value-সংখ্যায় — pod_name-এর মতো unbounded label একাই কয়েক লক্ষ series তৈরি করতে পারে
  • Kubernetes-এ Pod disposable (নতুন rolling deploy/autoscale মানেই নতুন নাম) — তাই raw pod_name label-এ রাখলে সময়ের সাথে cardinality কার্যত unbounded
  • নিরাপদ বিকল্প: deployment_name/namespace-এর মতো স্থিতিশীল identity — সমষ্টিগত health-এর জন্য যথেষ্ট, series-বিস্ফোরণ ছাড়াই
  • Prometheus-এর sample_limit আর backend-এর cardinality-analysis টুল (যেমন Mimir) deploy-এর আগেই এই সমস্যা ধরতে সাহায্য করে