מעקב אחרי Config Connector באמצעות Prometheus
אתם יכולים להשתמש ב-Prometheus כדי לאסוף ולהציג מדדים מ-Config Connector.
לפני שמתחילים
כדי לבצע את השלבים בדף הזה, צריך להתקין את Prometheus באשכול. כדי לעשות את זה:
שימוש ב-Prometheus Operator שסופק על ידי CoreOS, או
פועלים לפי המסמכים של 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). אפשר להפעיל צבירה של מדדים לפי משאבים ספציפיים.
כדי להפעיל צבירה לפי שם משאב, מבצעים את השלבים הבאים.
עריכת האובייקט
cnrm-controller-managerStatefulSetkubectl edit statefulset cnrm-controller-manager -n cnrm-system
אם אתם משתמשים במצב מרחב שמות, מחליפים את
NAMESPACE_NAMEבמרחב השמות שלכם.kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
מאתרים את המערך
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 ובדוגמאות.