ניטור ביצועים של השקות תכונות

1. סקירה כללית

ב-codelab זה, תלמד כיצד לנטר את ביצועי האפליקציה שלך במהלך השקת תכונות. לאפליקציה לדוגמה שלנו תהיה פונקציונליות בסיסית, והיא מוגדרת להצגת תמונת רקע שונה המבוססת על דגל Firebase Remote Config. נעבור על עקבות מכשור לניטור ביצועי האפליקציה, נפיץ שינוי תצורה באפליקציה, ננטר את ההשפעה ונראה כיצד נוכל לשפר את הביצועים.

מה תלמד

  • כיצד להוסיף ניטור ביצועים של Firebase לאפליקציה לנייד שלך כדי לקבל מדדים מחוץ לקופסה (כמו שעת התחלת האפליקציה ופרימים איטיים או קפואים)
  • כיצד להוסיף עקבות מותאמות אישית כדי להבין נתיבי קוד קריטיים של מסעות המשתמש שלך
  • כיצד להשתמש בלוח המחוונים של ניטור הביצועים כדי להבין את המדדים שלך ולעקוב אחר שינויים חשובים כמו השקת תכונה
  • כיצד להגדיר התראות ביצועים למעקב אחר מדדי המפתח שלך
  • כיצד להפעיל שינוי בתצורה מרחוק של Firebase

דרישות מוקדמות

  • Android Studio 4.0 ומעלה
  • אמולטור אנדרואיד עם API ברמה 16 ומעלה.
  • Java גרסה 8 ומעלה
  • הבנה בסיסית של Firebase Remote Config

2. הגדר את הפרויקט לדוגמה

הורד את הקוד

הפעל את הפקודה הבאה כדי לשכפל את הקוד לדוגמה עבור מעבדת קוד זה. פעולה זו תיצור תיקייה בשם codelab-perf-rc-android במחשב שלך:

$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git

אם אין לך Git במחשב שלך, אתה יכול גם להוריד את הקוד ישירות מ-GitHub.

ייבא את הפרויקט תחת התיקיה firebase-perf-rc-android-start אל Android Studio. סביר להניח שתראה כמה חריגים בזמן ריצה או אולי אזהרה לגבי קובץ google-services.json חסר. נתקן זאת בסעיף הבא.

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

חבר את האפליקציה שלך ל-Firebase

  1. עבור אל Android Studio / עזרה > בדוק אם קיימים עדכונים כדי לוודא שאתה משתמש בגרסאות האחרונות של Android Studio וב-Firebase Assistant.
  2. בחר כלים > Firebase כדי לפתוח את חלונית ה- Assistant .

c0e42ef063d21eab.png

  1. בחר ניטור ביצועים כדי להוסיף לאפליקציה שלך, ולאחר מכן לחץ על התחל עם ניטור ביצועים .
  2. לחץ על התחבר ל-Firebase כדי לחבר את פרויקט האנדרואיד שלך ל-Firebase (פעולה זו תפתח את קונסולת Firebase בדפדפן שלך) .
  3. במסוף Firebase, לחץ על הוסף פרוייקט ולאחר מכן הזן שם פרוייקט Firebase (אם כבר יש לך פרוייקט Firebase, תוכל לבחור את הפרויקט הקיים במקום זאת) . לחץ על המשך וקבל את התנאים כדי ליצור את פרויקט Firebase ואפליקציית Firebase חדשה.

לאחר מכן, אתה אמור לראות תיבת דו-שיח לחיבור אפליקציית Firebase החדשה שלך לפרויקט Android Studio שלך.

51a549ebde2fe57a.png

  1. לחץ על התחבר .
  2. פתח את Android Studio. בחלונית Assistant , תראה את האישור שהאפליקציה שלך מחוברת ל-Firebase.

40c24c4a56a45990.png

הוסף ניטור ביצועים לאפליקציה שלך

בחלונית Assistant ב-Android Studio, לחץ על הוסף ניטור ביצועים לאפליקציה שלך .

אתה אמור לראות תיבת דו-שיח ל'קבל שינויים ' שלאחריה Android Studio אמור לסנכרן את האפליקציה שלך כדי להבטיח שכל התלות הדרושות נוספו.

3046f3e1f5fea06f.png

לבסוף, אתה אמור לראות את הודעת ההצלחה בחלונית ה- Assistant ב-Android Studio שכל התלות מוגדרת כהלכה.

62e79fd18780e320.png

