מקרים לדוגמה

‫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 השתמשו במעקבי שדה כדי לבדוק למה זמני ההפעלה הראשונית היו איטיים יותר בחומרה חדשה וחזקה יותר. המהנדס התעמק בעקבות שנאספו בשטח והשווה בין עקבות בסוגי מכשירים שונים, וכך גילה בעיה נסתרת בתזמון: שירות המרת טקסט לדיבור (TTS) שפועל ברקע הופעל מראש שלא לצורך במהלך הפעלת האפליקציה. המעקבים חשפו שהתהליך ברקע הזה השתלט על ליבת המעבד (CPU) הגדולה עם הביצועים הכי טובים במכשיר, ואילץ את ה-thread הראשי של האפליקציה לעבור למצב שינה בזמן שהחימום המוקדם התרחש.

איך פותרים את האתגר של הרשאות הגישה ברמת הקוד ב-Android

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

AANDDM_DataDog_Quote_02.png

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

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

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

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

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

datadog-profiling-blogpost-final.png
דוגמה למדידת הזמן עד לתצוגה הראשונית ב-Datadog באמצעות דגימת מחסנית שמופעלת על ידי ProfilingManager

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

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

סיכום

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

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

כדי להתחיל להשתמש בתכונה Datadog Real User Monitoring שמופעלת על ידי ProfilingManager, צריך להיכנס אל Datadog Mobile Real User Monitoring.

כותב/ת המסמך:
להמשך קריאה