تكرار السؤال: …
الإجابة المختصرة
فئة Activity هي التمثيل المدمج لـ Span في .NET؛ وتجمع OpenTelemetry مسارات الطلبات عبر الخدمات وتمرر ترويسة traceparent القياسية بين الخوادم.
الشرح
تتمتع .NET بدعم استثنائي أصيل للـ Tracing عبر System.Diagnostics.ActivitySource. عند تفعيل OpenTelemetry SDK، يتم تتبع مسار كل طلب HTTP، واستعلام SQL في EF Core، ورسالة في MassTransit تلقائياً، وتمرير معرف الـ TraceId عبر ترويسات W3C Trace Context، لتظهر الرحلة الكاملة للطلب كمخطط زمني شامل على لوحات Jaeger و Aspire Dashboard.
مثال بالكود
builder.Services.AddOpenTelemetry()
.WithTracing(tracing => tracing
.AddAspNetCoreInstrumentation()
.AddHttpClientInstrumentation()
.AddEntityFrameworkCoreInstrumentation()
.AddOtlpExporter());أخطاء شائعة
- عدم تتبع ونقل ترويسات الـ Tracing داخل خيوط المهام الخلفية أو قنوات الـ Channels.
أسئلة متابعة
- ما هو .NET Aspire وكيف يسهل بناء ومراقبة التطبيقات السحابية الموزعة (Cloud-Native)؟
- ما هي مشكلة الإرسال المزدوج (Dual-Write) وكيف يحلها نمط صندوق الصادر (Transactional Outbox) بـ MassTransit؟