Datadog מספקת מיליוני תובנות מעמיקות לגבי ביצועים באמצעות ProfilingManager
משך הקריאה: 4 דקות
ירידות בביצועים קשות מאוד לשחזור, ולכן הן מהוות צוואר בקבוק משמעותי למפתחים של אפליקציות לנייד. אותות כמו שיעורי ANR מציינים אילו בעיות מתרחשות בסביבת הייצור, אבל כדי לאתר את שורת הקוד הספציפית שגרמה לבעיית הביצועים, נדרש בעבר שחזור ידני מקיף או ניסויים ספקולטיביים בשיטת הניסוי והטעייה.
כדי לפתור את הבעיה הזו, Datadog שיתפה פעולה עם Google ושילבה את ProfilingManager API (שזמין במכשירים עם Android 15 ומעלה) בפלטפורמות Real User Monitoring (RUM) ו-Continuous Profiling שלה. השילוב הזה משנה את תהליך העבודה של ניפוי הבאגים, ומאפשר למפתחים להבין את הסיבה לצוואר בקבוק בביצועים, ולא רק את הסימפטומים שלו.
בעזרת ה-API הזה ברמת המערכת, Datadog מעבדת עכשיו מיליוני פרופילים של ייצור מדי שבוע ברחבי העולם, על פי נתונים פנימיים של Datadog מיוני 2026. הכלי מספק לצוותי הנדסה רמת שקיפות חדשה לגבי הביצועים בעולם האמיתי, תוך שמירה על תקורה נמוכה של זמן ריצה לצורך מעקב אחר ביצועים בקנה מידה של ייצור.
ההשפעה של ProfilingManager
ProfilingManager הוא שירות מערכת שהוצג ב-Android 15, שמאפשר לאפליקציות לאסוף באופן פרוגרמטי נתוני ביצועים כמו דגימות של סטאק ביצוע, עקבות שדה ופריקת ערימת זיכרון ישירות מסביבות ייצור. היכולת הזו משנה את פרדיגמת ההנדסה משיחזור ידני בדיעבד לניתוח שטח יזום.
לדוגמה, אפליקציית תקשורת של Google השתמשה במעקב אחר שדות כדי לבדוק למה זמני ההפעלה שלה במצב התחלתי היו איטיים יותר בחומרה חדשה וחזקה יותר. המהנדס ניתח את העקבות שנאספו בשטח והשווה בין עקבות בסוגים שונים של מכשירים. כך הוא גילה בעיה נסתרת בתזמון: שירות של המרת טקסט לדיבור שפועל ברקע עבר חימום מראש שלא לצורך במהלך הפעלת האפליקציה. המעקב חשף שתהליך הרקע הזה ניצל את ליבת ה-CPU הגדולה עם הביצועים הכי גבוהים במכשיר, ואילץ את ה-thread הראשי של האפליקציה להיכנס למצב שינה בזמן החימום המוקדם.
פתרון בעיית החשיפה ברמת הקוד ב-Android
לפני ההטמעה של ProfilingManager, המערכת Real User Monitoring (RUM) של Datadog התמקדה בבדיקת תקינות האפליקציה ברמה גבוהה ובטלמטריה ברמת הסשן כדי להעריך את מסלול המשתמש. צוותי הנדסה יכולים לעקוב אחרי אותות ביצועים של Android, כמו הזמן עד להצגה הראשונית, שיעורי ANR, עומס המעבד ופריימים קפואים. התובנות האלה הורחבו לאינטראקציות ברמת הגרנולריות, כמו זמן האחזור ברשת, אירועי מגע וקריסות של ה-thread הראשי. עם זאת, למרות שהנתונים האלה הדגישו ביעילות אילו צווארי בקבוק בביצועים צצו בשטח, הם לא סיפקו דרך ברורה לזיהוי הגורם הבסיסי לבעיות האלה.
כדי לפתור את הבעיה הזו, Datadog הייתה צריכה מנוע פרופילים שיכול ללכוד עקבות של Android ישירות ממכשירים בייצור עם השפעה מינימלית על הביצועים. אחרי שהצוות בחן גישות חלופיות, כמו כתיבת מעבד עקבות משלו באמצעות ממשקי Android Debug API, הוא בחר ב-ProfilingManager כי זה הפתרון עם הביצועים הכי טובים מבין אפשרויות הפרופילים שנבדקו, והוא מעביר את התקורה של החלטות הדגימה למערכת ההפעלה.
ProfilingManager תומך במגוון רחב של שיטות איסוף, כולל מעקב אחר השימוש במעבד (CPU), דגימת סטאק ביצוע, ניתוח זיכרון באמצעות Java heap dumps ותמונות מצב של זיכרון מקומי. הכלי מאפשר למפתחים ליצור פרופילים של גרסאות ייצור, להעלות קבצים של נתוני מעקב לאחסון חיצוני ולבדוק אותם בממשק המשתמש של כלי הניתוח של נתוני המעקב Perfetto. כספק SaaS, Datadog מעלה, מציגה ומנתחת את הפרופילים האלה שנאספים באמצעות ה-SDK שלה, ומספקת תצוגה מאוחדת של תקינות האפליקציה.
ה-API של ProfilingManager מאפשר ל-Datadog וללקוחות שלה לעקוב באופן יזום אחרי רגרסיות מורכבות בביצועים של Android, לחקור אותן ולתקן אותן, באמצעות ריכוז של טלמטריה באיכות גבוהה ב-API מאוחד של יכולת צפייה. ה-API הזה מספק יתרונות טכניים חשובים:
- ניתוח מפורט של סשנים: הכלי ProfilingManager משפר את יכולות הניפוי באגים על ידי אספקת נתוני מעקב ישירים ברמת מערכת ההפעלה, וכך מתגבר על האתגרים של חשיפה והתאמה שמאפיינים בדרך כלל רישום מותאם אישית ביומן עם שירותי מערכת. כדי לבצע ניתוח מעמיק יותר, מפתחים יכולים להוריד את נתוני המעקב האלה מ-Datadog ולבדוק אותם לעומק בכלי ויזואליזציה כמו Perfetto UI.
- טריגרים אוטומטיים של טלמטריה: השימוש באירועים מקוריים של המערכת כדי להתחיל הקלטות של עקבות בנקודות אופטימיזציה מרכזיות, מצמצם את הצורך בבניית לוגיקה מותאמת אישית לאיסוף נתונים. בשלב הראשון, ההשקה מתמקדת באות APP_FULLY_DRAWN, אבל כבר יש תוכניות להרחיב את יכולת הצפייה הזו כך שתכלול טריגרים של ANR, OOM ו-COLD_START.
- תמונות מצב פרואקטיביות של מעקב: הכלי ProfilingManager מתקשר ישירות עם שירות Perfetto ברמת המערכת (traced), ומשתמש במודל פרואקטיבי של הקלטה ברקע שנועד לזהות בעיות בלתי צפויות. כך המפתחים מקבלים תצוגה חזותית מדויקת של האירועים שהובילו לאנומליה בביצועים, ורמת התובנות שהם מקבלים גבוהה יותר מזו שאפשר לקבל באמצעות הגדרה ידנית של כלי המדידה.
- זיהוי צווארי בקבוק בהיקף נרחב: Datadog יכולה לסנתז טלמטריה מכל בסיס הלקוחות הגלובלי של Datadog כדי לגלות רגרסיות שמופיעות רק בתצורות חומרה ייחודיות ובסביבות רשת משתנות.
- יציבות המשאבים שנאכפת על ידי המערכת: ה-API משתמש באיסוף דגימות של נתוני מעקב כדי לוודא שההשפעות על הביצועים ועל חוויית המשתמש לא מורגשות.
- אמצעי בקרה על נתונים במכשיר: הכלי ProfilingManager מסנן מידע לא רלוונטי מתהליכים אחרים במכשיר לפני שהפרופיל מועבר לאפליקציה. כך מצמצמים את גודל הקבצים ומבטיחים שרק נתונים שרלוונטיים לתהליכים של האפליקציה יסופקו.
עיבוד של מיליוני פרופילים מדי שבוע כדי לבצע אופטימיזציה של אפליקציות בעולם האמיתי
שילוב של API ליצירת פרופילים ברמת המערכת ב-SDK גלובלי למעקב דרש פתרון של בעיות בתשתית. מכיוון ש-ProfilingManager יוצר יומני מעקב מפורטים מאוד של ביצועים, צוות ההנדסה של Datadog נאלץ לבנות צינור שיכול לנתח את הפרופילים האלה בצד השרת בקנה מידה גדול. בנוסף לאיסוף פרופילים, ב-Datadog מדגישים גם את החשיבות של איזון בין תדירות הדגימה לבין איסוף מספיק נתונים כדי ליצור תובנות משמעותיות לגבי האפליקציה. Datadog מסתמכת על הגבלת הקצב המובנית של ProfilingManager כאמצעי קריטי לשמירה על יציבות, כדי למנוע ממכשירים של משתמשים להיענות לבקשות טלמטריה מוגזמות.
הצוות יצר פרופילים של אפליקציית Android המקורית של Datadog ושל מספר אפליקציות של משתמשים מוקדמים במשך חודשים, ואסף מיליוני פרופילים כדי להבטיח חוויית השקה מהירה וללא שגיאות, וכדי לשפר את האלגוריתמים לזיהוי ביצועים. היום, השילוב של ההפקה מתרחב בצורה חלקה למגוון מכשירי Android.
סיכום
באמצעות שילוב של Android ProfilingManager API, Datadog הצליחה לספק ללקוחות שלה שקיפות מלאה בין מערכות ה-Backend לבין אפליקציות הלקוח לנייד. Datadog מעבדת מיליוני פרופילים מדי שבוע עם תקורה זניחה במכשיר, ומספקת למפתחי Android תובנות ברמת הקוד שדרושות לאבחון מיידי של באגים מורכבים בביצועים. כך המפתחים יכולים ליצור אפליקציות חלקות יותר ולשפר את אותות הביצועים של האפליקציה שלהם בחנות Play. כדי להטמיע את ProfilingManager API ישירות במסגרת של ניתוח ביצועים, אפשר לעיין במסמכי העזרה.
בעתיד, Datadog מתכננת להפוך את נתוני הפרופילים של Android לקלט חשוב לסוכני קידוד, כדי לפתור באופן אוטונומי צווארי בקבוק בביצועים ולסגור את לולאת המשוב בין זיהוי לתיקון. חברת Datadog פועלת כדי להרחיב את הגישה של מפתחים לפרופילים של Android.
כדי להתחיל להשתמש בתכונה Datadog real user monitoring (מעקב אחרי משתמשים אמיתיים) שמבוססת על ProfilingManager, אפשר לעבור אל Datadog Mobile Real User Monitoring.
-
Case Studiesאפליקציית Karrot היא זירת מסחר מקומית מאוד, מבוססת-קהילה, שמאפשרת למשתמשים לקנות, למכור ולהחליף פריטים עם משתמשים מאומתים אחרים. מאז ההשקה בקוריאה הדרומית בשנת 2015, הפלטפורמה התרחבה לשווקים גלובליים וצברה יותר מ-43 מיליון משתמשים רשומים.
Thomas Ezan, Tracy Agyemang • משך הקריאה: 2 דקות -
Case Studiesהצוות יצר בסיס קוד של ממשק משתמש מבוסס-AI, שהוא קטן ב-50% מההטמעה המקורית, ובו בזמן השיג קיצור של 35% בזמן הביצוע של סוכן ה-AI, 32% פחות אינטראקציות בין מהנדס לסוכן וחיסכון של 33% בעלות האסימונים.
Pavlo Stavytskyi, Rebecca Franks • משך הקריאה: 11 דקות -
Case Studiesוואטסאפ היא פלטפורמת המסרים הגדולה בעולם, עם מיליארדי משתמשים ברחבי העולם. זהו כלי התקשורת שברירת המחדל שלו היא הצפנה מקצה לקצה, והוא מאפשר לאנשים באזורים שונים לתקשר ביניהם בצורה פרטית, אמינה ומאובטחת.
Niharika Arora, Tracy Agyemang, Mayank Jain • משך הקריאה: 8 דקות
רוצים לקבל טיפים עדכניים לפיתוח Android ישירות לאימייל כל שבוע?