مطالعات موردی

دیتاداگ با ProfilingManager میلیون‌ها بینش عمیق از عملکرد ارائه می‌دهد

مطالعه ۴ دقیقه‌ای
۳ نویسنده
Alice Yuan, Arti Arutiunov, Nikita Ogorodnikov

بازتولید رگرسیون‌های عملکردی به طرز چشمگیری دشوار است و این امر، رگرسیون‌ها را به یک گلوگاه بزرگ برای توسعه‌دهندگان موبایل تبدیل می‌کند. اگرچه سیگنال‌هایی مانند نرخ ANR نشان می‌دهند که چه مشکلاتی در محیط تولید رخ می‌دهد، اما تعیین دقیق خط کدی که منجر به مشکل عملکردی شده است، از نظر تاریخی مستلزم بازتولید دستی جامع یا آزمایش‌های حدسی مبتنی بر آزمون و خطا بوده است.

دیتاداگ با گوگل همکاری کرد تا با ادغام API پروفایلینگ منیجر (موجود در دستگاه‌های اندروید ۱۵+) در پلتفرم‌های نظارت بر کاربر واقعی (RUM) و پروفایلینگ مداوم، این ناامیدی را کاهش دهد. این ادغام، گردش کار اشکال‌زدایی را متحول می‌کند و به توسعه‌دهندگان اجازه می‌دهد تا فراتر از علائم سطحی حرکت کنند و بتوانند دلیل گلوگاه عملکرد را تشخیص دهند.

با بهره‌گیری از این API سطح سیستم، دیتاداگ اکنون میلیون‌ها پروفایل تولید را به صورت هفتگی در سراسر جهان، طبق داده‌های داخلی دیتاداگ در ژوئن ۲۰۲۶، پردازش می‌کند. این API سطح جدیدی از دید به عملکرد دنیای واقعی را در اختیار تیم‌های مهندسی قرار می‌دهد، در حالی که سربار زمان اجرا برای نظارت بر عملکرد در مقیاس تولید را پایین نگه می‌دارد.

تأثیر ProfilingManager

ProfilingManager یک سرویس سیستمی است که در اندروید ۱۵ معرفی شد و به برنامه‌ها امکان می‌دهد تا داده‌های عملکردی مانند نمونه‌های پشته فراخوانی، ردیابی فیلدها و داده‌های هیپ حافظه را مستقیماً از محیط‌های عملیاتی جمع‌آوری کنند. این قابلیت، الگوی مهندسی را از بازتولید دستی واکنشی به تجزیه و تحلیل میدانی پیشگیرانه تغییر می‌دهد.

AANDDM_DataDog_Quote_01.png

برای مثال، یک برنامه ارتباطی گوگل از ردیابی‌های میدانی برای بررسی دلیل کندتر بودن زمان شروع سرد آن در سخت‌افزارهای جدیدتر و قدرتمندتر استفاده کرد. با بررسی ردیابی‌های میدانی جمع‌آوری‌شده و مقایسه ردیابی‌ها در انواع مختلف دستگاه، مهندس یک مشکل زمان‌بندی پنهان را کشف کرد: یک سرویس تبدیل متن به گفتار پس‌زمینه، هنگام راه‌اندازی برنامه، بی‌جهت پیش‌گرم می‌شد. ردیابی‌ها نشان داد که این فرآیند پس‌زمینه، هسته بزرگ پردازنده با بالاترین عملکرد دستگاه را به انحصار خود درآورده و رشته اصلی برنامه را مجبور به خواب در حین وقوع پیش‌گرم شدن می‌کرد.

حل چالش قابلیت مشاهده در سطح کد اندروید

پیش از پیاده‌سازی ProfilingManager، نظارت واقعی کاربر (RUM) شرکت Datadog بر سلامت سطح بالای برنامه و تله‌متری سطح جلسه برای ارزیابی سفر کاربر متمرکز بود. تیم‌های مهندسی می‌توانستند سیگنال‌های عملکرد اندروید مانند زمان نمایش اولیه، نرخ ANR، بار CPU و فریم‌های منجمد را رصد کنند. این بینش‌ها به تعاملات جزئی، مانند تأخیر شبکه، رویدادهای لمسی و هنگ کردن نخ اصلی نیز گسترش می‌یافت. با این حال، اگرچه این داده‌ها به طور مؤثر نشان می‌دادند که کدام گلوگاه‌های عملکرد در این زمینه ظاهر می‌شوند، اما هیچ مسیر روشنی برای شناسایی علت اصلی این خرابی‌ها ارائه نمی‌کرد.

