Datadog · التتبع الموزع

التتبع الموزع: كيف ترون الطلب الواحد عبر خدماتكم المصغّرة، وما الذي تحتفظون به

التتبع الموزع (distributed tracing) يتبع الطلب الواحد وهو يمر بكل خدمة وقائمة انتظار وقاعدة بيانات وواجهة خارجية تعالجه، ويُظهر أين ذهب الوقت ومن أين بدأ الخطأ. وفي بيئة الخدمات المصغّرة يكون غالبًا الطريقة الوحيدة لمعرفة أي خدمة أبطأت الطلب. يشرح هذا الدليل كيف يعمل التتبع، ولماذا يحدد أخذ العيّنات الكلفة والفائدة معًا، وكيف يقارَن OpenTelemetry بـ Datadog Agent، وما يعنيه ذلك للفرق في السعودية.

الملخص

نظرة سريعة

خلاصة الصفحة في جدول واحد، قبل التفاصيل.

ما هو
سجل للطلب الواحد عبر الخدمات، يتكوّن من خطوات موقوتة تُسمّى spans تشترك في هوية تتبّع واحدة
عمّ يجيب
أين ذهب الوقت، ومن أين بدأ الخطأ، وأي خدمة تابعة انتظرها الطلب
ما الذي يجعله يعمل
أن تمرّر كل خدمة سياق التتبع في استدعاءاتها ورسائلها الصادرة
ما الذي يحدد الكلفة
عدد الـ spans المرسَلة، وعدد ما يُفهرس منها ويُحتفظ به
كيف يُجمع
حزم Datadog البرمجية أو Single Step Instrumentation، أو OpenTelemetry، إلى Datadog APM
الجانب السعودي
قد تحمل الـ spans بيانات شخصية، وحتى نوفمبر 2026 لا يوجد موقع لـ Datadog في الشرق الأوسط

المشكلة بكلمات بسيطة

  • الوضع المعتاد: رحلة عميل بطيئة أو متعطلة، ولوحة كل فريق تبدو طبيعية، ولا يستطيع أحد أن يقول أي الخدمات العشرين هي السبب.
  • ما يضيفه التتبع: سجل واحد لكل طلب، فيه خطوة موقوتة لكل خدمة مرّ بها، تجمعها هوية تتبّع (trace ID) مشتركة.
  • القرار الحقيقي: ليس هل نتتبّع، بل أي التتبّعات نحتفظ بها. فالاحتفاظ بكل شيء مكلف، والاحتفاظ بالقليل يُضيّع الأخطاء التي تحتاجونها.
  • المعايير: يستطيع OpenTelemetry وDatadog Agent كلاهما جمع التتبّعات لـ Datadog، والاختيار يؤثر في المزايا والإخفاء وأخذ العيّنات، لا في منطق تطبيقاتكم.

ما التتبع الموزع: طلب واحد عبر الخدمات المصغّرة

حين يصل طلب، تبدأ أول خدمة تستقبله تتبّعًا وتمنحه هوية. ثم تصبح كل وحدة عمل على الطريق span: معالج HTTP، أو استعلام على قاعدة البيانات، أو استدعاء لمزوّد الدفع، أو رسالة توضع في قائمة انتظار. والـ span خطوة لها اسم ووقت بدء ومدة وحالة وبعض الخصائص، ويسجّل كل span أي span استدعاه، فتُرسم المجموعة كاملة شجرةً أو مخطط لهب (flame graph) يُظهر ما جرى بالتتابع وما جرى بالتوازي.

اقرأ المزيد

والجزء الذي يسهل الخطأ فيه هو تمرير السياق (context propagation). فلا يبقى التتبع كاملًا إلا إذا قرأت كل خدمة سياق التتبع من الطلب الوارد وكتبته في كل استدعاء صادر. وفي HTTP يكون ذلك ترويسة (header)، ويستخدم معيار W3C Trace Context ترويسة اسمها traceparent. أما في قوائم الانتظار فيجب أن ينتقل السياق في ترويسات الرسالة. وتوثّق Datadog أن حزمها البرمجية تقرأ وتكتب افتراضيًا ترويسات Datadog نفسها، وW3C Trace Context، وbaggage. فإذا استخدمت خدمة واحدة في السلسلة صيغة مختلفة، أو أسقط عميل قائمة الانتظار الترويسات، انقسم التتبع قطعًا منفصلة، وضاعت الرؤية عبر الخدمات في الموضع الذي تحتاجونها فيه.

