جمع المقاييس
سجّلوا العدادات والمقاييس المدرّجة والمدرجات التكرارية
جمع المقاييس درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
لماذا المقاييس؟
المقاييس هي قياسات رقمية مجمعة بمرور الوقت. وهي تشغّل لوحات المعلومات والتنبيهات، مثل معدل الطلبات وعدد الأخطاء ووقت الاستجابة وعمق قائمة الانتظار. وخلافًا للسجلات، تظل منخفضة التكلفة عند الأحجام الكبيرة لأنها تُجمّع.
واجهة Meter البرمجية
يصدر .NET المقاييس من خلال System.Diagnostics.Metrics. وتنشئون Meter ثم تستخدمونه لإنشاء أدوات مثل العدادات والمدرجات التكرارية.
using System.Diagnostics.Metrics;
private static readonly Meter Meter = new("Checkout.Orders");Counters
إن Counter قيمة لا ترتفع إلا إلى الأعلى، وهو مناسب تمامًا لعدّ أحداث مثل الطلبات المقدّمة أو الأخطاء. وتستدعون Add لزيادته.
private static readonly Counter<long> OrdersPlaced =
Meter.CreateCounter<long>("orders.placed");
OrdersPlaced.Add(1);أبعاد Counter
أرفقوا وسومًا لتقسيم Counter حسب بُعد معيّن، مثل الحالة أو المنطقة، حتى تتمكنوا من التجميع والتصفية في النظام الخلفي.
OrdersPlaced.Add(1,
new KeyValuePair<string, object>("status", "completed"),
new KeyValuePair<string, object>("region", "eu"));Histograms
يسجّل Histogram توزيعًا للقيم، وهو مثالي لزمن الاستجابة أو أحجام البيانات. وتحسب الأنظمة الخلفية القيم المئينية (p50 وp95 وp99) من العينات المسجّلة.
private static readonly Histogram<double> OrderDuration =
Meter.CreateHistogram<double>("order.duration", "ms");
OrderDuration.Record(elapsedMs);UpDownCounters
يمكن لـ UpDownCounter أن يرتفع أو ينخفض، ولذلك يناسب قيمًا مثل الاتصالات النشطة أو العناصر الموجودة حاليًا في قائمة الانتظار.
private static readonly UpDownCounter<long> ActiveOrders =
Meter.CreateUpDownCounter<long>("orders.active");
ActiveOrders.Add(1); // started
ActiveOrders.Add(-1); // finishedالأدوات القابلة للملاحظة
تُقرأ أدوات Observable عند الطلب عبر دالة رد اتصال، وهي مناسبة للمقاييس اللحظية مثل الذاكرة الحالية أو حجم ذاكرة التخزين المؤقت، التي تُؤخذ عينتها بدلًا من زيادتها.
Meter.CreateObservableGauge("cache.size",
() => _cache.Count);تسجيل Meter
كما هي الحال مع التتبع، لا يجمع OTel إلا أدوات Meter التي تسجلونها. استخدموا AddMeter مع اسم Meter الخاص بكم.
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics => metrics
.AddMeter("Checkout.Orders"));المقاييس المضمّنة
توفّر حزم القياس مقاييس جاهزة لـ ASP.NET Core، مثل مدة الطلبات والطلبات النشطة، ولبيئة التشغيل، مثل GC ومجمّع مؤشرات الترابط، مما يمنحكم رؤى تشغيلية فورية.
metrics
.AddAspNetCoreInstrumentation()
.AddRuntimeInstrumentation();اختيار الأداة المناسبة
اختاروا الأداة وفق سلوك القيمة: عدّاد رتيب، وهو Counter؛ قيمة ترتفع وتنخفض، وهي UpDownCounter؛ توزيع، وهو Histogram؛ أو قيمة حالية مأخوذة من عينة، وهي Observable Gauge. ويجعل الاختيار الصحيح لوحات المعلومات والتنبيهات واضحة ومباشرة.
التحكم في التعددية
ينشئ كل تركيب فريد من الوسوم سلسلة زمنية منفصلة. وقد تؤدي الوسوم عالية التعددية، مثل معرّف المستخدم، إلى تضخم مساحة التخزين والتكلفة. استخدموا أبعادًا محدودة ومنخفضة التعددية، مثل الحالة أو المنطقة.
اختبار سريع
اختبروا جمع المقاييس.
مراجعة
تجمع المقاييس القياسات الرقمية بتكلفة منخفضة. تنشئ واجهة Meter أدوات القياس: Counter (رتيب)، وUpDownCounter (يرتفع وينخفض)، وHistogram (توزيعات لحساب القيم المئينية)، وأدوات Observable اللحظية (تُؤخذ عيناتها). وتضيف الوسوم أبعادًا، لكن انتبهوا إلى التعددية. سجّلوا أدوات Meter باستخدام AddMeter، وأضيفوا قياس ASP.NET Core وبيئة التشغيل المضمّنين للحصول على رؤى فورية.
الأسئلة الشائعة
هل درس «جمع المقاييس» مجاني؟
نعم — نص درس «جمع المقاييس» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «جمع المقاييس»؟
سجّلوا العدادات والمقاييس المدرّجة والمدرجات التكرارية تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «جمع المقاييس»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.