כשלב נוסף, הפעל רישום ניפוי באגים על ידי ביצוע ההוראות בשלב "(אופציונלי) הפעל רישום באגים". אותן הוראות זמינות גם בתיעוד הציבורי .

3. הפעל את האפליקציה

כעת אתה אמור לראות את הקובץ google-services.json בספריית המודול (ברמת האפליקציה) של האפליקציה שלך, והאפליקציה שלך אמורה כעת להדר. ב-Android Studio, לחץ על הפעלה > הפעל 'אפליקציה' כדי לבנות ולהפעיל את האפליקציה באמולטור Android שלך.

כאשר האפליקציה פועלת, תחילה עליך לראות מסך פתיחה כזה:

ffbd413a6983b205.png

לאחר מכן, לאחר מספר שניות, העמוד הראשי עם תמונת ברירת המחדל יוצג:

d946cab0df319e50.png

מה קורה מתחת למכסה המנוע?

מסך הפתיחה מיושם ב- SplashScreenActivity ועושה את הפעולות הבאות:

  1. ב- onCreate() , אנו מאתחלים את ההגדרות של Firebase Remote Config ומביאים את ערכי התצורה שתגדירו בלוח המחוונים של Remote Config בהמשך מעבדת הקוד הזה.
  2. ב- executeTasksBasedOnRC() , אנו קוראים את ערך התצורה של הדגל seasonal_image_url . אם כתובת URL מסופקת על ידי ערך התצורה, אנו מורידים את התמונה באופן סינכרוני.
  3. לאחר השלמת ההורדה, האפליקציה מנווטת ל- MainActivity וקוראת ל- finish() כדי לסיים את SplashScreenActivity .

ב- MainActivity , אם seasonal_image_url url מוגדרת דרך Config מרחוק, התכונה תופעל והתמונה שהורדת תוצג כרקע של העמוד הראשי. אחרת, תמונת ברירת המחדל (המוצגת למעלה) תוצג.

4. הגדר תצורה מרוחקת

כעת כשהאפליקציה שלך פועלת, אתה יכול להגדיר את דגל התכונה החדש.

  1. בחלונית השמאלית של מסוף Firebase , אתר את הקטע Engage ולאחר מכן לחץ על Remote Config .
  2. לחץ על הלחצן צור תצורה כדי לפתוח את טופס התצורה ולהוסיף seasonal_image_url כמפתח הפרמטר.
  3. לחץ על הוסף תיאור , ולאחר מכן הזן את התיאור הזה: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. לחץ על הוסף חדש -> ערך מותנה -> צור תנאי חדש .
  5. עבור שם התנאי, הזן Seasonal image rollout .
  6. עבור הקטע Applies if... , בחר User in random percentile <= 0% . (אתה רוצה להשאיר את התכונה מושבתת עד שתהיה מוכן להפעלה בשלב מאוחר יותר.)
  7. לחץ על צור תנאי . אתה תשתמש בתנאי זה מאוחר יותר כדי להפיץ את התכונה החדשה למשתמשים שלך.

7a07526eb9e81623.png

  1. פתח את הטופס צור את הפרמטר הראשון שלך ואתר את השדה ערך עבור השקת תמונה עונתית . הזן את כתובת האתר שבה תוורד התמונה העונתית: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. השאר את ערך ברירת המחדל כמחרוזת ריקה. המשמעות היא שתמונת ברירת המחדל בבסיס הקוד תוצג במקום תמונה שהורדה מכתובת אתר.
  3. לחץ על שמור .

99e6cd2ebcdced.png

אתה יכול לראות שהתצורה החדשה נוצרת כטיוטה.

  1. לחץ על פרסם שינויים ואשר את השינויים בחלק העליון כדי לעדכן את האפליקציה שלך.

39cd3e96d370c7ce.png

5. הוסף ניטור לזמן טעינת הנתונים

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

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

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

  1. אתחול, צור והתחל מעקב קוד מותאם אישית בשם splash_screen_trace :

SplashScreenActivity.java

// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...

public class SplashScreenActivity extends AppCompatActivity {

    private static final String TAG = "SplashScreenActivity";
    private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";

    // TODO: Initialize splash_screen_trace
    private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
    
    // ...
}
  1. סיים את המעקב בשיטת onDestroy() של SplashScreenActivity :

SplashScreenActivity.java