ولا يحل التتبع محل المقاييس أو السجلات. فالمقاييس تخبركم أن نسبة الأخطاء ارتفعت، والتتبع يخبركم أي طلب فشل وأين، وأسطر السجل المكتوبة أثناء ذلك الطلب تخبركم بما قاله الكود. وحين تربطها الوسوم نفسها، تنقل الثلاثة المهندسَ من التنبيه إلى السبب دون تخمين.

تتبّع الخدمات المصغّرة: ما الذي يسجّله التتبع الواحد

طلب دفع في بيئة معتادة كما يُظهره تتبّع واحد. كل مربع span، وهوية التتبع تجمعها.

  1. تطبيق الجوال أو المتصفح

    يبدأ الطلب، وتُنشأ هوية التتبع أو تُمرَّر

  2. بوابة API

    أول span على جهة الخادم

  3. الخدمات التي يستدعيها الطلب

    خدمة الطلبات خدمة التسعير خدمة الدفع
  4. الخدمات التابعة

    استعلام قاعدة البيانات واجهة الدفع الخارجية رسالة إلى قائمة انتظار
  5. Datadog APM

    تتبّع واحد، وكل الـ spans، بأزمنتها وأخطائها

ينتقل سياق التتبع مع الطلب، في استدعاءات HTTP ورسائل قوائم الانتظار على السواء.

لماذا يهم التتبع الفرق في السعودية

تدير البنوك والجهات الحكومية وشركات التجزئة في المملكة رحلات عملائها عبر تطبيقات تستدعي خدمات كثيرة: التحقق من الهوية، وبوابات الدفع، والأنظمة الأساسية. وحين تبطؤ خطوة منها، يرى العميل تطبيقًا بطيئًا واحدًا، ودون تتبّع يقول كل فريق إن جزءه سليم.

وهناك سؤالان محليان. الأول إقامة البيانات: فخصائص الـ span قد تحوي عناوين URL وجمل SQL ورسائل خطأ تحمل رقم هوية وطنية أو إقامة أو جوال. وDatadog منصة SaaS، وحتى نوفمبر 2026 لا يقع أي من مواقعها في الشرق الأوسط، لذا يجب إبقاء البيانات الشخصية خارج الـ spans أو إخفاؤها داخل شبكتكم قبل الإرسال. ويعرض دليل إقامة بيانات Datadog الخيارات. والثاني الملكية: فالتتبع يعبر حدود الفرق، ولا بد أن يتولى أحد معيار الوسوم وسياسة أخذ العيّنات للبيئة كلها، لا لخدمة واحدة.

ونحن في إنتركي نعمل من الرياض، ويتابع مهندسون يتحدثون العربية مشروع التتبع معكم حتى الدعم بعد الإطلاق، ونبدأ بسؤال إقامة البيانات.

تتبّع OpenTelemetry مقابل Datadog Agent: الخيارات وما يقابل كلًّا منها

تستقبل Datadog التتبّعات من حزمها البرمجية ومن OpenTelemetry. والمسار يحدد أين تجري المعالجة، لا ما يفعله كود أعمالكم.

طرق جمع التتبّعات الموزعة لـ Datadog وما يقابل كل طريقة
الخياركيف يعمليناسبانتبهوا إلى
حزم Datadog البرمجية، أو Single Step Instrumentationمكتبات التتبع من Datadog في كل خدمة ترسل الـ spans إلى Datadog Agent على الخادم أو العقدةالبيئات التي تكون فيها Datadog الوجهة الوحيدة والـ Agent يعمل أصلًاراجعوا قائمة التوافق لكل لغة وإطار عمل تستخدمونه
حزم OpenTelemetry إلى Datadog Agent مع DDOTتُصدر الخدمات بيانات OpenTelemetry، ويستقبلها الـ Agent مع Collector المدمج فيه من Datadog Distribution of OpenTelemetry ويمرّرهاالفرق التي تريد تجهيزًا محايدًا تجاه المورّدين مع المسار الذي توصي به Datadogتختلف مزايا Datadog المتاحة حسب الإعداد، فراجعوا جدول التوافق من Datadog
حزم OpenTelemetry إلى بوابة Collector تديرونهاطبقة Collector تشغّلونها تستقبل التتبّعات وتُخفي وتأخذ العيّنات وتصدّرالإخفاء المركزي، وأخذ العيّنات بعد اكتمال التتبع، أو أكثر من وجهةتتولون تشغيل الـ Collector وتوسيعه، ويحتاج أخذ العيّنات بعد الاكتمال إلى توجيه حسب هوية التتبع
استقبال OTLP المباشرترسل التطبيقات بيانات OpenTelemetry إلى Datadog مباشرةالمنصات بلا خوادم أو المُدارة حيث لا يمكن تشغيل شيء آخرلا إخفاء مركزي ولا أخذ عيّنات بعد الاكتمال قبل أن تغادر البيانات شبكتكم

