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

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

הדף הזה מיועד לקוראים שרוצים להבין לעומק את סדרות הזמן ואת ההטמעה של מודל המדדים של Cloud Monitoring, במיוחד לקוראים שמשתמשים ב-Monitoring API. הנתון כולל משתמשים במדדים מותאמים אישית (שמוגדרים על ידי המשתמש).

  • בדף הזה מוסבר איך מודל המדדים הכללי קשור ל-Cloud Monitoring API, ולכן הוא שימושי לכל מי שמשתמש ב-Monitoring API באופן ישיר. משתמשים שהאינטראקציה העיקרית שלהם היא עם מסוף Google Cloud , כנראה לא צריכים את רמת הפירוט הזו.

  • הוא שימושי גם לכל מי שמשתמש בשילוב עם צד שלישי כמו OpenTelemetry. כשנתונים ממקור חיצוני מגיעים ל-Cloud Monitoring דרך שילוב, הם ממופים למודל המדדים של Cloud Monitoring ומטופלים כמו כל נתוני מדדים אחרים.

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

בדיקה של מודל המדדים

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

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

  • קבוצה של נקודות נתונים עם חותמת זמן.
  • הפניה לסוג המדד שמסבירה איך לפרש את נקודות הנתונים.
  • הפניה למשאב במעקב שממנו הגיעו הנתונים.
Time series:

    Points: [(value1, time1), (value2, time2), ...]
    Metric type information: integer? incremental?
    Monitored resource: project? location? method?

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

דוגמה לסדרת זמנים

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

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "5106847938295940291",
          "zone": "us-central1-a",
          "project_id": "a-gcp-project"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
          "interval": {
            "startTime": "2019-12-20T20:25:38Z",
            "endTime": "2019-12-20T20:26:38Z"
          },
          "value": {
            "int64Value": "20"
          }
        }
      ]
    }

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

  • השדה metric מתעד

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

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

  • בשדה resource מתועד:

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

    מידע נוסף על השדה הזה מופיע במאמר בנושא אובייקטים של משאבים במעקב.

  • השדות metricKind ו-valueType מציינים איך לפרש את הערכים. מידע נוסף זמין במאמר סוגים וסוגים של מדדים.

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

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

בהמשך הדף הזה נבחן את המידע בשדות metric ו-resource בפירוט רב יותר.

משאבים במעקב

מערכת Cloud Monitoring אוספת נתונים ממשאבים במעקב ומתעדת אותם כסדרות זמן. כל סדרת זמן שנוצרת כוללת תיאור של המשאב במעקב שממנו נאספו הנתונים.

אובייקטים של משאבים במעקב

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

לדוגמה, הנה אובייקט monitored-resource שמתאר מכונה ספציפית של Compute Engine, שחולץ מסדרת הזמן לדוגמה:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "5106847938295940291",
          "zone": "us-central1-a",
          "project_id": "a-gcp-project"
        }
      }

המופע הזה של משאב במעקב הוא מסוג gce_instance, ויש לו ערך ספציפי instance_id (5106847938295940291) בפרויקט a-gcp-project. המופע ממוקם בארה"ב. יכול להיות שסדרת זמן אחרת תגיע ממופע אחר של המשאב הזה שנמצא במעקב. כל שילוב של ערכי תווית מזהה משאב ייחודי שממנו נאספים נתונים.

הגיוני להשתמש בקבוצות שונות של תוויות למשאבים שונים. קבוצת התוויות של משאב נקבעת על ידי מתאר המשאב במעקב עבור הסוג הזה.

מתארי משאבים במעקב

המידע על סוג של משאב במעקב נשמר במבנה נתונים שנקרא מתאר של משאב במעקב. הגדרה של מבנה הנתונים הזה מופיעה במאמר MonitoredResourceDescriptor.

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

{
  "type": "gce_instance",
  "displayName": "VM Instance",
  "description": "A virtual machine instance hosted in Compute Engine.",
  "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance"
  "labels": [
    {
      "key": "project_id",
      "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"."
    },
    {
      "key": "instance_id",
      "description": "The numeric VM instance identifier assigned by Compute Engine."
    },
    {
      "key": "zone",
      "description": "The Compute Engine zone in which the VM is running."
    }
  ],
}

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

אפשר לאחזר את המתארים של המשאבים שבמעקב בפרויקט Google Cloud באמצעות Cloud Monitoring API. לדוגמה, אפשר לעיין בדפי העזר של השיטות monitoredResourceDescriptors.list ו-monitoredResourceDescriptors.get.

דוגמה פעילה: אם יש לכם פרויקט Google Cloud , תוכלו לאחזר את תיאור ה-API הזה באמצעות הווידג'ט של APIs Explorer באופן הבא:

  1. פותחים את דף העזר monitoredResourceDescriptors.list.

  2. בחלונית עם התווית Try this method (אפשר לנסות את השיטה הזו), מזינים את הפרטים הבאים:

    • name: projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance

      מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .

  3. לוחצים על Execute.

הבקשה מחזירה את התיאור הקודם.

דוגמאות לשימוש ב-methods של Monitoring API זמינות במאמר רשימה של סוגי מדדים ומשאבים.

מדדים

כל סדרת זמן שנוצרת על ידי Cloud Monitoring מתעדת קבוצה של נקודות נתונים וגם מידע על הארגון והמשמעות של נקודות הנתונים האלה.

אובייקטים של מדדים

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

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

    {
      "metric": {
        "labels": {
          "log": "kubelet",
          "severity": "DEFAULT"
        },
        "type": "logging.googleapis.com/log_entry_count"
      }

האובייקט הזה מציין שסדרת הזמנים מכילה logging.googleapis.com/log_entry_count מדידות. ערכי התווית מציינים שסדרת הזמן הספציפית הזו סופרת רק רשומות ביומן עם רמת חומרה DEFAULT בקובץ היומן שנקרא kubelet.

לכל שילוב של ערכי תוויות יש סדרת זמן אחת, ולכן INFO רשומות באותו קובץ יומן מופיעות בסדרת זמן שונה.

קבוצת התוויות שנאספות באובייקט מדד מוגדרת בתיאור של סוג המדד הזה.

תיאורי מדדים

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

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

זו דוגמה לתיאור של מדד:

{
  "type": "logging.googleapis.com/log_entry_count",
  "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count",
  "labels": [
    {
      "key": "log",
      "description": "Name of the log."
    },
    {
      "key": "severity",
      "description": "Severity of the log entry."
    }
  ],
  "metricKind": "DELTA",
  "valueType": "INT64",
  "unit": "1",
  "description": "Number of log entries that contributed to user-defined metrics.",
  "displayName": "Log entries",
  "metadata": {
    "launchStage": "GA",
    "samplePeriod": "60s"
  },
  "launchStage": "GA"
}

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

אפשר לאחזר תיאורי מדדים באמצעות Cloud Monitoring API. לדוגמה, אפשר לעיין בדפי העזר של השיטות metricDescriptors.list ו-metricDescriptors.get.

דוגמה פעילה: אם יש לכם פרויקט Google Cloud , תוכלו לאחזר את תיאור ה-API הזה באמצעות הווידג'ט של APIs Explorer באופן הבא:

  1. פותחים את דף העזר של metricDescriptors.list.

  2. בחלונית עם התווית Try this method (אפשר לנסות את השיטה הזו), מזינים את הפרטים הבאים:

    • name: projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud .
  3. לוחצים על Execute.

הבקשה מחזירה את התיאור הקודם.

דוגמאות לשימוש ב-methods של Monitoring API זמינות במאמר רשימה של סוגי מדדים ומשאבים.

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

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