הגדרת אפליקציה לניטור אפליקציות

אתם יכולים להגדיר את האפליקציה ב-App Hub כך ש-Google Cloud Observability תצרף תוויות ספציפיות לאפליקציה למדדים ולנתוני המעקב שהאפליקציה יוצרת. בעומסי עבודה שפועלים ב-Google Kubernetes Engine, אפשר גם לייצא מדד של שרת OpenTelemetry HTTP שמשמש את Application Monitoring כדי לדווח על רמת התנועה, שיעור השגיאות בחיבור לשרת והזמן שלוקח לבקשות HTTP להגיע ליעד.

מידע על תוויות ספציפיות לאפליקציות

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

בקטע הזה, a.b.{x,y} מתייחס ל-a.b.x ול-a.b.y.

נתוני המדדים מהכלים שהוספתם לאפליקציות יכולים לכלול את תוויות המדדים הבאות:

  • metric.labels.apphub_application_{container,id,location}
  • metric.labels.apphub_workload_{criticality_type,environment_type,id}

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

  • gcp.apphub.application.{container,id,location}
  • gcp.apphub.{workload,service}.{criticality_type,environment_type,id}

מידע על מדדי שרת HTTP ב-OpenTelemetry

אין מדדי מערכת לעומסי עבודה שפועלים ב-Google Kubernetes Engine שיכולים לדווח על רמת התנועה, שיעור השגיאות בחיבור לשרת או זמן האחזור של בקשות HTTP. עם זאת, אפשר להפיק את הערכים של האותות האלה מהמדד http.server.request.duration, שנאסף באופן אוטומטי על ידי ספריית צד הלקוח ב-HTTP של OpenTelemetry.

הכלי לייצוא נתונים של googlemanagedprometheus ממיר את המדד של http.server.request.duration ב-OpenTelemetry למדד של Prometheus עם המאפיינים הבאים:

  • שם: prometheus/http_server_request_duration_seconds/histogram
  • מדד: prometheus.googleapis.com/http_server_request_duration_seconds/histogram
  • סוגי המשאבים: prometheus_target
  • יחידה: s
  • סוג: CUMULATIVE
  • סוג הערך: DISTRIBUTION

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

כדי ללמוד איך להגדיר את האפליקציה לייצוא המדד http_server_request_duration_seconds, קראו את הקטע שימוש ב-OpenTelemetry ב-Kubernetes במאמר הזה.

הוספת תוויות של אפליקציות לנתוני מדדים

כדי לזהות את המקור של מדדי Prometheus, המערכת של Google Cloud Observability משווה בין המאפיינים שמצורפים למדדי Prometheus שנשלחים לפרויקט לבין הנתונים שמוחזרים מ-App Hub API. בהמשך מפורטות ההגדרות שמאפשרות ל-Google Cloud Observability לזהות את האפליקציה ב-App Hub.

שימוש ב-OpenTelemetry ב-Kubernetes

כדי ש-Google Cloud Observability יצרף תוויות של אפליקציות לנתוני המדדים שנוצרו על ידי עומסי העבודה של האפליקציה שפועלים ב-Google Kubernetes Engine, צריך לבצע את הפעולות הבאות:

  1. שדרוג האפליקציה באמצעות OpenTelemetry.

  2. פורסים את ה-Collector של Google או את OpenTelemetry Collector, ומגדירים את ה-Collector באופן הבא:

    • ייצוא נתוני מדדים באמצעות הכלי לייצוא של googlemanagedprometheus.
    • מגדירים את המעבד (processor) k8sattributes כדי לחלץ מטא-נתונים, כמו namespace, מהסביבה.
    • מגדירים את המעבד (processor) של transform/collision כדי להגדיר את המאפיינים project_id,‏ location,‏ cluster ו-namespace.
    • מגדירים את המעבד transform/aco-gke כדי לאכלס את התוויות top_level_controller_name ו-top_level_controller_type.

    לדוגמה, ראו את otlp-k8s-ingest/config/collector.yaml, שהוא קובץ התצורה של Collector שנוצר על ידי Google. למידע נוסף על הכלי הזה, קראו את המאמר פריסת Google-Built OpenTelemetry Collector ב-GKE.

  3. רושמים את עומסי העבודה של האפליקציה ב-App Hub.

שימוש בשירות המנוהל של Google Cloud ל-Prometheus ב-GKE

כדי ש-Google Cloud Observability יצרף תוויות של אפליקציות לנתוני המדדים שנוצרו על ידי עומסי העבודה של האפליקציה שפועלים באשכולות של Google Kubernetes Engine, צריך לבצע את הפעולות הבאות:

  1. משתמשים בשירות המנוהל של Google Cloud ל-Prometheus עם איסוף מנוהל.

  2. פורסים את עומסי העבודה באשכול Google Kubernetes Engine בגרסה 1.32.1-gke.1439000 לפחות.

  3. רושמים את עומסי העבודה של האפליקציה ב-App Hub.

השירות המנוהל של Google Cloud ל-Prometheus מזהה את הערכים של תוויות האפליקציה באמצעות המטא-נתונים של זיהוי השירותים, ואז מוסיף את התוויות של top_level_controller_{name,type} ל-targetLabels.metadata. במהלך הטמעת המדדים, Google Cloud Observability משתמש בתוויות top_level_controller_{name,type} וב-App Hub API כדי לזהות את האפליקציה ב-App Hub ולהוסיף את התוויות המתאימות לנתוני המדדים.

שימוש ב-Cloud Run