ويمكن الجمع بين المسارات: الـ Agent على كل عقدة لبيانات الخوادم والحاويات، وبوابة Collector لتتبّعات التطبيقات من كل اللغات. ولا يتغير كود التطبيق بينها، لأن الخدمات المجهّزة بـ OpenTelemetry ترسل البيانات نفسها أيًّا كان المسار الذي يستقبلها. ونقارن المسارات بتوثيق Datadog في إرسال بيانات OpenTelemetry إلى Datadog، ونشرح المعيار نفسه في OpenTelemetry: ما الذي يوحّده وكيف تعتمدونه.

أخذ عيّنات التتبع: الاحتفاظ بما يهم بكلفة يمكن توقعها

قد تُنتج خدمة مزدحمة ملايين الـ spans في الساعة، وأكثرها يصف طلبات سريعة وناجحة تتشابه. وأخذ العيّنات يحدد أي التتبّعات يُحتفظ بها، وله طريقتان عامتان.

  • أخذ العيّنات عند البداية (head-based) يقرر في أول الطلب. وتوثّق Datadog أن قرار الإبقاء أو الإسقاط يُتخذ عند بدء الـ span الجذري، ثم يُمرَّر إلى الخدمات الأخرى عبر سياق الطلب، فيُحتفظ بالتتبع كاملًا أو يُسقط كاملًا. وبحسب الإعداد الافتراضي الذي تذكره Datadog، يضبط الـ Agent النسب نحو هدف عشرة تتبّعات في الثانية إجمالًا، ويلتقط مأخذ عيّنات مستقل للأخطاء ما يصل إلى عشرة تتبّعات في الثانية لكل Agent فيها أخطاء.
  • أخذ العيّنات بعد الاكتمال (tail-based) يقرر بعد انتهاء التتبع، فيستطيع الإبقاء على كل تتبّع انتهى بخطأ أو كان بطيئًا. ويحتاج إلى وصول كل spans التتبع الواحد إلى نسخة Collector واحدة، أي طبقة موازنة حمل توجّه حسب هوية التتبع، ونسخ Collector بذاكرة تكفي لحفظ التتبّعات حتى تكتمل.

ويجب ألا يشوّه أخذ العيّنات مقاييس خدماتكم. فـ Datadog تحسب مقاييس الطلبات والأخطاء وزمن الاستجابة من كل التتبّعات قبل أخذ العيّنات. وإن كنتم تشغّلون Collector خاصًا بكم، فاحسبوها من كل الـ spans قبل خطوة أخذ العيّنات.

سياسة أولية لأخذ العيّنات حسب البيئة

هذه السياسة التي تبدأ منها إنتركي في تصميمها المرجعي القائم على OpenTelemetry، وتُضبط لكل خدمة بعد قياس الأحجام الفعلية.

سياسة إنتركي المرجعية لأخذ عيّنات التتبع الموزع حسب البيئة
البيئةعند البداية (في التطبيق)بعد الاكتمال (في الـ Collector)السبب
التطوير والاختبار100%متوقفرؤية كاملة أثناء تتبّع الأخطاء وإصلاحها
اختبار القبول وما قبل الإنتاج100%الأخطاء والتتبّعات البطيئة ونسبة أساسية 25%اختبار أداء واقعي
الإنتاج، حجم معتاد100%الأخطاء والتتبّعات البطيئة ونسبة أساسية بين 10% و20%كل عطل محفوظ، بكلفة يمكن توقعها
الإنتاج، حجم مرتفع جدًابين 25% و50%الأخطاء والتتبّعات البطيئة وبين 5% و10% من الباقيتخفيض على مرحلتين يناسب الحجم

وفي Datadog، ما ترسلونه منفصل عما تحتفظون به. فكل الـ spans المستقبَلة متاحة للبحث المباشر 15 دقيقة، والـ spans التي تختارها فلاتر الاحتفاظ تبقى متاحة للبحث 15 يومًا، ويحتفظ فلتر الاحتفاظ الذكي من Datadog بعيّنة متنوعة تميل إلى الأخطاء وزمن الاستجابة المرتفع مدة 30 يومًا. وتحدد ضوابط الاستقبال نسب أخذ العيّنات لكل خدمة ومورد. وتعرض صفحة Datadog APM جدول الاحتفاظ كاملًا.

ما الذي يحدد كلفة التتبع الموزع

