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

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

قراءة لمدة 4 دقائق
3 المؤلفون
Alice Yuan, Arti Arutiunov, Nikita Ogorodnikov

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

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

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

تأثير ProfilingManager

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

AANDDM_DataDog_Quote_01.png

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

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

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

AANDDM_DataDog_Quote_02.png

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

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

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

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

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

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

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

الخاتمة

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

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

لبدء استخدام ميزة "مراقبة تجربة المستخدم الحقيقية" من Datadog المستندة إلى ProfilingManager، انتقِل إلى مراقبة تجربة المستخدم الحقيقية على الأجهزة الجوّالة من Datadog.

من تأليف:

متابعة القراءة