כדי ש-Google Cloud Observability יצרף תוויות של אפליקציות לנתוני המדדים שנוצרו על ידי עומסי העבודה ב-Cloud Run, צריך לבצע את הפעולות הבאות:

  1. הוספת כלים לאפליקציה באמצעות OpenTelemetry או קובץ העזר של השירות המנוהל ל-Prometheus ב-Cloud Run. מידע נוסף על הגישות האלה זמין במאמרים הבאים:

  2. רושמים את עומסי העבודה של האפליקציה ב-App Hub.

אימות תוויות של מדדים

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

  1. מוודאים שהאפליקציה שולחת לפרויקט מדדים של Prometheus:
    1. במסוף Google Cloud , נכנסים לדף  Metrics explorer:

      כניסה לדף Metrics Explorer

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

    2. בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט ב- Google Cloud . בהגדרות של App Hub, בוחרים את הפרויקט המארח של App Hub או את הפרויקט לניהול של התיקייה לניהול אפליקציות.
    3. ברכיב Metric, מרחיבים את התפריט Select a metric, מזינים Prometheus Target בסרגל הסינון ומשתמשים בתפריטי המשנה כדי לבחור את סוג המשאב הספציפי ואת המדד:
      1. בתפריט Active resources בוחרים באפשרות Prometheus Target.
      2. כדי לבחור מדד, משתמשים בתפריטים Active metric categories ו-Active metrics.
      3. לוחצים על אישור.
    4. כדי להוסיף מסננים שמסירים סדרות זמנים מתוצאות השאילתה, משתמשים ברכיב Filter.

    5. מגדירים את אופן התצוגה של הנתונים.

      כדי לראות את התוויות, מרחיבים את התפריט מסנן. כל רשומה בתפריט סינון תואמת לתווית.

      מידע נוסף על הגדרת תרשים זמין במאמר איך בוחרים מדדים כשמשתמשים ב-Metrics Explorer.

    אם לא מופיעים מדדי Prometheus, צריך לבדוק את ההגדרות האישיות.

אם המדדים של Prometheus לא מכילים תוויות של אפליקציות:

  1. מוודאים שרשמתם את עומס העבודה או השירות ב-App Hub.

  2. בודקים את היומנים כדי לראות אם יש שגיאות.

    לדוגמה, אם אתם פורסים את OpenTelemetry Collector או את Google-built Collector ופועלים ב-Google Kubernetes Engine, אתם יכולים לבצע את הפעולות הבאות:

    1. נכנסים לדף Workloads במסוף Google Cloud :

      נכנסים לדף Workloads.

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

    2. בוחרים את פריסת ה-collector ולוחצים על הכרטיסייה Logs.
  3. אם אתם משתמשים ב-OpenTelemetry Collector או ב-Collector שנוצר על ידי Google, בדקו את ההגדרות של ה-Collector. ה-collector צריך לבצע את הפעולות הבאות:

    • ייצוא נתוני מדדים באמצעות הכלי לייצוא של googlemanagedprometheus.
    • מגדירים את המעבד (processor) k8sattributes כדי לחלץ מטא-נתונים, כמו namespace, מהסביבה.
    • מגדירים את המעבד (processor) של transform/collision כדי להגדיר את המאפיינים project_id,‏ location,‏ cluster ו-namespace.
    • מגדירים את המעבד transform/aco-gke כדי לאכלס את התוויות top_level_controller_name ו-top_level_controller_type.

    לדוגמה, אפשר לעיין בקובץ התצורה של Collector שנוצר על ידי Google: otlp-k8s-ingest/config/collector.yaml.

הוספת מאפייני אפליקציה לטווחים של מעקב

אתם לא משתמשים באפליקציה בכלים כך שמאפיינים ספציפיים לאפליקציה מצורפים לטווחים שנשלחים לפרויקט Google Cloud . במקום זאת, Google Cloud Observability משתמש במאפייני משאבים של OpenTelemetry וב-App Hub API כדי לזהות את האפליקציה ב-App Hub שמשויכת לטווח, ואז מוסיף את המאפיינים הספציפיים לאפליקציה לפני אחסון הטווח.

כדי ש-Google Cloud Observability יצרף מאפייני משאבים ספציפיים לאפליקציה לנתוני המעקב שנוצרו על ידי השירותים ועומסי העבודה של האפליקציה, צריך לבצע את הפעולות הבאות:

מידע נוסף על המאפיינים האלה זמין במאמר Google Cloud מוסכמות סמנטיות של App Hub.

מאפייני חובה

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

מאפיינים שמזהים את הפרויקט ואת מיקום המשאב

מגדירים את המאפיינים הבאים:

  • ‫cloud.provider: מוגדר לערך "gcp".
  • ‫cloud.account.id: מזהה הפרויקט.
  • ‫cloud.availability_zone או cloud.region: האזור או התחום שבהם נמצאים המשאבים. אפשר להגדיר את שני המאפיינים.

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

מאפיינים של עומסי עבודה ב-Google Kubernetes Engine

בעומס עבודה של Google Kubernetes Engine, מגדירים את ה-collector או את הכלים כך שיבצעו את הפעולות הבאות:

  • מחלצים מהסביבה מטא-נתונים, כמו namespace.
  • חילוץ מטא-נתונים רלוונטיים מהמעבד (processor) של k8sattributes.
  • מגדירים את המאפיינים project_id,‏ location,‏ cluster ו-namespace למדדים.
  • מגדירים את התוויות top_level_controller_name ו-top_level_controller_type למדדים.

דוגמה שמבוססת על אוסף מופיעה במאמר otlp-k8s-ingest/config/collector.yaml. האוסף הזה משתמש במעבד k8sattributesprocessor.

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

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

  • gcp.gce.instance_group_manager.name
  • gcp.gce.instance_group_manager.region או gcp.gce.instance_group_manager.zone