تحتسب Datadog كلفة APM لكل مضيف APM شهريًا، ويشمل كل مضيف حصة 150 GB من الـ spans المستقبَلة ومليون span مفهرس في الشهر. لذا تتبع الفاتورة ثلاثة أمور بأيديكم: عدد الخوادم التي تعمل عليها خدمات متتبَّعة، وعدد الـ spans التي ترسلها، وعدد ما تفهرسه فلاتر الاحتفاظ. وأسهل ما يُحذف spans فحوص السلامة والجاهزية (health checks)، لأنها تكلّف ولا تجيب عن أي سؤال. وتجدون الأسعار وكيف تتجمع الوحدات في دليل أسعار Datadog، ونسعّر نحن بحسب بيئتكم لا من قائمة.

اقرأ المزيد

وعلى سبيل التقدير، تأخذ أول رحلة متتبَّعة عبر خدمات قليلة أسابيع، وتأخذ البيئة كلها وقتًا أطول. وما يحدد المدة: عدد اللغات، وعدد الخدمات التي تستخدم قوائم الانتظار، وهل الـ Agent أو الـ Collector يعمل أصلًا، وسرعة إضافة ملاك الخدمات لسياق التتبع حيث ينقص.

أدوات التتبع الموزع: قائمة تحقق قبل الاختيار

أسئلة تطرحونها على أي إعداد للتتبع، ومنه إعدادنا، قبل أن يصل إلى الإنتاج.

قائمة تحقق لتقييم أدوات التتبع الموزع وطرق إعداده
السؤاللماذا يهم
هل لكل لغة وإطار عمل تستخدمونه تجهيز مدعوم؟خدمة واحدة غير متتبَّعة في الوسط تقطع كل تتبّع يمر بها
أي صيغ التمرير يقرأ ويكتب؟اختلاف الصيغ بين الفرق يقسم التتبّعات قطعًا
هل يبقى سياق التتبع عبر قوائم الانتظار والمهام غير المتزامنة؟الخطوات القائمة على الرسائل هي أكثر ما ينقطع فيه التتبع
أين يجري أخذ العيّنات، وهل يحتفظ بكل خطأ؟أخذ العيّنات عند البداية وحده قد يُسقط الطلب الفاشل الذي تحتاجونه
هل تُحسب مقاييس الخدمات قبل أخذ العيّنات؟وإلا ظهرت أعداد الطلبات والأخطاء أقل من حقيقتها
أين يمكن إخفاء البيانات الشخصية قبل أن تغادر شبكتكم؟تحمل الـ spans عناوين URL وجمل SQL ورسائل خطأ
هل ترتبط التتبّعات بالسجلات وجلسات المستخدمين واستعلامات قاعدة البيانات؟التتبع وحده يُظهر أين، والبيانات المرتبطة تُظهر لماذا
على ماذا تعتمد الفاتورة، ومن يتابعها؟حجم الـ spans يكبر مع الحركة ومع كل خدمة جديدة

أين يناسب Datadog APM، وأين لا يناسب

يناسب Datadog APM حين تريدون التتبّعات على المنصة نفسها التي تضم مقاييس البنية التحتية والسجلات ومراقبة تجربة المستخدم الحقيقي ومراقبة قواعد البيانات، تربطها الوسوم نفسها env وservice وversion. فمن التتبع يفتح المهندس أسطر السجل لذلك الطلب، وجلسة المستخدم التي بدأته، واستعلام قاعدة البيانات الذي انتظره، ومع Continuous Profiler الدوال التي استهلكت المعالج.

اقرأ المزيد

وأين قد لا يناسب؟ إن كان يجب ألا تغادر البيانات الشخصية المملكة بأي صورة ولا يمكن إخفاؤها بثقة، فمنصة SaaS بلا موقع في الشرق الأوسط قيد صريح، وهذا الحديث يسبق اختيار أي أداة. وإن كانت بيئتكم تطبيقًا واحدًا كبيرًا بقاعدة بيانات واحدة، فما يضيفه التتبع أقل مما تضيفه السجلات الجيدة ومراقبة قاعدة البيانات. وإن احتجتم إلى التتبّعات نفسها في عدة وجهات، فخطّطوا لبوابة OpenTelemetry Collector بدل الاعتماد على Agent مورّد واحد. وسنقول لكم أي ذلك ينطبق عليكم.

