دراسات الحالة

‫Datadog تقدّم الملايين من إحصاءات الأداء المتعمّقة باستخدام ProfilingManager

مدّة القراءة: 4 دقائق

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

تعاونت Datadog مع Google للتخفيف من هذا الإحباط من خلال دمج ProfilingManager API (المتاحة على أجهزة Android 15 والإصدارات الأحدث) في منصّتَي "مراقبة المستخدمين الحقيقيين" (RUM) و"التوصيف المستمر". يؤدي هذا الدمج إلى تحويل سير عمل تصحيح الأخطاء، ما يتيح للمطوّرين تجاوز الأعراض السطحية والتمكّن من اكتشاف السبب وراء حدوث مشكلة في الأداء.

من خلال الاستفادة من واجهة برمجة التطبيقات هذه على مستوى النظام، تعالج Datadog الآن ملايين الملفات الشخصية للإنتاج أسبوعيًا في جميع أنحاء العالم وفقًا لبيانات Datadog الداخلية لشهر يونيو 2026. وتوفّر لفِرق الهندسة مستوى جديدًا من الرؤية حول الأداء في العالم الواقعي، مع الحفاظ على وقت تشغيل منخفض لمراقبة الأداء على نطاق الإنتاج.

تأثير ProfilingManager

‫ProfilingManager هي خدمة نظام تم تقديمها في Android 15 تتيح للتطبيقات جمع بيانات الأداء آليًا، مثل عيّنات حزمة التنفيذ وتتبُّعات الحقول ولقطات لأجزاء من الذاكرة، مباشرةً من بيئات التشغيل الفعلي. تغيّر هذه الميزة نموذج الهندسة من إعادة الإنتاج اليدوية التفاعلية إلى التحليل الميداني الاستباقي.

AANDDM_DataDog_Quote_01.png

على سبيل المثال، استخدم أحد تطبيقات التواصل من Google عمليات تتبُّع الحقول للتحقيق في سبب بطء أوقات التشغيل على البارد على الأجهزة الأحدث والأكثر قوة. من خلال التعمّق في عمليات التتبُّع التي تم جمعها من الأجهزة ومقارنتها على أنواع مختلفة من الأجهزة، اكتشف المهندس مشكلة مخفية في الجدولة: كانت خدمة تحويل النص إلى كلام في الخلفية يتم تشغيلها مسبقًا بدون داعٍ أثناء بدء تشغيل التطبيق. وكشفت عمليات التتبُّع أنّ هذه العملية في الخلفية كانت تحتكر نواة وحدة المعالجة المركزية الكبيرة ذات الأداء الأعلى في الجهاز، ما أجبر سلسلة التعليمات الرئيسية للتطبيق على الدخول في وضع السكون أثناء عملية الإحماء المُسبَق.

حلّ مشكلة إمكانية الاطّلاع على الرموز البرمجية في Android

قبل تنفيذ ProfilingManager، ركّزت أداة Real User Monitoring (RUM) من Datadog على صحة التطبيق على مستوى عالٍ والقياس عن بُعد على مستوى الجلسة لتقييم تجربة المستخدم. ويمكن للفِرق الهندسية مراقبة إشارات أداء Android، مثل وقت العرض الأوّلي ونِسب أخطاء ANR وحِمل وحدة المعالجة المركزية والإطارات الثابتة. وامتدت هذه الإحصاءات لتشمل التفاعلات الدقيقة، مثل وقت استجابة الشبكة وأحداث اللمس وتوقُّف سلسلة التعليمات الرئيسية. ومع ذلك، على الرغم من أنّ هذه البيانات سلّطت الضوء بشكل فعّال على معوقات الأداء التي كانت تظهر في الميدان، إلا أنّها لم توفّر مسارًا واضحًا لتحديد السبب الأساسي لهذه الإخفاقات.

AANDDM_DataDog_Quote_02.png

لمعالجة هذه المشكلة، احتاجت Datadog إلى محرّك تحليل قادر على تسجيل بيانات تتبُّع Android مباشرةً من الأجهزة في مرحلة الإنتاج بأقل تأثير ممكن في الأداء. بعد تقييم الأساليب البديلة، مثل كتابة معالج تتبُّع خاص بهم باستخدام واجهات برمجة التطبيقات لتصحيح أخطاء Android، اختار الفريق ProfilingManager لأنّه الحلّ الأكثر فعالية من بين خيارات تحليل الأداء التي تم تقييمها، كما أنّه ينقل عبء قرارات أخذ العينات إلى نظام التشغيل.

تتيح واجهة ProfilingManager مجموعة واسعة من طرق جمع البيانات، بما في ذلك تتبُّع وحدة المعالجة المركزية (CPU)، وأخذ عينات من حزمة التنفيذ، وتحليل الذاكرة من خلال لقطات لأجزاء من الذاكرة في Java ولقطات لعناصر متعدّدة في الذاكرة الأصلية. وتتيح للمطوّرين تحليل إصدارات الإنتاج وتحميل ملفات التتبّع إلى مساحة تخزين خارجية ومراجعتها في واجهة مستخدم أداة تحليل عمليات التتبّع في Perfetto. بصفتها مقدّم خدمة SaaS، تحمّل Datadog هذه الملفات الشخصية التي تم جمعها من خلال حزمة تطوير البرامج (SDK) وتعرضها وتحلّلها، ما يوفّر عرضًا موحّدًا لحالة التطبيق. 