@Override
protected void onDestroy() {
    super.onDestroy();

    // TODO: Stop the splash_screen_trace here
    splashScreenTrace.stop();
}

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

  1. אתחול, צור והתחל מעקב קוד מותאם אישית בשם splash_seasonal_image_processing :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    if (!seasonalImageUrl.isEmpty()) {
        // TODO: Start the splash_seasonal_image_processing here
        final Trace seasonalImageProcessingTrace = FirebasePerformance
            .startTrace("splash_seasonal_image_processing");

        // ...
    }
}
  1. סיים את המעקב onLoadFailed() ו- onResourceReady() של ה- RequestListener :

SplashScreenActivity.java

Glide.with(SplashScreenActivity.this.getApplicationContext())
    .asBitmap()
    .load(seasonalImageUrl)
    .signature(new ObjectKey(Utils.getCacheUUID()))
    .listener(new RequestListener<Bitmap>() {
        @Override
        public boolean onLoadFailed(
            @Nullable GlideException e,
            Object model, Target<Bitmap> target,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }

        @Override
        public boolean onResourceReady(Bitmap resource, Object model,
            Target<Bitmap> target, DataSource dataSource,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }
     })
     .preload();

כעת, לאחר שהוספת מעקבי קוד מותאמים אישית כדי לעקוב אחר משך מסך הפתיחה ( splash_screen_trace) וזמן העיבוד של התכונה החדשה ( splash_seasonal_image_processing ), הפעל שוב את האפליקציה ב- Android Studio. אתה אמור לראות הודעת Logging trace metric: splash_screen_trace , ואחריו משך המעקב. לא תראה הודעת יומן עבור splash_seasonal_image_processing מכיוון שעדיין לא הפעלת את התכונה החדשה.

6. הוסף תכונה מותאמת אישית למעקב

עבור מעקבי קוד מותאם אישית, ניטור ביצועים רושם אוטומטית את מאפייני ברירת המחדל (מטא נתונים נפוצים כמו גרסת אפליקציה, מדינה, מכשיר וכו') כך שתוכל לסנן את הנתונים עבור המעקב במסוף Firebase . אתה יכול גם להוסיף ולנטר תכונות מותאמות אישית .

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

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

  1. הוסף את התכונה המותאמת אישית ( seasonal_image_url_attribute ) עבור splash_screen_trace בתחילת שיטת executeTasksBasedOnRC :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
    if (seasonalImageUrl.isEmpty()) {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
    } else {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
    }

    // ...
}
  1. הוסף את אותה תכונה מותאמת אישית עבור splash_seasonal_image_processing מיד לאחר startTrace("splash_seasonal_image_processing") :

SplashScreenActivity.java

if (!seasonalImageUrl.isEmpty()) {
    // TODO: Start the splash_seasonal_image_processing here
    final Trace seasonalImageProcessingTrace = FirebasePerformance
        .startTrace("splash_seasonal_image_processing");

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
    seasonalImageProcessingTrace
        .putAttribute("seasonal_image_url_attribute", seasonalImageUrl);

    // ...
}

כעת, לאחר שהוספת מאפיין מותאם אישית ( seasonal_image_url_attribute ) עבור שני העקבות המותאמות אישית שלך ( splash_screen_trace ו- splash_seasonal_image_processing ), הפעל שוב את האפליקציה ב-Android Studio. אתה אמור לראות הודעת רישום המכילה Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. עדיין לא הפעלת את הפרמטר Remote Config seasonalImageUrl וזו הסיבה שערך התכונה unset .

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

7. הגדר את לוח המחוונים ניטור הביצועים שלך

הגדר את לוח המחוונים שלך כדי לפקח על התכונה שלך

במסוף Firebase , בחר את הפרויקט הכולל את אפליקציית Friendly Eats שלך.

בחלונית השמאלית, אתר את הקטע שחרור וניטור ולאחר מכן לחץ על ביצועים .

אתה אמור לראות את לוח המחוונים הביצועים שלך עם נקודות הנתונים הראשונות שלך בלוח המדדים שלך! ה-SDK לניטור ביצועים אוסף נתוני ביצועים מהאפליקציה שלך ומציג אותם תוך דקות מרגע האיסוף.

f57e5450b70034c9.png

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

  1. לחץ על אחת מהתיבות הריקות בחר מדד .
  2. בחלון הדו-שיח, בחר את סוג המעקב של עקבות מותאמות אישית ואת שם המעקב splash_screen_trace .

1fb81f4dba3220e0.png

  1. לחץ על בחר מדד , ואתה אמור לראות את משך הזמן של הוספת splash_screen_trace ללוח המחוונים שלך!

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

1d465c021e58da3b.png

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

8. הפעל את התכונה שלך