كيف تدير إنتركي مشروع التتبع

  1. اختيار رحلة واحدة.

    رحلة عميل تلاحظ الإدارة بطأها خلال دقائق، والخدمات التي تقف خلفها.

  2. الاتفاق على المعيار.

    أسماء الخدمات والبيئات والإصدارات، وصيغة تمرير واحدة لكل الفرق.

  3. اختيار المسار.

    حزم Datadog البرمجية، أو الـ Agent مع DDOT، أو بوابة Collector، أو مزيج منها، لكل خدمة.

  4. إخفاء البيانات الشخصية.

    قواعد إخفاء تُكتب وتُختبر على الصيغ السعودية قبل تتبّع حركة الإنتاج.

  5. ضبط أخذ العيّنات والاحتفاظ.

    سياسة لكل بيئة، محسوبة على حصص الـ spans، مع الاحتفاظ بكل خطأ.

  6. إثبات تتبّع كامل.

    طلب واحد ظاهر عبر اللغات وقوائم الانتظار، مرتبط بسجلاته.

  7. التشغيل أو التسليم.

    إنتركي شريك رسمي لـ Datadog في السعودية، تبيع التراخيص وتطبّقها وتدعمها من الرياض، أو تسلّم لفريقكم مع التوثيق.

أسئلة يطرحها المشترون عن التتبع الموزع

ما الفرق بين التتبع الموزع ومراقبة أداء التطبيقات APM؟

التتبع الموزع سجل الطلب الواحد عبر الخدمات. أما APM فالمنتج الأوسع المبني عليه: مقاييس زمن الاستجابة والأخطاء والطلبات لكل خدمة، والمقارنة بين الإصدارات، وتحليل الأداء، والربط بالسجلات. وفي Datadog يكون التتبع أساس APM.

لماذا ينقسم التتبع لدينا قطعًا منفصلة بين الخدمات؟

غالبًا لأن سياق التتبع لا يُمرَّر. فخدمة تستخدم صيغة تمرير مختلفة، أو عميل قائمة انتظار يُسقط ترويسات الرسالة. استخدموا صيغة واحدة بين الفرق، وافحصوا كل مرحلة غير متزامنة.

هل نجهّز خدماتنا بـ OpenTelemetry أم بحزم Datadog البرمجية؟

كلاهما يرسل التتبّعات إلى Datadog. وحزم Datadog أبسط مسار حيث يعمل الـ Agent أصلًا، أما OpenTelemetry فيُبقي التجهيز محايدًا تجاه المورّدين، ويتيح بوابة Collector للإخفاء المركزي وأخذ العيّنات بعد الاكتمال. ونتفق على المسار لكل خدمة قبل البدء.

هل يجعلنا أخذ العيّنات نفقد الأخطاء التي نحتاج إلى تحليلها؟

لا، إن صُمّم لذلك. احتفظوا بكل خطأ وكل تتبّع بطيء عبر مأخذ عيّنات الأخطاء أو أخذ العيّنات بعد الاكتمال، وخذوا عيّنة من الطلبات السليمة، واحسبوا مقاييس الخدمات قبل أخذ العيّنات لتبقى الأعداد دقيقة.

هل يمكن أن تبقى بيانات التتبع داخل السعودية؟

تُخزَّن التتبّعات المرسلة إلى Datadog في موقع Datadog لديكم، وحتى نوفمبر 2026 لا يوجد موقع منها في الشرق الأوسط. أبقوا البيانات الشخصية خارج خصائص الـ spans، أو أخفوها في Collector داخل شبكتكم قبل الإرسال.

كم يستغرق تتبّع خدماتنا المصغّرة من أولها إلى آخرها، وما كلفته؟

أول رحلة عبر خدمات قليلة تأخذ أسابيع، والبيئة كلها تأخذ أطول، بحسب اللغات وقوائم الانتظار والـ Agents الموجودة. وتتبع الكلفة عدد مضيفات APM وحجم الـ spans. وتقدّم إنتركي التراخيص والإعداد والدعم من الرياض في عرض واحد.

الخطوة التالية

خطّطوا للتتبع الموزع في خدماتكم

أخبرونا بالرحلة التي تريدون رؤيتها من أولها إلى آخرها، واللغات والمنصات التي تقف خلفها، وهل يعمل Datadog أو OpenTelemetry لديكم. ونرد عليكم بمسار للتتبع، وسياسة لأخذ العيّنات، ونطاق أولي.

خانة إلزامية

بإرسالك هذا النموذج، فأنت توافق على سياسة الخصوصية.

أو مباشرةً

+966-11-2180999 [email protected]

أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية

أو كيف يعمل أخذ العيّنات

نشرته إنتركي. آخر تحديث . إنتركي مسجلة في الرياض بالسجل التجاري رقم 1010156897.