מעקב אחרי Config Connector באמצעות Prometheus

אתם יכולים להשתמש ב-Prometheus כדי לאסוף ולהציג מדדים מ-Config Connector.

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

כדי לבצע את השלבים בדף הזה, צריך להתקין את Prometheus באשכול. כדי לעשות את זה:

מדדי גירוד

‫Prometheus אוסף מדדים על ידי scraping של נקודת קצה (endpoint) של HTTP. בקטע הזה מוסבר על נקודות הקצה (endpoints) של Config Connector לגירוד נתונים ועל הגדרת Prometheus.

נקודות קצה של Config Connector לגירוד

ב-Config Connector, נקודות הקצה של השירות נמצאות ביציאה 8888 בכתובות cnrm-controller-manager-service ו-cnrm-resource-stats-recorder-service. השירותים האלה כוללים את ההערות prometheus.io/scrape: "true" ו-prometheus.io/port: "8888". השירותים כוללים גם את התוויות cnrm.cloud.google.com/monitored: "true" ו-cnrm.cloud.google.com/system: "true". מגדירים את Prometheus כך שיאסוף רכיבים של Config Connector מההערות והתוויות האלה.

הגדרת Prometheus

לפני שמתחילים לאסוף מדדים, יכול להיות שצריך להגדיר את Prometheus לזיהוי שירותים (SD) של Kubernetes כדי לגלות יעדים לאיסוף נתונים מ-Kubernetes API בארכיטקטורת REST.

אופן ההגדרה של Prometheus כדי לאסוף מדדים מ-Config Connector תלוי באופן ההתקנה של Prometheus. כדי לעדכן את ההגדרות, צריך לעיין במסמכי התיעוד של ההתקנה של Prometheus.

לדוגמה, אם אתם משתמשים ב-Prometheus Operator ומגדירים אותו באמצעות ServiceMonitor, אתם יכולים להחיל את ההגדרה הבאה כדי לאסוף מדדים מ-Config Connector.

  spec:
    endpoints:
    - interval: 10s
      port: metrics
    namespaceSelector:
      matchNames:
      - cnrm-system
    selector:
      matchLabels:
        cnrm.cloud.google.com/monitored: "true"
        cnrm.cloud.google.com/system: "true"

שאילתות לדוגמה

‫Prometheus משתמש בשפת שאילתות שנקראת PromQL. בקטע הזה מוצגות דוגמאות לשאילתות PromQL למדדים של Config Connector. אפשר להגדיר את Prometheus כך שיפיק התראות מכל שאילתת PromQL תקינה.

שאילתות לגבי בקשות להשוואת נתונים לפי סוג משאב וסטטוס

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

לדוגמה, כדי לבדוק את המספר הכולל של השגיאות במשאבי PubSubTopic, משתמשים בשאילתה הבאה.

configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}

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

אפשר לראות את מספר המשאבים שנמצאים במרחב שמות.

לדוגמה, כדי לבדוק את הספירה הכוללת של משאבי PubSubTopic במרחב השמות default, משתמשים בשאילתה הבאה.

configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}

שאילתה לגבי ניצול העובדים של תהליך ההתאמה לכל סוג משאב

(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)

מדדים זמינים

‫Config Connector אוסף את המדדים הבאים ומאפשר גישה אליהם.

שם סוג תוויות תיאור
configconnector_reconcile_requests_total הצעה נגדית מרחב שמות
group_version_kind
סטטוס
המספר הכולל של בקשות להשוואה.
configconnector_reconcile_request_duration_seconds היסטוגרמה מרחב שמות
group_version_kind
סטטוס
התפלגות הזמן שנדרש להשלמת בקשות לאימות.
configconnector_applied_resources_total תחנה הידרומטרית מרחב שמות
group_version_kind
סטטוס
המספר הכולל של משאבים בניהול.
configconnector_build_info תחנה הידרומטרית גרסה הגרסה הנוכחית של Config Connector.
configconnector_reconcile_workers_total תחנה הידרומטרית group_version_kind המספר הכולל של עובדי התאמה, שמצטבר לפי סוג המשאב.
configconnector_reconcile_occupied_workers_total תחנה הידרומטרית group_version_kind המספר הכולל של עובדי התאמה שהוקצו, שמצטבר לפי סוג המשאב.

הפעלת תוויות של שמות משאבים

כברירת מחדל, המדדים מצטברים לפי סוג המשאב (לדוגמה, PubSubTopic). אפשר להפעיל צבירה של מדדים לפי משאבים ספציפיים.

כדי להפעיל צבירה לפי שם משאב, מבצעים את השלבים הבאים.

  1. עריכת האובייקט cnrm-controller-manager StatefulSet

    kubectl edit statefulset cnrm-controller-manager -n cnrm-system

    אם אתם משתמשים במצב מרחב שמות, מחליפים את NAMESPACE_NAME במרחב השמות שלכם.

    kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
  2. מאתרים את המערך spec.args ומוסיפים --resource-name-label=true.

    apiVersion: apps/v1
    kind: StatefulSet
      name: cnrm-controller-manager
    spec:
      template:
        spec:
          containers:
          - name: manager
      args:
            - --resource-name-label=true
    

המאמרים הבאים

מידע נוסף על כתיבת שאילתות זמין במסמכי התיעוד של שפת השאילתות של Prometheus ובדוגמאות.