כעת, לאחר שהגדרת את הניטור שלך, אתה מוכן להפעיל את השינוי בתצורת Firebase Remote Config ( seasonal_image_url) שהגדרת קודם לכן.

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

  1. לחץ על הכרטיסייה תנאים בחלק העליון של הדף.
  2. לחץ על תנאי Seasonal image rollout שהוספת קודם לכן.
  3. שנה את האחוזון ל-100%.
  4. לחץ על שמור תנאי .
  5. לחץ על פרסם שינויים ואשר את השינויים.

70f993502b27e7a0.png

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

b0cc91b6e48fb842.png

9. בדוק שינויים בביצועים

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

  1. בכרטיסייה הראשית של לוח המחוונים , גלול מטה לטבלת העקבות ולאחר מכן לחץ על הכרטיסייה מעקבים מותאמים אישית . בטבלה זו תראה את מעקבי הקוד המותאמים אישית שהוספת קודם לכן בתוספת כמה מעקבים מהקופסה .
  2. כעת לאחר שהפעלת את התכונה החדשה, חפש את הקוד המותאם אישית splash_seasonal_image_processing , אשר מדד את הזמן שנדרש להורדה ועיבוד התמונה. מערך Duration של המעקב, אתה יכול לראות שההורדה והעיבוד הזה לוקחים פרק זמן משמעותי.

439adc3ec71805b7.png

  1. מכיוון שיש לך נתונים עבור splash_seasonal_image_processing , אתה יכול להוסיף את משך המעקב הזה ללוח המדדים שלך בחלק העליון של הכרטיסייה Dashboard .

בדומה לקודם, לחץ על אחת מהתיבות הריקות בחר מדד . בחלון הדו-שיח, בחר את סוג המעקב עקבות מותאמות אישית ואת שם המעקב splash_seasonal_image_processing . לבסוף, לחץ על בחר מדד כדי להוסיף מדד זה ללוח המדדים.

7fb64d2340410576.png

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

b1c275c30679062a.png

  1. בדף הפרטים, תראה רשימה של מאפיינים בצד ימין למטה, כולל התכונה המותאמת אישית שיצרת קודם לכן. לחץ על המאפיין המותאם אישית seasonal_image_url_attribute כדי להציג את משך מסך הפתיחה עבור כל כתובת אתר של תמונה עונתית מימין:

8fa1a69019bb045e.png

  1. ערכי משך מסך הפתיחה שלך כנראה יהיו מעט שונים מאלה בצילום המסך למעלה, אך אמור להיות לך משך זמן ארוך יותר כאשר התמונה יורדת מכתובת אתר לעומת שימוש בתמונת ברירת המחדל (מיוצגת על ידי "לא מוגדר").

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

  1. לחץ על ביצועים בחלק העליון של הדף כדי לחזור לכרטיסייה הראשית של לוח המחוונים : 640b696b79d90103.png
  2. בטבלת העקבות בתחתית העמוד, לחץ על הכרטיסייה בקשות רשת . בטבלה זו, תראה את כל בקשות הרשת מהאפליקציה שלך מצטברות לדפוסי כתובות אתרים , כולל דפוס ה-URL של images.unsplash.com/** . אם משווים את הערך של זמן תגובה זה לזמן הכולל שלוקח להורדה ועיבוד התמונה (כלומר, משך המעקב אחר splash_seasonal_image_processing ), תוכל לראות שחלק גדול מהזמן מושקע בהורדת התמונה.

6f92ce0f23494507.png

ממצאי ביצועים

באמצעות ניטור ביצועים של Firebase, ראית את ההשפעה הבאה על משתמשי הקצה כשהתכונה החדשה מופעלת:

  1. הזמן שהושקע ב- SplashScreenActivity גדל.
  2. משך הזמן של splash_seasonal_image_processing היה גדול מאוד.
  3. העיכוב נבע מזמן התגובה להורדת התמונה ומזמן העיבוד המתאים הנדרש לתמונה.

בשלב הבא, תפחית את ההשפעה על הביצועים על ידי ביטול התכונה וזיהוי כיצד תוכל לשפר את היישום של התכונה.

10. החזר את התכונה לאחור

הגדלת זמן ההמתנה של המשתמשים שלך במהלך מסך הפתיחה אינה רצויה. אחד היתרונות העיקריים של Config מרחוק הוא היכולת להשהות ולהפוך את ההשקה ללא צורך לשחרר גרסה נוספת למשתמשים שלך. זה מאפשר לך להגיב במהירות לבעיות (כמו בעיות הביצועים שגילית בשלב האחרון) ולמזער את מספר המשתמשים הלא מרוצים.

כאמצעי הקלה מהירה, תאפס את אחוז ההשקה בחזרה ל 0 כך שכל המשתמשים שלך יראו שוב את תמונת ברירת המחדל:

  1. חזור לדף התצורה המרוחקת במסוף Firebase.
  2. לחץ על תנאים בראש העמוד.
  3. לחץ על תנאי Seasonal image rollout שהוספת קודם לכן.
  4. שנה את האחוזון ל -0%.
  5. לחץ על שמור תנאי .
  6. לחץ על פרסם שינויים ואשר את השינויים.

18c4f1cbac955a04.png

הפעל מחדש את האפליקציה ב-Android Studio, ואתה אמור לראות את המסך הראשי של המצב הריק המקורי:

d946cab0df319e50.png

11. תקן את בעיות הביצועים

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

גלגל שוב את הערך של Remote Config

  1. חזור לדף התצורה המרוחקת במסוף Firebase.
  2. לחץ על הסמל ערוך עבור הפרמטר seasonal_image_url .
  3. עדכן את השקת ה-Value for Seasonal Image ל- https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 ולאחר מכן לחץ על שמור .

828dd1951a2ec4a4.png

  1. לחץ על הכרטיסייה תנאים בראש העמוד.
  2. לחץ על השקת תמונה עונתית , ולאחר מכן הגדר את האחוזון בחזרה ל-100%.
  3. לחץ על שמור תנאי .

1974fa3bb789f36c.png

  1. לחץ על כפתור פרסם שינויים .

12. בדוק את התיקון והגדר התראות

הפעל את האפליקציה באופן מקומי

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

b0cc91b6e48fb842.png

הצג את ביצועי השינויים

חזור ללוח המחוונים של ביצועים במסוף Firebase כדי לראות איך המדדים נראים.

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

2d7aaca03112c062.png

  1. לחץ על המאפיין המותאם אישית seasonal_image_url_attribute כדי לראות שוב את הפירוט של המאפיינים המותאמים אישית. אם תרחף מעל כתובות האתרים, תראה ערך התואם לכתובת האתר החדשה של התמונה בגודל מצומצם: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 (עם ה- ?w=640 בסופו של דבר). ערך משך הזמן המשויך לתמונה זו קצר בהרבה מהערך של התמונה הקודמת ומקובל יותר על המשתמשים שלך!

10e30c037a4237a2.png

  1. כעת, לאחר ששיפרת את הביצועים של מסך הפתיחה שלך, תוכל להגדיר התראות שיודיעו לך כאשר מעקב חורג מסף שהגדרת. פתח את לוח המחוונים של ביצועים ולחץ על סמל תפריט ההצפה (שלוש נקודות) עבור splash_screen_trace ולחץ על הגדרות התראה .

4bd0a2a1faa14479.png

  1. לחץ על המתג כדי להפעיל את התראת משך . הגדר את ערך הסף להיות קצת מעל הערך שראית, כך שאם splash_screen_trace שלך ​​חורג מהסף, תקבל אימייל.
  1. לחץ על שמור כדי ליצור את ההתראה שלך. גלול מטה לטבלת העקבות ולאחר מכן לחץ על הכרטיסייה מעקבים מותאמים אישית כדי לראות שההתראה שלך מופעלת!

2bb93639e2218d1.png

13. מזל טוב!

מזל טוב! הפעלת את Firebase Performance Monitoring SDK ואספת עקבות כדי למדוד את הביצועים של תכונה חדשה! עקבת אחר מדדי ביצועים מרכזיים להשקת תכונה חדשה והגבת במהירות כאשר התגלתה בעיית ביצועים. כל זה היה אפשרי עם היכולת לבצע שינויים בתצורה עם Config מרחוק ולנטר בעיות ביצועים בזמן אמת.

מה שכיסינו

  • הוספת ה-SDK לניטור ביצועים של Firebase לאפליקציה שלך
  • הוספת מעקב קוד מותאם אישית לקוד שלך כדי למדוד תכונה ספציפית
  • הגדרת פרמטר Config מרחוק וערך מותנה לשליטה/השקה של תכונה חדשה
  • הבנה כיצד להשתמש בלוח המחוונים של ניטור הביצועים כדי לזהות בעיות במהלך השקה
  • הגדרת התראות ביצועים כדי להודיע ​​לך כאשר ביצועי האפליקציה שלך חוצים סף שהגדרת

למד עוד