Case Studies

‫Datadog מספקת מיליוני תובנות מעמיקות לגבי ביצועים באמצעות ProfilingManager

משך הקריאה: 4 דקות

קשה מאוד לשחזר רגרסיות בביצועים, ולכן הן מהוות צוואר בקבוק משמעותי למפתחים של אפליקציות לנייד. אמנם אותות כמו שיעורי ANR מציינים אילו בעיות מתרחשות בסביבת הייצור, אבל כדי לאתר את שורת הקוד הספציפית שגרמה לבעיה בביצועים, נדרש בעבר שחזור ידני מקיף או ניסויים ספקולטיביים של ניסוי וטעייה.

חברת Datadog שיתפה פעולה עם Google כדי לצמצם את התסכול הזה. היא שילבה את ProfilingManager API (שזמין במכשירים עם Android 15 ואילך) בפלטפורמות Real User Monitoring (RUM) ו-Continuous Profiling שלה. השילוב הזה משנה את תהליך העבודה של ניפוי הבאגים, ומאפשר למפתחים לזהות את הסיבה לצוואר בקבוק בביצועים, במקום להסתמך רק על סימפטומים ברמת השטח.

על ידי שימוש ב-API ברמת המערכת, Datadog מעבדת עכשיו מיליוני פרופילים של ייצור מדי שבוע ברחבי העולם, על פי נתונים פנימיים של Datadog מיוני 2026. הכלי מספק לצוותי הנדסה רמת שקיפות חדשה לגבי הביצועים בעולם האמיתי, תוך שמירה על תקורה נמוכה של זמן ריצה לצורך מעקב אחר הביצועים בקנה מידה של ייצור.

ההשפעה של ProfilingManager

‫ProfilingManager הוא שירות מערכת שהוצג ב-Android 15, שמאפשר לאפליקציות לאסוף באופן פרוגרמטי נתוני ביצועים כמו דגימות של סטאק ביצוע, עקבות שדה ותמונת מצב של הזיכרון ישירות מסביבות ייצור. היכולת הזו משנה את פרדיגמת ההנדסה משיחזור ידני בדיעבד לניתוח שטח יזום.

AANDDM_DataDog_Quote_01.png

לדוגמה, צוות הפיתוח של אפליקציית תקשורת של Google השתמש בנתוני מעקב מהשטח כדי לבדוק למה זמני ההפעלה במצב התחלתי (cold start) שלה היו איטיים יותר בחומרה חדשה וחזקה יותר. אחרי שהמהנדס בדק את נתוני המעקב שנאספו מהשטח והשווה בין נתוני מעקב במכשירים מסוגים שונים, הוא גילה בעיה נסתרת בתזמון: שירות של המרת טקסט לדיבור ברקע עבר חימום מראש שלא לצורך במהלך הפעלת האפליקציה. נתוני המעקב הראו שתהליך הרקע הזה השתלט על ליבת ה-CPU הגדולה עם הביצועים הכי גבוהים במכשיר, וכפה על השרשור הראשי של האפליקציה להיכנס למצב שינה בזמן החימום מראש.

פתרון בעיית החשיפה ברמת הקוד ב-Android

לפני ההטמעה של ProfilingManager, המערכת Real User Monitoring (RUM) של Datadog התמקדה בבדיקת תקינות האפליקציה ברמה גבוהה ובטלמטריה ברמת הסשן כדי להעריך את מסלול המשתמש. צוותי הנדסה יכולים לעקוב אחרי אותות ביצועים של Android, כמו הזמן עד להצגה הראשונית, שיעורי ANR, עומס המעבד ופריימים קפואים. התובנות האלה הורחבו לאינטראקציות ברמת הגרנולריות, כמו זמן האחזור ברשת, אירועי מגע וקריסות של ה-thread הראשי. עם זאת, למרות שהנתונים האלה הדגישו בצורה יעילה אילו צווארי בקבוק בביצועים צצו בשטח, הם לא סיפקו דרך ברורה לזיהוי הגורם הבסיסי לבעיות האלה.

AANDDM_DataDog_Quote_02.png

כדי לפתור את הבעיה הזו, חברת Datadog הייתה צריכה מנוע פרופילים שיכול ללכוד עקבות של Android ישירות ממכשירים בייצור עם השפעה מינימלית על הביצועים. אחרי שהצוות בחן גישות חלופיות, כמו כתיבת מעבד עקבות משלהם באמצעות ממשקי Android Debug API, הוא בחר ב-ProfilingManager כי זה הפתרון עם הביצועים הכי טובים מבין אפשרויות הפרופילים שנבדקו, והוא מעביר את התקורה של החלטות הדגימה למערכת ההפעלה.

‫ProfilingManager תומך במגוון רחב של שיטות איסוף, כולל עקבות של CPU, דגימה של מחסנית קריאות, ניתוח זיכרון באמצעות Java heap dumps ופרופילים של heap מקוריים. הוא מאפשר למפתחים ליצור פרופילים של גרסאות ייצור, להעלות קובצי עקבות לאחסון חיצוני ולבדוק אותם בממשק המשתמש של כלי ניתוח העקבות Perfetto. כספק SaaS,‏ Datadog מעלה, מציג ומנתח את הפרופילים האלה שנאספו באמצעות ה-SDK שלו, ומספק תצוגה מאוחדת של תקינות האפליקציה. 

ה-API של ProfilingManager מאפשר לרכז טלמטריה ברמת דיוק גבוהה ב-API מאוחד של יכולת צפייה, וכך מאפשר ל-Datadog וללקוחות שלה לעקוב באופן יזום אחרי רגרסיות מורכבות בביצועים של Android, לחקור אותן ולתקן אותן באמצעות יתרונות טכניים מרכזיים:

  • ניתוח מפורט של סשנים: הכלי ProfilingManager משפר את יכולות הניפוי באגים על ידי אספקת נתוני מעקב ישירים ברמת מערכת ההפעלה, ובכך מתגבר על האתגרים של נראות ותיאום שמאפיינים בדרך כלל רישום מותאם אישית ביומן עם שירותי מערכת. כדי לבצע ניתוח מעמיק יותר, מפתחים יכולים להוריד את נתוני המעקב האלה מ-Datadog ולבדוק אותם לעומק באמצעות כלי ויזואליזציה כמו Perfetto UI.
  • טריגרים אוטומטיים של טלמטריה: באמצעות אירועים מקוריים של המערכת כדי להתחיל הקלטות של עקבות בנקודות אופטימיזציה מרכזיות, Datadog מצמצמת את הצורך בבניית לוגיקה מותאמת אישית לאיסוף. בשלב ההשקה הראשוני, המיקוד הוא באות APP_FULLY_DRAWN, אבל כבר יש תוכניות להרחיב את יכולת הצפייה הזו כך שתכלול טריגרים של ANR, OOM ו- COLD_START.
  • תמונות מצב פרואקטיביות של מעקב: הכלי ProfilingManager מתקשר ישירות עם שירות Perfetto ברמת המערכת (traced) ומשתמש במודל פרואקטיבי של הקלטה ברקע שנועד לתעד בעיות בלתי צפויות. כך המפתחים מקבלים תצוגה חזותית מדויקת של האירועים שהובילו לאנומליה בביצועים, ורמת התובנות גבוהה יותר מזו שאפשר לקבל באמצעות מכשור ידני.
  • איתור צווארי בקבוק בהיקף נרחב: מערכת Datadog יכולה לסנתז טלמטריה מכל בסיס הלקוחות הגלובלי של Datadog כדי לגלות רגרסיות שמופיעות רק בתצורות חומרה ייחודיות ובסביבות רשת משתנות.
  • יציבות המשאבים שנאכפת על ידי המערכת: ה-API משתמש באיסוף דגימות של נתוני מעקב כדי לוודא שההשפעות על הביצועים ועל חוויית המשתמש לא מורגשות.
  • אמצעי בקרה על נתונים במכשיר: הכלי ProfilingManager מסנן מידע לא רלוונטי מתהליכים אחרים במכשיר לפני שהפרופיל מועבר לאפליקציה. כך מצמצמים את גודל הקבצים ומבטיחים שרק נתונים שרלוונטיים לתהליכים של האפליקציה יסופקו.

עיבוד של מיליוני פרופילים מדי שבוע כדי לבצע אופטימיזציה של אפליקציות בעולם האמיתי

שילוב של API ליצירת פרופילים ברמת המערכת בערכת SDK גלובלית למעקב דרש פתרון של בעיות בתשתית. מכיוון ש-ProfilingManager יוצר מעקב ביצועים מפורט מאוד, צוות המהנדסים של Datadog נאלץ לבנות צינור נתונים שיכול לנתח את הפרופילים האלה בצד השרת בקנה מידה גדול. בנוסף לאיסוף פרופילים, ב-Datadog מדגישים גם את החשיבות של איזון בין תדירות הדגימה לבין איסוף מספיק נתונים כדי ליצור תובנות משמעותיות לגבי האפליקציה. ‫Datadog מסתמכת על הגבלת קצב של יצירת בקשות המובנית של ProfilingManager כאמצעי קריטי לשמירה על יציבות, ומונעת מבקשות טלמטריה מוגזמות להעמיס יתר על המכשירים של המשתמשים. 

הצוות עבד במשך חודשים על יצירת פרופילים של אפליקציה ל-Android המקורית של Datadog ושל אפליקציות של מספר מראשוני המשתמשים. הצוות אסף מיליוני פרופילים כדי לוודא שחוויית ההשקה תהיה מהירה וללא שגיאות, וכדי לשפר את האלגוריתמים לזיהוי ביצועים. היום, השילוב של Datadog עם Android מתבצע בצורה חלקה במגוון מכשירי Android.

סיכום

באמצעות שילוב של ProfilingManager API של Android, ‏ Datadog הצליחה לספק ללקוחות שלה נראות מלאה בין מערכות ה-Backend לבין אפליקציות לקוח לנייד. הפלטפורמה של Datadog מעבדת מיליוני פרופילים מדי שבוע עם תקורה זניחה במכשיר, ומספקת למפתחי Android את התובנות ברמת הקוד שדרושות להם כדי לאבחן באגים מורכבים בביצועים באופן מיידי. כך המפתחים יכולים ליצור אפליקציות חלקות יותר ולשפר את אותות הביצועים של האפליקציה שלהם בחנות Play. כדי להטמיע את ProfilingManager API ישירות במסגרת של ניתוח ביצועים, אפשר לעיין במסמכי העזרה.

בעתיד, Datadog מתכננת להפוך את נתוני הפרופילים של Android לקלט חשוב לסוכני קידוד, כדי לפתור באופן אוטונומי צווארי בקבוק בביצועים ולסגור את לולאת המשוב בין זיהוי לתיקון. Datadog פועלת כדי להפוך את הפרופילים של Android לזמינים למפתחים באופן נרחב.

כדי להתחיל להשתמש בתכונה Datadog real user monitoring (מעקב אחרי משתמשים בזמן אמת) שמבוססת על ProfilingManager, אפשר לעבור אל Datadog Mobile Real User Monitoring.

להמשך הקריאה