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

לוחות הבקרה של Grafana מאפשרים לכם להציג באופן חזותי את היומנים והמדדים ב-Google Distributed Cloud (GDC) air-gapped. במרכזי הבקרה האלה מוצגות תצוגות דינמיות של תקינות המערכת והביצועים שלה באמצעות לוחות שניתן להתאים אישית.

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

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

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

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

כדי לנהל משאבים בהתאמה אישית של Dashboard ו-ConfigMap, צריך את ההרשאות הנדרשות.

בקשת תפקידים ב-IAM ברמת הארגון

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

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

בקשת תפקידי IAM בפרויקט

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

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

הכנת הסביבה

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

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

    export KUBECONFIG=KUBECONFIG_PATH
    

    מחליפים את KUBECONFIG_PATH בנתיב לקובץ kubeconfig של שרת ה-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. בתפריט Data source של כל חלונית, בוחרים את מקור הנתונים שרוצים להציג בחלונית, כולל מדדים (prometheus), יומני ביקורת (auditloki) ויומני פעילות (oploki).

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

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

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

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

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

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

  8. בתפריט הניווט, בוחרים באפשרות JSON Model.

  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.