AANDDM_DataDog_Quote_02.png

برای پرداختن به این موضوع، Datadog به یک موتور پروفایلینگ نیاز داشت که بتواند ردیابی‌های اندروید را مستقیماً از دستگاه‌های در حال تولید با حداقل تأثیر بر عملکرد ثبت کند. پس از ارزیابی رویکردهای جایگزین، مانند نوشتن پردازنده ردیابی خود با استفاده از APIهای اشکال‌زدایی اندروید، تیم ProfilingManager را انتخاب کرد زیرا از بین گزینه‌های پروفایلینگی که ارزیابی کردند، کارآمدترین راه‌حل است و تصمیمات نمونه‌برداری را از سربار به سیستم‌عامل منتقل می‌کند.

ProfilingManager از طیف گسترده‌ای از روش‌های جمع‌آوری، از جمله ردیابی CPU، نمونه‌برداری از پشته فراخوانی، تجزیه و تحلیل حافظه از طریق Java heap dumps و پروفایل‌های بومی heap پشتیبانی می‌کند. این ابزار به توسعه‌دهندگان امکان می‌دهد تا نسخه‌های تولیدی را پروفایل‌بندی کنند، فایل‌های ردیابی را در فضای ذخیره‌سازی خارجی آپلود کنند و آنها را در رابط کاربری تحلیلگر ردیابی Perfetto بررسی کنند. Datadog به عنوان یک ارائه‌دهنده SaaS، این پروفایل‌های جمع‌آوری‌شده از طریق SDK خود را آپلود، مصورسازی و تجزیه و تحلیل می‌کند و یک نمای یکپارچه از سلامت برنامه ارائه می‌دهد.

با متمرکز کردن تله‌متری با دقت بالا در یک رابط برنامه‌نویسی کاربردی (API) یکپارچه برای مشاهده، ProfilingManager به Datadog و مشتریانش این امکان را می‌دهد که به صورت پیشگیرانه، رگرسیون‌های پیچیده عملکرد اندروید را از طریق مزایای فنی کلیدی زیر، رصد، بررسی و اصلاح کنند:

  • تشخیص دقیق نشست: ProfilingManager با ارائه داده‌های ردیابی مستقیم در سطح سیستم‌عامل، قابلیت اشکال‌زدایی را افزایش می‌دهد و بر چالش‌های مربوط به قابلیت مشاهده و ترازبندی که معمولاً در گزارش‌گیری سفارشی با سرویس‌های سیستمی وجود دارد، غلبه می‌کند. برای بررسی عمیق‌تر، توسعه‌دهندگان می‌توانند این ردیابی‌ها را از Datadog دانلود کنند تا در ابزارهای تجسم مانند Perfetto UI بیشتر بررسی کنند.
  • تریگرهای تله‌متری خودکار: Datadog با بهره‌گیری از رویدادهای سیستم بومی برای شروع ضبط ردیابی در نقاط بهینه‌سازی کلیدی، نیاز به ساخت منطق جمع‌آوری سفارشی را کاهش می‌دهد. در حالی که انتشار اولیه بر سیگنال APP_FULLY_DRAWN تمرکز دارد، برنامه‌هایی برای گسترش این قابلیت مشاهده برای شامل تریگرهای ANR ، OOM و COLD_START وجود دارد.
  • عکس‌های فوری ردیابی پیشگیرانه: ProfilingManager با ایجاد ارتباط مستقیم با سرویس Perfetto در سطح سیستم (traced)، از یک مدل ضبط پس‌زمینه پیشگیرانه استفاده می‌کند که برای ثبت مشکلات غیرقابل پیش‌بینی طراحی شده است. این امر تضمین می‌کند که توسعه‌دهندگان تجسم دقیقی از رویدادهایی که منجر به ناهنجاری عملکرد می‌شوند، دریافت می‌کنند و سطحی از بینش را ارائه می‌دهند که از آنچه از طریق ابزار دقیق دستی امکان‌پذیر است، فراتر می‌رود.
  • تشخیص گلوگاه در مقیاس بزرگ: دیتاداگ قادر است تله‌متری را از سراسر پایگاه مشتری جهانی دیتاداگ ترکیب کند تا رگرسیون‌هایی را که فقط تحت پیکربندی‌های سخت‌افزاری منحصر به فرد و محیط‌های شبکه متغیر ظاهر می‌شوند، کشف کند.
  • پایداری منابع اعمال‌شده توسط سیستم: این API از جمع‌آوری ردیابی نمونه‌برداری بهره می‌برد تا اطمینان حاصل شود که تأثیرات بر عملکرد و تجربه کاربر نامحسوس باقی می‌ماند.
  • کنترل داده‌های روی دستگاه: ProfilingManager قبل از اینکه پروفایل به برنامه تحویل داده شود، اطلاعات نامربوط از سایر فرآیندهای روی دستگاه را فیلتر می‌کند. این کار اندازه فایل‌ها را به حداقل می‌رساند و تضمین می‌کند که فقط داده‌های مربوط به فرآیندهای برنامه ارائه می‌شوند.