من خلال تجميع بيانات القياس عن بُعد العالية الدقة ضمن واجهة برمجة تطبيقات موحّدة لإمكانية تتبّع البيانات، تتيح ProfilingManager لشركة Datadog وعملائها مراقبة تراجُع أداء Android المعقّد والتحقيق فيه ومعالجته بشكل استباقي من خلال المزايا الفنية الرئيسية التالية:

  • بيانات تشخيص الجلسات الدقيقة: تعمل واجهة ProfilingManager على تحسين إمكانية تصحيح الأخطاء من خلال توفير بيانات تتبُّع مباشرة على مستوى نظام التشغيل، ما يتيح التغلّب على تحديات الرؤية والمواءمة التي تواجهها عادةً عمليات التسجيل المخصّصة مع خدمات النظام. للاطّلاع على مزيد من التفاصيل، يمكن للمطوّرين تنزيل عمليات التتبّع هذه من Datadog لإجراء مزيد من التحقيق في أدوات العرض المرئي، مثل واجهة مستخدم Perfetto.
  • مشغّلات القياس عن بُعد المبرمَجة: من خلال الاستفادة من أحداث النظام الأصلية لبدء تسجيلات التتبُّع في نقاط التحسين الرئيسية، يقلّل Datadog من الحاجة إلى إنشاء منطق مخصّص لجمع البيانات. على الرغم من أنّ عملية الطرح الأولية تركّز على إشارة APP_FULLY_DRAWN، هناك خطط لتوسيع نطاق إمكانية تتبّع البيانات لتشمل عوامل تشغيل ANR وOOM وCOLD_START.
  • لقطات تتبُّع استباقية: من خلال التفاعل مباشرةً مع خدمة Perfetto على مستوى النظام (المتتبَّعة)، تستخدم واجهة ProfilingManager نموذج تسجيل استباقي في الخلفية مصمَّمًا لرصد المشاكل غير المتوقعة. يضمن ذلك حصول المطوّرين على عرض دقيق للأحداث التي تؤدي إلى حدوث قيمة شاذة في الأداء، ما يوفّر مستوى من الإحصاءات يتجاوز ما يمكن الحصول عليه من خلال قياس حالة التطبيق اليدوي.
  • رصد المشاكل على نطاق واسع: بإمكان Datadog تجميع بيانات القياس عن بُعد من قاعدة عملائها العالمية للكشف عن حالات التراجع التي تظهر فقط في ظل إعدادات أجهزة فريدة وبيئات شبكة متغيّرة.
  • استقرار الموارد الذي يفرضه النظام: تستفيد واجهة برمجة التطبيقات من جمع بيانات تتبُّع العينات لضمان عدم ملاحظة التأثيرات في الأداء وتجربة المستخدم.
  • عناصر التحكّم في البيانات على الجهاز: تستبعد واجهة ProfilingManager المعلومات غير ذات الصلة من العمليات الأخرى على الجهاز قبل تسليم الملف الشخصي إلى التطبيق، ما يقلّل من أحجام الملفات ويضمن توفير البيانات ذات الصلة بعمليات التطبيق فقط.

معالجة ملايين الملفات الشخصية أسبوعيًا لتحسين التطبيقات الواقعية

datadog-profiling-blogpost-final.png
مثال على قياس الوقت المُستغرَق للعرض الأولي في Datadog باستخدام عيّنات من تسلسل استدعاء الدوال البرمجية المستندة إلى ProfilingManager

تطلّب دمج واجهة برمجة تطبيقات لإنشاء الملفات الشخصية على مستوى النظام في حزمة تطوير برامج (SDK) للمراقبة العالمية حلّ تحديات البنية الأساسية. بما أنّ ProfilingManager ينشئ تتبُّعات تفصيلية للأداء، كان على فريق هندسة Datadog إنشاء مسار قادر على تحليل هذه الملفات الشخصية على جانب الخادم على نطاق واسع. بالإضافة إلى جمع الملفات الشخصية، تؤكّد Datadog أيضًا على أهمية الموازنة بين معدّل تكرار جمع العيّنات وجمع بيانات كافية لإنشاء إحصاءات مفيدة حول تطبيقك. تعتمد Datadog على الحدّ الأقصى المضمّن لمعدّل ProfilingManager كإجراء وقائي مهم لضمان الاستقرار، ما يمنع طلبات القياس عن بُعد المفرطة من إثقال كاهل أجهزة المستخدمين. 

على مدار أشهر، كان الفريق يحلّل تطبيق Android الأصلي الخاص بـ Datadog وعددًا من تطبيقات المستخدمين في مرحلة مبكرة، ويجمع ملايين الملفات الشخصية لضمان تجربة إطلاق سريعة وخالية من الأخطاء وتحسين خوارزميات رصد الأداء. واليوم، يمكن دمج الإصدار النهائي بسلاسة على مجموعة متنوعة من أجهزة Android. 

الخاتمة

من خلال دمج ProfilingManager API في Android، نجحت Datadog في سد فجوة الرؤية بين أنظمة الخلفية وتطبيقات عملاء الأجهزة الجوّالة لعملائها. من خلال معالجة ملايين الملفات الشخصية أسبوعيًا مع الحدّ من استهلاك موارد الجهاز، تزوّد Datadog مطوّري برامج Android بالإحصاءات اللازمة على مستوى الرموز البرمجية لتشخيص أخطاء الأداء المعقّدة على الفور، ما يساعد المطوّرين في إنشاء تطبيقات أكثر سلاسة وتحسين مؤشرات أداء تطبيقاتهم في "متجر Google Play". لاستخدام ProfilingManager API مباشرةً في إطار عمل تتبُّع الأداء، يُرجى الاطّلاع على المستندات.

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

لبدء استخدام ميزة "مراقبة المستخدمين الحقيقيين" في Datadog المستندة إلى ProfilingManager، انتقِل إلى مراقبة المستخدمين الحقيقيين في Datadog Mobile.

من كتابة:
متابعة القراءة