הגדרת התראה על זמני פעילות

במדריך הזה נסביר איך להגדיר התראה על זמני פעילות עבור אפליקציית Python Hello World שפועלת בסביבה הגמישה של App Engine באמצעות Cloud Monitoring. התראות על זמן פעולה רציפה מאפשרות לכם לדעת מתי האפליקציה לא משרתת תנועה. אפשר גם להגדיר התראות על זמינות לאפליקציות שפועלות ב-Compute Engine או ב-Google Kubernetes Engine ‏ (GKE).

מטרות

  • מריצים אפליקציית Hello World בסיסית.
  • יוצרים בדיקת זמינות שעוקבת אחרי קוד הסטטוס HTTP '200' שמוחזר מהאפליקציה.
  • יוצרים התראה ששולחת לכם הודעת אימייל אם בדיקת זמני הפעילות נכשלת.
  • מפעילים מחדש את האפליקציה כדי להפעיל את ההתראה.

עלויות

התכונה 'מעקב' מוצעת כרגע למשתמשי בטא ללא תשלום.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

שיבוט של האפליקציה לדוגמה

אפליקציית הדוגמה זמינה ב-GitHub בכתובת GoogleCloudPlatform/getting-started-python.

  1. משכפלים את המאגר.

    git clone https://github.com/GoogleCloudPlatform/getting-started-python.git
    
  2. עוברים לספריית הדוגמאות.

    cd getting-started-python/gce
    
  3. האפליקציה מחזירה רק את המחרוזת Hello World!, לכן לא צריך להגדיר אותה ואפשר להפעיל אותה מיד.

    gcloud app deploy
    
  4. כדי לראות את ההודעה שהוחזרה, מזינים את כתובת ה-URL הבאה בדפדפן:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    מחליפים את מה שכתוב בשדות הבאים:

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

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

  1. במסוף Google Cloud , עוברים לדף  בדיקת זמני פעילות:

    לדף בדיקת זמני פעילות

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

  2. לוחצים על יצירת בדיקת זמינות.
  3. נותנים שם לבדיקה, כמו Check Hello World, ואז לוחצים על הבא.

  4. בקטע יעד מציינים מה צריך להיות בפיקוח של בדיקת הזמינות:

    1. מכיוון שפרסתם ב-App Engine, צריך לשנות את סוג המשאב ל-App Engine במקום ל-URL. (URL משמש ליצירת כתובת URL מותאמת אישית במכונה של Compute Engine).
    2. בוחרים את השירות שרוצים לעקוב אחרי זמני הפעילות שלו.
    3. משאירים את השדה Path (נתיב) ריק כדי להגדיר כברירת מחדל את דף האינדקס הראשי.
    4. משאירים את Check frequency בערך ברירת המחדל 1 minute.
    5. לוחצים על הבא.
  5. משאירים את ערכי ברירת המחדל בשדות Response Validation ולוחצים על Next.

  6. בקטע התראה והודעה, מציינים איך רוצים לקבל התראה אם מתרחשת התראה:

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

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

  7. לוחצים על יצירה. אם פעולת היצירה מצליחה, מוצגת ההודעה Check and alert created (הבדיקה וההתראה נוצרו), ואז מוצג דף לוח הבקרה Uptime checks (בדיקות זמני פעילות).

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

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

סימולציה של הפסקת שירות

אחרי שיוצרים את בדיקת הזמינות, אפשר לדמות הפסקת פעולה על ידי שינוי האפליקציה כך שתגיב עם שגיאת HTTP 404 Sorry, we can't find that page ולא עם תגובת HTTP 200 OK.

  1. בדוגמה הבאה אפשר לראות איפה אפליקציית Hello World מחזירה רק את ההודעה Hello World!, וקוד הסטטוס של התגובה מוגדר כברירת מחדל ל-200 OK. כדי לראות את הקוד הזה באפליקציית Hello World, משתמשים בפונקציית התצוגה.

    # Copyright 2019 Google LLC All Rights Reserved.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    from flask import Flask
    app = Flask(__name__)
    
    
    @app.route('/', methods=['GET'])
    def say_hello():
        return "Hello, world!"
    
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1', port=8080, debug=True)
    
  2. כדי לגרום לאפליקציית Hello World להחזיר קוד שגיאה מסוג HTTP 404, משנים את שורת ההחזרה על ידי הוספת ערך 404 לחלק השני של ערך ההחזרה.

    return 'Hello World', 404
  3. פורסים את האפליקציה החדשה, שכוללת באגים בכוונה.

    gcloud app deploy

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

הסרת המשאבים

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

הדרך הקלה ביותר לבטל את החיוב היא למחוק את הפרויקט שיצרתם בשביל המדריך.

כדי למחוק את הפרויקט:

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.