پردازش میلیون‌ها پروفایل هفتگی برای بهینه‌سازی برنامه‌های دنیای واقعی

ادغام یک API پروفایلینگ سطح سیستم در یک SDK مانیتورینگ جهانی، نیازمند حل چالش‌های زیرساختی بود. از آنجا که ProfilingManager ردیابی‌های عملکردی بسیار دقیقی ایجاد می‌کند، تیم مهندسی Datadog مجبور بود یک خط لوله (pipeline) بسازد که قادر به تجزیه و تحلیل این پروفایل‌ها در سمت سرور در مقیاس بزرگ باشد. فراتر از جمع‌آوری پروفایل، Datadog همچنین بر اهمیت متعادل کردن فرکانس نمونه‌برداری با جمع‌آوری داده‌های کافی برای ایجاد بینش‌های معنادار در مورد برنامه شما تأکید می‌کند. Datadog به محدودکننده نرخ داخلی ProfilingManager به عنوان یک محافظ پایداری حیاتی متکی است و از درخواست‌های تله‌متری بیش از حد که دستگاه‌های کاربر را بیش از حد بار می‌کنند، جلوگیری می‌کند.

این تیم ماه‌هاست که در حال بررسی اپلیکیشن اندروید بومی دیتاداگ و تعدادی از اپلیکیشن‌های اولیه‌ی کاربران است و میلیون‌ها پروفایل را جمع‌آوری کرده تا از تجربه‌ی راه‌اندازی سریع و بدون خطا اطمینان حاصل کند و الگوریتم‌های تشخیص عملکرد آنها را اصلاح کند. امروزه، یکپارچه‌سازی تولید به طور یکپارچه در طیف وسیعی از دستگاه‌های اندروید قابل اجرا است.

نتیجه‌گیری

با ادغام API ProfilingManager اندروید، Datadog با موفقیت شکاف دید بین سیستم‌های backend و برنامه‌های کلاینت موبایل را برای مشتریان خود از بین برد. با پردازش میلیون‌ها پروفایل در هفته با سربار ناچیز دستگاه، Datadog به توسعه‌دهندگان اندروید بینش‌های سطح کد لازم برای تشخیص فوری اشکالات عملکردی پیچیده را ارائه می‌دهد و به توسعه‌دهندگان کمک می‌کند تا برنامه‌های روان‌تری بسازند و سیگنال‌های عملکرد برنامه خود را در فروشگاه Play بهبود بخشند. برای استفاده مستقیم از API ProfilingManager در چارچوب مشاهده عملکرد خود، مستندات ما را بررسی کنید.

در آینده، دیتاداگ قصد دارد داده‌های پروفایلینگ اندروید را به عنوان ورودی درجه یک برای عامل‌های کدنویسی تبدیل کند تا به طور خودکار گلوگاه‌های عملکرد را برطرف کنند و حلقه بازخورد بین تشخیص و اصلاح را ببندند. دیتاداگ در تلاش است تا پروفایلینگ اندروید را به طور گسترده برای توسعه‌دهندگان در دسترس قرار دهد.

برای شروع استفاده از ویژگی نظارت بر کاربر واقعی Datadog که توسط ProfilingManager ارائه می‌شود، به Datadog Mobile Real User Monitoring مراجعه کنید.

نوشته شده توسط:

ادامه مطلب