System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) · درس

تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات

تعلّم كيف تنشئ التسميات تعددية الأبعاد، ولماذا تتسبب التعددية العالية في تعطل أنظمة المقاييس، وكيف تصمم مخططات تسميات تظل سريعة واقتصادية.

الدرس 4 من 413 خطوة

تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات درس مجاني في System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

What Is Cardinality?

Cardinality is the number of unique time series produced by a metric. Each distinct combination of a metric name and its label values is a separate series.

  • http_requests_total{method="GET"} is one series
  • Adding status="200" multiplies the count

Labels Multiply

Cardinality grows by the product of the number of values per label. Three methods times five status codes times ten endpoints equals 150 series for one metric.

method: 3 values
status: 5 values
endpoint: 10 values
=> 3 * 5 * 10 = 150 series

Why High Cardinality Hurts

Each series consumes memory, disk, and index space. Unbounded labels can explode a single metric into millions of series, slowing queries and crashing collectors.

  • Memory pressure on the TSDB
  • Slow dashboards and alerts
  • Higher storage cost

The Classic Anti-Pattern

Putting unbounded values like user IDs, request IDs, or full URLs into labels is the most common mistake. These create one series per unique value.

http_requests_total{user_id="48213"}
http_requests_total{request_id="a9f...c1"}

Bounded vs Unbounded Labels

Good labels have a small, finite set of values.

  • Bounded: method, status_class, region
  • Unbounded: user_id, session_id, email

Keep unbounded data in logs or traces, not metric labels.

Normalize Before Labeling

Reduce cardinality by bucketing values. Replace exact status codes with classes and template dynamic path segments.

status=503  ->  status_class="5xx"
/users/48213 -> route="/users/:id"

Estimating Series Count

Before adding a label, estimate its impact. Multiply the existing series count by the number of new label values.

existing = 200 series
new label region: 4 values
=> 200 * 4 = 800 series

Aggregation Removes Detail

When you query, aggregations like sum by (status_class) collapse series. Design labels so the dimensions you aggregate by are exactly the ones you need.

sum by (status_class) (rate(http_requests_total[5m]))

Limits and Guardrails

Most TSDBs let you cap cardinality.

  • Prometheus: sample_limit per scrape
  • OpenTelemetry: cardinality limit on aggregations
  • Alert when series counts spike

Dropping Bad Labels

If a noisy label slips in, drop or relabel it at ingestion rather than storing it.

metric_relabel_configs:
  - source_labels: [user_id]
    action: labeldrop

A Healthy Label Set

Aim for a handful of bounded labels per metric. This example stays well under a few hundred series.

orders_total{region="eu", status_class="2xx", channel="web"}

Quick Check

Identify the riskiest label choice.

Recap

You learned that cardinality is the count of unique series, that labels multiply it, and that unbounded values like IDs must stay out of labels. Bucket and template values, estimate impact before adding labels, and enforce guardrails to keep metrics fast and cheap.

البدء مجانًا

تعلم System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
12
الدروس
48

الأسئلة الشائعة

هل درس «تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات» مجاني؟

نعم — نص درس «تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)، انتقل إلى CoddyKit PRO. تتضمن دورة System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) 4 دروس في المجموع.

ماذا ستتعلم في «تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات»؟

تعلّم كيف تنشئ التسميات تعددية الأبعاد، ولماذا تتسبب التعددية العالية في تعطل أنظمة المقاييس، وكيف تصمم مخططات تسميات تظل سريعة واقتصادية. تتمرن على System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)؟

لا تُشترط خبرة سابقة. System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) هذا؟

نعم. كل درس في System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. شرح أنواع المقاييس
  2. استراتيجيات جمع المقاييس
  3. تصوير المقاييس وإطلاق التنبيهات
  4. تعددية أبعاد المقاييس وأفضل ممارسات وضع التسميات
← العودة إلى System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)