Datadog · Continuous Profiler
التحليل المستمر لأداء الكود: الدالة التي تستهلك المعالج والذاكرة في بيئة الإنتاج
التحليل المستمر لأداء الكود يسجّل طوال الوقت، وفي بيئة الإنتاج نفسها، الدوال التي تستهلك المعالج، وتحجز الذاكرة، وتنتظر الأقفال، وترمي الاستثناءات. فإذا تباطأت خدمة أو ظلت ذاكرتها في ازدياد، تجدون الجواب مسجّلًا من قبل: دون إعادة تشغيل، ودون أداة تصحيح، ودون محاولة إعادة المشكلة في بيئة الاختبار. ويؤدي Datadog Continuous Profiler هذا العمل داخل مكتبة التتبع نفسها التي ترسل تتبعات APM. وتبيع إنتركي، الشريك الرسمي لـ Datadog، تراخيص Datadog في المملكة، وتفعّل التحليل لكل خدمة، وتقدّم الدعم الفني من الرياض.
الخلاصة
- ما الذي يجيب عنه: أي دالة وأي فئة وأي سطر استهلك المعالج أو الذاكرة أو الوقت، بالتقسيم الذي يوثّقه Datadog، في بيئة الإنتاج وعلى امتداد الوقت.
- كيف يعمل: يُفعَّل في مكتبة التتبع من Datadog التي تحمّلها خدماتكم أصلًا لـ APM، وترتبط نتائجه بالتتبعات.
- ما الذي تقدّمه إنتركي: التراخيص، والإعداد لكل خدمة، والمقارنة بين الإصدارات، وتقصّي مشكلات الذاكرة، ولوحات المتابعة، والدعم الفني. أما التتبع ومدد الاحتفاظ والفوترة فتشرحها صفحة Datadog APM.
روابط ذات صلةصفحة Datadog APM
نظرة سريعة: ما الذي يسجّله Datadog Continuous Profiler
يلخّص الجدول أنواع التحليل التي يوثّقها Datadog حتى 11 نوفمبر 2026. وبعضها يتوقف على إصدار بيئة التشغيل أو مكتبة التتبع، وقليل منها في مرحلة المعاينة (Preview)، فنراجعها مقابل أنظمتكم.
| نوع التحليل | ما الذي يُظهره | اللغات التي يُدرجها Datadog | السؤال الذي يجيب عنه |
|---|---|---|---|
| المعالج (CPU) | الوقت الذي تقضيه كل دالة وهي تعمل على المعالج | Java و.NET وPHP وPython وGo وRuby وNode.js وC وC++ وRust | أي كود يستهلك المعالج الذي ندفع ثمنه؟ |
| الوقت الفعلي (Wall time) | الوقت المنقضي في كل دالة، ومنه وقت الانتظار | Java و.NET وPHP وPython وRuby وNode.js | أين يقضي الطلب البطيء وقته؟ |
| حجز الذاكرة (Allocations) | عدد الكائنات وحجم الذاكرة التي تحجزها كل دالة | Java و.NET وPHP وPython وGo وRuby وC وC++ وRust، وNode.js في المعاينة | أي كود ينتج المخلّفات التي ينظّفها جامع المهملات؟ |
| الذاكرة المحجوزة حاليًا (Live heap) | الذاكرة التي ما زالت محجوزة، بحسب الكود الذي حجزها | Java و.NET وPython وGo وNode.js، وRuby في المعاينة | ما الذي يكبر باستمرار بين وقتين؟ |
| الأقفال (Lock) | وقت انتظار الأقفال أو الاحتفاظ بها | Java و.NET وPython وGo | أي الخيوط يعطّل بعضها بعضًا تحت الضغط؟ |
| الاستثناءات (Exceptions) | الاستثناءات المرمية، بحسب الكود الذي يرميها | Java و.NET وPHP | أي كود يرمي الأخطاء ويلتقطها في حلقة متكررة؟ |
| قراءة الملفات والشبكة (I/O) | وقت القراءة والكتابة على الملفات والمنافذ | Java، وPHP في المعاينة | هل ينتظر الكود القرص أم الشبكة؟ |
ما المطلوب من تحليل الكود في بيئة الإنتاج
في البنوك وشركات الاتصالات ومتاجر التجزئة والجهات الحكومية في المملكة، أصعب مشكلات الأداء هي التي لا تظهر إلا في بيئة الإنتاج: خدمة مدفوعات يتضاعف استهلاكها للمعالج بعد إصدار جديد، وبوابة تتباطأ في نهاية الشهر وقت صرف الرواتب، وحاوية يُعاد تشغيلها كل بضعة أيام لأن ذاكرتها لا تتوقف عن الازدياد. ولا تكشف بيئة الاختبار هذه المشكلات، ونادرًا ما يُسمح بإرفاق أداة تصحيح أو بإعادة تشغيل خدمة مشغولة للتحقيق فيها خارج نافذة التغيير.
اقرأ المزيد
لذلك يجب أن يحقق تحليل الكود في بيئة الإنتاج أربعة شروط. أن يعمل طوال الوقت، فيكون تحليل حادثة الليلة الماضية موجودًا من قبل. وأن يكون خفيفًا بما يكفي لإبقائه مفعّلًا، فلا يحتاج أحد إلى أن يقرر مسبقًا متى يبدأ التسجيل. وأن يُظهر الدالة والسطر بالضبط، لا الخدمة وحدها. وأن يقارن فترة بفترة، أو إصدارًا بإصدار، أو خادمًا بآخر، لأن السؤال في الغالب هو: ما الذي تغيّر؟
كيف يعمل التحليل المستمر لأداء الكود في Datadog
مكتبة واحدة وإعداد واحد. Datadog Continuous Profiler جزء من مكتبة التتبع من Datadog في كل لغة. ففي Java مثلًا، يجمع ملف dd-java-agent.jar نفسه الذي يرسل تتبعات APM نتائج التحليل بعد ضبط -Ddd.profiling.enabled=true أو DD_PROFILING_ENABLED=true، وفي PHP يضيفه نص التثبيت datadog-setup.php مع الخيار --enable-profiling. ويُقرأ هذا الإعداد عند التشغيل، فتُعاد الخدمة مرة واحدة ضمن نشر اعتيادي، ثم يستمر جمع التحليل دون إعادة تشغيل أخرى. ويذكر Datadog أن أداة التحليل مصمّمة للعمل في بيئة الإنتاج على كل الخدمات بأثر محدود على المعالج والذاكرة،.
اقرأ المزيد
اللغات. يُدرج Datadog كلًا من Java (ومنها GraalVM native image في مرحلة المعاينة) و.NET وPHP وPython وGo وRuby وNode.js وRust وC وC++. ولكل لغة حد أدنى من إصدارات بيئة التشغيل ومكتبة التتبع، ففي Java مثلًا يحدد Datadog الحد الأدنى من تحديثات JDK، ويذكر أن المنصات بدون خوادم (serverless) غير مدعومة. وتشرح صفحة إعداد APM لتطبيقات Java و.NET وPHP وNode.js كيف تُرفق مكتبة التتبع في كل لغة.
ما الذي يُحفظ. يحتفظ Datadog بالرسوم اللهبية (flame graphs) ورسوم الاستدعاءات والخطوط الزمنية للخيوط ثمانية أيام افتراضيًا، وبمقاييس التحليل شهرًا واحدًا. أما الرسم اللهبي المحفوظ في دفتر (notebook) فيبقى سنة، وبهذه الطريقة نحفظ أدلة مراجعة الحوادث.
روابط ذات صلةصفحة إعداد APM لتطبيقات Java و.NET وPHP وNode.js
تحليل استهلاك المعالج المرتبط بالتتبع: من الطلب البطيء إلى سطر الكود
يذكر Datadog أن عمليات التطبيقات التي يعمل فيها التتبع الموزّع في APM وContinuous Profiler معًا ترتبط تلقائيًا. فيفتح المهندس الـ span البطيء، وينتقل إلى تبويب Profiles فيه، ويرى الدوال التي عملت على كل خيط أثناء ذلك الطلب. ويعرض الخيار "Open in Profiling" البيانات نفسها رسمًا لهبيًا محصورًا في الـ span وما تفرّع عنه. وتشرح صفحة التتبع الموزّع كيف يُتابَع الطلب الواحد عبر الخدمات، والتحليل هو الخطوة التالية داخل الخدمة الواحدة.
اقرأ المزيد
التحليل بحسب نقطة الوصول. يستطيع Datadog أيضًا تجميع نتائج التحليل بحسب نقطة الوصول في الخدمة (endpoint)، فترون أي نقاط الوصول تستهلك أكثر من غيرها من المعالج أو الذاكرة أو الاستثناءات، وكيف يتغيّر استهلاك المعالج لكل طلب مع الوقت. وبهذا يظهر التراجع الناتج عن إصدار جديد خطًّا صاعدًا على نقطة وصول واحدة، لا ارتفاعًا عامًا في معالج الخادم يصعب تفسيره.
المقارنة بين نتائج التحليل. تضع شاشة المقارنة في Datadog تحليلين جنبًا إلى جنب، محصورين بفترة زمنية أو بوسوم مثل version وenv. ومع توحيد وسوم الخدمات في خط CI/CD لديكم، تصبح مقارنة الإصدار الجديد بالسابق خطوة واحدة لا أسبوعًا من التخمين.
روابط ذات صلةصفحة التتبع الموزّع
كشف تسرّب الذاكرة وتقصّي أسبابه
يظهر تسرّب الذاكرة في الغالب أولًا خطًّا صاعدًا في ذاكرة الحاوية حتى يُعاد تشغيلها. ويقدّم Datadog لذلك تحقيقًا موجّهًا في صفحة الخدمة في APM، ضمن تبويب Memory Leaks: يساعد على حصر البيانات المطلوبة، ويذكر التكاملات أو الترقيات التي يحتاجها التحقيق، ويشرح كيف تُدار الذاكرة في بيئة التشغيل تلك.
اقرأ المزيد
ويحدد Datadog الشروط: خدمة تعمل في حاويات مع تكامل Kubernetes أو الحاويات، وContinuous Profiler مفعّل، ونتائج تحليل موسومة بـ container_id حتى تُطابَق مع مقاييس ذاكرة الحاوية. وفي Java و.NET يجب تفعيل تحليل الذاكرة المحجوزة (heap) أيضًا. والخطوة الأخيرة، كما يصفها Datadog، هي التأكد من التسرّب المحتمل بفحص الكائنات المحتفَظ بها عبر المقارنة بين نتائج التحليل. ولا تُصلح أداة التحليل التسرّب بنفسها، بل تُظهر الكود الذي يحتفظ بالذاكرة، فيُصلح المطوّرون لديكم موضع الخلل الصحيح.
أين تستخدمه الفرق في المملكة
- تكلفة المعالج بعد إصدار جديد. قارنوا الإصدار الجديد بالسابق على نقطة الوصول نفسها، وستظهر الدالة التي تغيّرت.
- أيام الذروة. صرف الرواتب في نهاية الشهر، وحملات رمضان والجمعة البيضاء، أو آخر موعد لخدمة حكومية: يُظهر تحليل الوقت الفعلي والأقفال أين تنتظر الطلبات حين ترتفع الحركة.
- ضغط جامع المهملات. يُظهر تحليل حجز الذاكرة الكود الذي ينشئ كائنات قصيرة العمر، وفي .NET يسجّل Datadog أيضًا استهلاك جامع المهملات للمعالج.
- استثناءات في حلقة متكررة. يُظهر تحليل الاستثناءات كودًا يرمي الأخطاء ويلتقطها بصمت، فيستهلك المعالج دون أن يظهر في نسب الأخطاء.
أين يناسب، وأين لا يناسب
تشرح أداة التحليل ما يفعله الكود الذي كتبتموه داخل العملية الواحدة. ولا تُظهر خطة استعلام بطيء، فـخطط الاستعلام وأوقات انتظار قاعدة البيانات من عمل مراقبة قواعد البيانات. ولا تُظهر ما يراه المستخدم في المتصفح أو الجوال، ولا تغني عن اختبار الأحمال قبل الإطلاق. وإن كانت الخدمة تعمل على منصة بدون خوادم، فراجعوا دعم Datadog لتلك اللغة أولًا، ففي Java يذكر Datadog أن المنصات بدون خوادم غير مدعومة. ونوضح هذا في الخطة، لا بعد شراء التراخيص.
روابط ذات صلةخطط الاستعلام وأوقات انتظار قاعدة البيانات
كيف يسير تطبيق Continuous Profiler مع إنتركي
-
اختيار الخدمات.
نبدأ بالخدمات التي تهمّ فيها تكلفة المعالج أو سرعة الاستجابة أو نمو الذاكرة أكثر من غيرها.
-
مراجعة الإصدارات.
إصدارات بيئة التشغيل ومكتبة التتبع مقابل قوائم Datadog الحالية، لكل لغة ولكل نوع تحليل.
-
تسعير التراخيص.
مضيفات APM والفئة التي تشمل التحليل، مسعّرة مع الإعداد والدعم الفني.
-
تفعيل التحليل في خدمة واحدة.
في بيئة اختبار أولًا، ثم في بيئة الإنتاج ضمن نشر اعتيادي، مع مراجعة الوسوم.
-
ربط التتبعات ونقاط الوصول.
التأكد من أن كل span يفتح نتائج تحليله، وأن التحليل بحسب نقطة الوصول يعمل في كل خدمة.
-
إعداد المقارنات ولوحات المتابعة.
مقارنة كل إصدار بسابقه، واستهلاك المعالج لكل نقطة وصول، وعرض الذاكرة لكل حاوية.
-
التشغيل أو التسليم.
تشغّل إنتركي المنصة من الرياض، أو تسلّمها لفريقكم مع التوثيق وتبقى داعمًا فنيًا.
إقامة البيانات والتكلفة والمدة
تحمل نتائج التحليل أسماء الدوال والملفات والخيوط والوسوم التي تضعونها، وترتبط بتتبعات قد تحمل عناوين URL وجمل SQL. وحتى نوفمبر 2026 لا يُدرج Datadog أي موقع له في الشرق الأوسط، فتُحفظ بيانات التحليل خارج المملكة. لذلك تتفق إنتركي مع فريق الأمن لديكم على ما يُرسل والوسوم المسموح بها قبل تفعيل التحليل. ويتناول دليل إقامة بيانات Datadog هذا السؤال بتوسّع. ويأتي الدعم من مهندسي إنتركي في الرياض، بالعربية والإنجليزية.
اقرأ المزيد
يحتسب Datadog خدمة APM لكل مضيف APM، وفئة APM Enterprise هي التي تشمل Continuous Profiler. فتتحدد التكلفة بعدد المضيفات التي تحللونها وبالفئة، لا بعدد نتائج التحليل. ويشرح دليل أسعار Datadog لدينا كيف تُحتسب كل وحدة، وتسعّر إنتركي التراخيص مع الإعداد والدعم في عرض واحد.
والمدة تقدير لا وعد. فحيث يعمل APM أصلًا، يستغرق تفعيل التحليل لأول خدمة عادة أيامًا تحددها نافذة النشر التالية. أما الأنظمة الأوسع فتستغرق في العادة بضعة أسابيع، بحسب عدد الخدمات، وإصدارات بيئات التشغيل القديمة، وعدد مرات فتح نوافذ التغيير.
روابط ذات صلةدليل إقامة بيانات Datadogدليل أسعار Datadog لدينا
أسئلة يطرحها العملاء
هل يحتاج Datadog Continuous Profiler إلى تعديل الكود أو إعادة تشغيل متكررة؟
لا يحتاج إلى تعديل الكود لأنواع التحليل المعتادة. فالتحليل يُفعَّل في مكتبة التتبع بإعداد واحد يُقرأ عند التشغيل، فتُعاد كل خدمة مرة واحدة ضمن نشر اعتيادي، ثم يستمر جمع التحليل.
ما لغات البرمجة التي يستطيع Datadog Continuous Profiler تحليلها؟
يُدرج Datadog كلًا من Java و.NET وPHP وPython وGo وRuby وNode.js وRust وC وC++. وتختلف أنواع التحليل بحسب اللغة والإصدار، وبعضها في مرحلة المعاينة، فتراجعها إنتركي مقابل خدماتكم أولًا.
هل تساعدنا أداة التحليل على اكتشاف تسرّب الذاكرة في حاوية Java أو .NET؟
نعم. يستخدم تحقيق Memory Leaks في Datadog تحليل الذاكرة المحجوزة ومقاييس ذاكرة الحاوية والمقارنة بين نتائج التحليل لإظهار الكود الذي يحتفظ بالذاكرة. وفي Java و.NET يجب تفعيل تحليل الذاكرة المحجوزة.
هل يشمل ترخيص Datadog APM لدينا في السعودية أداة التحليل؟
يضم Datadog أداة Continuous Profiler إلى فئة APM Enterprise، وتُحتسب لكل مضيف APM. وتبيع إنتركي تراخيص Datadog في المملكة وتسعّر الفئة والإعداد والدعم معًا.
هل تخرج بيانات التحليل من خوادمنا إلى خارج المملكة؟
نعم. فحتى نوفمبر 2026 لا يُدرج Datadog أي موقع له في الشرق الأوسط. وتتفق إنتركي مع فريق الأمن لديكم على نتائج التحليل والوسوم التي تُرسل قبل تفعيل التحليل.
كم يستغرق إضافة التحليل المستمر إلى خدمات نتتبعها أصلًا؟
تستغرق أول خدمة عادة أيامًا تحددها نافذة النشر التالية. أما الأنظمة الأوسع فتستغرق في العادة بضعة أسابيع، بحسب عدد الخدمات وإصدارات بيئات التشغيل ونوافذ التغيير.
التالي
اقرأ أيضًا
الخطوة التالية
خطّطوا للتحليل المستمر لأداء خدماتكم
أخبرونا بالخدمات التي تقلقكم (تكلفة المعالج، أو بطء الاستجابة، أو نمو الذاكرة)، وباللغات وبيئات التشغيل التي تستخدمها، وأين تعمل، وهل Datadog APM مستخدم لديكم. فنراجع الإصدارات ونسعّر التراخيص والإعداد والدعم معًا.
أو مباشرةً
+966-11-2180999 [email protected]أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية