יצירת לוחות בקרה של תרשימים להמחשה

בדף הזה מוסבר איך ליצור לוחות בקרה ולנהל אותם במופע Grafana, שמשמש להצגת נתונים חזותיים של יומנים ומדדים מהפרויקט שלכם ב-Google Distributed Cloud‏ (GDC) שמוגן על ידי בידוד פיזי.

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

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

שימוש יעיל בלוחות הבקרה של Grafana מאפשר לכם לקבל תובנות חשובות לגבי הביצועים והתקינות של סביבת GDC.

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

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

  • יצירת מרכז בקרה בהתאמה אישית: Dashboard PA Creator ‏ (dashboard-pa-creator)
  • עריכה ומחיקה של לוח בקרה בהתאמה אישית: Dashboard PA Editor (dashboard-pa-editor)
  • צפייה במרכז בקרה בהתאמה אישית: Dashboard PA Viewer (dashboard-pa-viewer)

כדי לקבל את ההרשאות שדרושות לעבודה עם לוחות בקרה של פרויקט, צריך לבקש מאדמין ה-IAM של הפרויקט להקצות לכם את התפקידים הבאים במרחב השמות של הפרויקט:

  • יצירה, עריכה ומחיקה של מרכז בקרה בהתאמה אישית: כלי העריכה של מרכז הבקרה (dashboard-editor)
  • צפייה במרכז בקרה בהתאמה אישית: צפייה במרכז הבקרה (dashboard-viewer)
  • יצירה ועריכה של ConfigMap: עורך ConfigMap ‏ (observabilitypipeline-configmap-editor)

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

  1. איסוף מדדים מעומסי העבודה.
  2. מגדירים את הנתיב של קובץ ה-kubeconfig כמשתנה סביבה:

    export KUBECONFIG=KUBECONFIG_PATH
    

    מחליפים את KUBECONFIG_PATH בנתיב לקובץ kubeconfig של שרת Management API שבו רוצים ליצור את לוח הבקרה.

זיהוי נקודת הקצה של Grafana

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

https://GDC_URL/PROJECT_NAMESPACE/grafana

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

  • GDC_URL: כתובת ה-URL של הארגון ב-GDC.
  • PROJECT_NAMESPACE: מרחב השמות של הפרויקט.

לדוגמה, נקודת הקצה של Grafana לפרויקט platform-obs בארגון org-1 היא https://org-1/platform-obs/grafana.

יצירת מרכז בקרה בהתאמה אישית

כדי ליצור מרכז בקרה ב-Grafana ולהתאים אישית את ההגדרות:

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

  5. בתפריט מקור נתונים של כל חלונית, בוחרים את מקור הנתונים הרצוי לחלונית, כולל מדדים (prometheus), יומני ביקורת (auditloki) ויומנים תפעוליים (oploki).

    ביקום רב-אזורי, ל-Grafana יש מקורות נתונים עם תוויות אזורים שבהם אפשר להשתמש כדי ליצור תרשימים של לוחות בקרה עם מדדים ויומנים מכמה אזורים. שמות מקורות הנתונים האלה הם בפורמט DATA_SOURCE-ZONE_ID, כאשר:

    • DATA_SOURCE יכול לקבל את אחד מהערכים הבאים:

      • Prometheus (prometheus או metrics) כדי להציג מדדים.
      • יומני ביקורת (auditloki) כדי להציג את יומני הביקורת.
      • יומנים תפעוליים (oploki) כדי להציג יומנים תפעוליים.
    • ZONE_ID הוא המזהה של האזור שממנו רוצים להציג נתונים בלוח הבקרה.

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

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

  7. בסרגל התפריטים, לוחצים על הגדרות לוח הבקרה כדי לפתוח את הדף הגדרות.

  8. בתפריט הניווט, בוחרים באפשרות JSON Model (מודל JSON).

  9. מעתיקים את מודל ה-JSON של לוח הבקרה ומדביקים אותו בקובץ טקסט פשוט לשימוש עתידי.

יצירת אובייקט ConfigMap

כדי ליצור אובייקט ConfigMap שמכיל את מודל ה-JSON של מרכז הבקרה:

  1. פותחים חלון טרמינל.
  2. יוצרים אובייקט ConfigMap. בקטע data של אובייקט ConfigMap, מדביקים את מודל ה-JSON שהעתקתם קודם:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        JSON_MODEL
        }
    

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

    • PROJECT_NAMESPACE: מרחב השמות של הפרויקט.
    • CONFIGMAP_NAME: השם שרוצים לתת לאובייקט ConfigMap.
    • JSON_FILE_NAME: השם שרוצים לתת לקובץ של מודל ה-JSON של מרכז הבקרה.
    • JSON_MODEL: מודל ה-JSON של לוח הבקרה בהתאמה אישית.

    דוגמה למראה של האובייקט הזה מופיעה במאמר על ConfigMap.

  3. מחילים את אובייקט ConfigMap על שרת Management API:

    kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
    

דוגמה לConfigMap

קובץ ה-YAML הבא מציג דוגמה לאובייקט ConfigMap של לוח בקרה במרחב השמות platform-obs:

  apiVersion: v1
  kind: ConfigMap
  metadata:
    namespace: platform-obs
    name: my-project-dashboard-configmap
  data:
    my-project-dashboard.json: |
      {
      "annotations": {
        "list": [
          {
            "builtIn": 1,
            "datasource": "--",
            "enable": true,
            "hide": true,
            "iconColor": "rgba(0, 211, 255, 1)",
            "name": "Annotations & Alerts",
            "type": "dashboard"
          }
        ]
      },
      "editable": true,
      "graphTooltip": 0,
      "id": null,
      "links": [],
      "panels": [],
      "schemaVersion": 27,
      "style": "dark",
      "tags": [],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {},
      "timezone": "",
      "title": "Sample dashboard",
      "uid": null,
      "version": 0
      }

יצירת Dashboard משאב בהתאמה אישית

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

  1. פותחים חלון טרמינל.
  2. יוצרים משאב מותאם אישית Dashboard ומגדירים את הקובץ עם השם שנתתם לאובייקט ConfigMap:

    apiVersion: observability.gdc.goog/v1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_NAME
    spec:
      configMapRef:
        name: CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    

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

    • PROJECT_NAMESPACE: מרחב השמות של הפרויקט.
    • DASHBOARD_NAME: השם שרוצים לתת לDashboardמשאב המותאם אישית.
    • CONFIGMAP_NAME: השם שנתתם לאובייקט ConfigMap.
    • JSON_FILE_NAME: השם שנתתם לקובץ שמכיל את מודל ה-JSON של לוח הבקרה באובייקט ConfigMap.
  3. מחילים את המשאב המותאם אישית Dashboard על שרת Management API:

    kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
    

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