בדף הזה מפורטים מדדי OpenTelemetry שזמינים למעקב אחרי משאבי סנכרון תצורות.
תמחור
מדדים של סנכרון תצורות משתמשים ב-השירות המנוהל של Google Cloud ל-Prometheus כדי לטעון מדדים ל-Cloud Monitoring. החיובים על הטמעת המדדים האלה ב-Cloud Monitoring מבוססים על מספר הדגימות שהוטמעו.
מידע נוסף זמין במאמר בנושא תמחור של Cloud Monitoring.
איך סנכרון תצורות אוסף מדדים
סנכרון תצורות משתמש ב-OpenCensus כדי ליצור ולתעד מדדים, וב-OpenTelemetry כדי לייצא את המדדים שלו אל Prometheus ו-Cloud Monitoring. במדריכים הבאים מוסבר איך לייצא מדדים:
- Cloud Monitoring
- Prometheus
- מערכת מעקב בהתאמה אישית (לא מומלץ)
כדי להגדיר את OpenTelemetry Collector, סנכרון תצורות יוצר כברירת מחדל ConfigMap בשם otel-collector. הפריסה otel-collector פועלת במרחב השמות config-management-monitoring.
יצירת otel-collector ConfigMap מגדירה את prometheusexporter, שחושף נקודת קצה של מדדים לסריקה על ידי Prometheus.
כשמריצים את סנכרון תצורות ב-GKE או בסביבת Kubernetes אחרת שהוגדרה עם פרטי כניסה של Cloud de Confiance by S3NS , סנכרון תצורות יוצר ConfigMap בשם otel-collector-google-cloud. התג otel-collector-google-cloud מבטל את ההגדרה ב-ConfigMap otel-collector. סנכרון תצורות מחזיר את כל השינויים שבוצעו ב-otel-collector או ב-otel-collector-google-cloud ConfigMaps.
יצירת otel-collector-google-cloud ConfigMap מוסיפה גם את cloudmonitoring exporter, שמייצא ל-Cloud Monitoring, ואת kubernetes exporter, שמייצא לשירות המדדים הפנימי של Google. הכלי לייצוא kubernetes שולח מדדים נבחרים ואנונימיים ל-Google כדי לעזור לשפר את סנכרון תצורות.
מערכת Cloud Monitoring מאחסנת את המדדים שאתם שולחים אליה בCloud de Confiance פרויקט שלכם. הכלי לייצוא cloudmonitoring והכלי לייצוא kubernetes משתמשים באותו חשבון שירותCloud de Confiance by S3NS , שצריך הרשאת IAM כדי לכתוב ל-Cloud Monitoring. הוראות להגדרת ההרשאות האלה מופיעות במאמר מתן הרשאת כתיבת מדדים ל-Cloud Monitoring.
מדדים של OpenTelemetry
סנכרון תצורות ו-Resource Group Controller אוספים את המדדים הבאים באמצעות OpenCensus ומפרסמים אותם דרך OpenTelemetry Collector . בעמודה Tags (תגים) מופיעים תגים ספציפיים של סנכרון תצורות שרלוונטיים לכל מדד. מדדים עם תגים מייצגים כמה מדידות, אחת לכל שילוב של ערכי תגים.
מדדים של סנכרון תצורות
| שם | סוג | תגים | תיאור |
|---|---|---|---|
| api_duration_seconds | הפצה | פעולה, סטטוס | התפלגות זמן האחזור של קריאות לשרת API. |
| apply_duration_seconds | הפצה | סטטוס | התפלגות זמן האחזור של החלת משאבים שהוגדרו ממקור מידע אמין על אשכול. |
| apply_operations_total | ספירה | פעולה, סטטוס, בקר | המספר הכולל של הפעולות שבוצעו כדי לסנכרן משאבים ממקור האמת לאשכול. |
| declared_resources | ערך אחרון | מספר המשאבים המוצהרים שנותחו מ-Git. | |
| internal_errors_total | ספירה | מקור | המספר הכולל של שגיאות פנימיות שנתקלו בהן ב-סנכרון תצורות. יכול להיות שהמדד לא יופיע בתוצאות השאילתה אם לא אירעה שגיאה פנימית. |
| last_sync_timestamp | ערך אחרון | סטטוס | חותמת הזמן של הסנכרון האחרון מ-Git. |
| parser_duration_seconds | הפצה | סטטוס, טריגר, מקור | התפלגות זמן האחזור של שלבים שונים שקשורים לסנכרון ממקור האמת לאשכול. |
| pipeline_error_observed | ערך אחרון | name, reconciler, component | הסטטוס של משאבים מותאמים אישית של RootSync ו-RepoSync. הערך 1 מציין כשל. |
| reconcile_duration_seconds | הפצה | סטטוס | התפלגות זמן האחזור של אירועי התאמה שטופלו על ידי מנהל ההתאמה. |
| reconciler_errors | ערך אחרון | component, errorclass | מספר השגיאות שנתקלו בהן במהלך סינכרון משאבים ממקור האמת לאשכול. |
| remediate_duration_seconds | הפצה | סטטוס | התפלגות השהיות של אירועי סנכרון של כלי התיקון. |
| resource_conflicts_total | ספירה | המספר הכולל של קונפליקטים במשאבים שנובעים מחוסר התאמה בין המשאבים שבמטמון לבין משאבי האשכול. יכול להיות שהמדד לא יופיע בתוצאות השאילתה אם לא היה ניגוד משאבים. | |
| resource_fights_total | ספירה | המספר הכולל של משאבים שמסונכרנים בתדירות גבוהה מדי. כל תוצאה שגבוהה מאפס מצביעה על בעיה. מידע נוסף זמין במאמר KNV2005: ResourceFightWarning. יכול להיות שהמדד לא יופיע בתוצאות השאילתה אם לא התרחשה תחרות על משאבים. |
מדדים של בקר קבוצת משאבים
ה-Resource Group Controller הוא רכיב ב-סנכרון תצורות שעוקב אחרי המשאבים המנוהלים ובודק אם כל משאב מוכן או מסונכרן. המדדים הבאים זמינים:
| שם | סוג | תגים | תיאור |
|---|---|---|---|
| rg_reconcile_duration_seconds | הפצה | stallreason | התפלגות הזמן שנדרש לתיאום של ResourceGroup CR |
| resource_group_total | ערך אחרון | המספר הנוכחי של CR מסוג ResourceGroup | |
| resource_count | ערך אחרון | resourcegroup | המספר הכולל של משאבים שנמצאים במעקב על ידי ResourceGroup |
| ready_resource_count | ערך אחרון | resourcegroup | המספר הכולל של משאבים מוכנים ב-ResourceGroup |
| resource_ns_count | ערך אחרון | resourcegroup | מספר מרחבי השמות שמשמשים משאבים ב-ResourceGroup |
| cluster_scoped_resource_count | ערך אחרון | resourcegroup | מספר המשאבים בהיקף אשכול ב-ResourceGroup |
| crd_count | ערך אחרון | resourcegroup | מספר ה-CRD בקבוצת משאבים |
| kcc_resource_count | ערך אחרון | resourcegroup | המספר הכולל של משאבי KCC ב-ResourceGroup |
| pipeline_error_observed | ערך אחרון | name, reconciler, component | הסטטוס של משאבים מותאמים אישית של RootSync ו-RepoSync. הערך 1 מציין כשל. |
תוויות של מדדים בסנכרון תצורות
אפשר להשתמש בתוויות של מדדים כדי לצבור נתוני מדדים ב-Cloud Monitoring וב-Prometheus. אפשר לבחור אותם מהרשימה הנפתחת 'קיבוץ לפי' במסוף המעקב.
מידע נוסף על תווית Cloud Monitoring ותווית מדד Prometheus זמין במאמרים רכיבים של מודל המדדים ומודל הנתונים של Prometheus.
תוויות מדדים
התוויות הבאות משמשות למדדים של סנכרון תצורות ושל Resource Group Controller, שזמינים כשמבצעים מעקב באמצעות Cloud Monitoring ו-Prometheus.
| שם | ערכים | תיאור |
|---|---|---|
operation |
יצירה, תיקון, עדכון, מחיקה | סוג הפעולה שבוצעה |
status |
הצלחה, שגיאה | סטטוס הביצוע של פעולה |
reconciler |
rootsync, reposync | הסוג של הכלי להשוואת נתונים |
source |
מנתח, משווה, מתקן | המקור של השגיאה הפנימית |
trigger |
ניסיון חוזר, watchUpdate, managementConflict, resync, reimport | הטריגר של אירוע התאמה |
name |
שם המאחד | השם של הכלי להשוואת נתונים |
component |
ניתוח, מקור, סנכרון, עיבוד, מוכנות | שם הרכיב או השלב הנוכחי בתהליך ההתאמה |
container |
reconciler, git-sync | שם הקונטיינר |
resource |
מעבד, זיכרון | סוג המשאב |
controller |
applier, remediator | השם של בקר ב-reconciler של שורש או של מרחב שמות |
type |
כל משאב Kubernetes, למשל ClusterRole, Namespace, NetworkPolicy, Role וכו'. | סוג ה-Kubernetes API |
commit |
---- | הגיבוב של הקומיט האחרון שסונכרן |
תוויות משאבים
למדדים של סנכרון תצורות שנשלחים אל Prometheus ו-Cloud Monitoring מוגדרות תוויות המדדים הבאות כדי לזהות את ה-Pod של המקור:
| שם | תיאור |
|---|---|
k8s.node.name |
השם של הצומת שמארח Pod של Kubernetes |
k8s.pod.namespace |
מרחב השמות של ה-Pod |
k8s.pod.uid |
מזהה ה-UID של ה-Pod |
k8s.pod.ip |
כתובת ה-IP של ה-Pod |
k8s.deployment.name |
השם של הפריסה שבבעלותה נמצא ה-Pod |
למדדים של סנכרון תצורות שנשלחים אל Prometheus ו-Cloud Monitoring מ-Pods של reconciler מוגדרות גם תוויות המדדים הבאות, כדי לזהות את RootSync או RepoSync ששימשו להגדרת ה-reconciler:
| שם | תיאור |
|---|---|
configsync.sync.kind |
סוג המשאב שמגדיר את כלי ההתאמה הזה: RootSync או RepoSync |
configsync.sync.name |
השם של RootSync או RepoSync שמגדיר את הכלי הזה להשוואת נתונים |
configsync.sync.namespace |
מרחב השמות של RootSync או RepoSync שמגדיר את כלי ההתאמה הזה |
תוויות משאבים ב-Cloud Monitoring
תוויות משאבים ב-Cloud Monitoring משמשות לאינדוקס מדדים באחסון, ולכן ההשפעה שלהן על הקרדינליות זניחה, בניגוד לתוויות מדדים, שבהן הקרדינליות היא בעיה משמעותית שמשפיעה על הביצועים. מידע נוסף מופיע במאמר סוגי המשאבים במעקב.
סוג המשאב k8s_container מגדיר את תוויות המשאב הבאות כדי לזהות את מאגר התגים של המקור:
| שם | תיאור |
|---|---|
container_name |
שם הקונטיינר |
pod_name |
השם של ה-Pod |
namespace_name |
מרחב השמות של ה-Pod |
location |
האזור או התחום של האשכול שמארח את הצומת |
cluster_name |
השם של האשכול שמארח את הצומת |
project |
מזהה הפרויקט שמארח את האשכול |
הגדרת סינון של מדדים מותאמים אישית
אתם יכולים לשנות את המדדים המותאמים אישית ש-סנכרון תצורות מייצא ל-Prometheus, ל-Cloud Monitoring ולשירות המעקב הפנימי של Google. אפשר לשנות את המדדים המותאמים אישית כדי לכוונן את המדדים הכלולים או להגדיר קצה עורפי שונה.
כדי לשנות מדדים מותאמים אישית, יוצרים ואז עורכים ConfigMap בשם
otel-collector-custom. השימוש ב-ConfigMap הזה מבטיח שסנכרון תצורות לא יבטל את השינויים שאתם מבצעים. אם משנים את הקובץ otel-collector או את מפות ConfigMap, סנכרון תצורות מחזיר את השינויים למצב הקודם.otel-collector-google-cloud
דוגמאות לאופן ההתאמה של ConfigMap מופיעות במאמר Custom Metric Filtering במסמכי התיעוד של סנכרון תצורות בקוד פתוח.
הסבר על המדד pipeline_error_observed
המדד pipeline_error_observed עוזר לכם לזהות במהירות CR מסוג RepoSync או RootSync שלא מסונכרנים או שמכילים משאבים שלא תואמים למצב הרצוי.
כדי שהסנכרון באמצעות RootSync או RepoSync יצליח, המדדים עם כל הרכיבים (
rendering, source, sync, readiness) צריכים להיות עם הערך 0.
אם הקומיט האחרון נכשל ברינדור האוטומטי, המדד עם הרכיב
renderingיקבל את הערך 1.כשמתרחשת שגיאה בהוצאת הקומיט האחרון או כשהקומיט האחרון מכיל הגדרה לא תקינה, המדד עם הרכיב
sourceנצפה עם הערך 1.כשלא ניתן להחיל משאב על האשכול, המדד עם הרכיב
syncנצפה עם הערך 1.כשמחילים משאב, אבל הוא לא מגיע למצב הרצוי, המדד עם הרכיב
readinessנצפה עם הערך 1. לדוגמה, פריסה מוחלת על האשכול, אבל ה-Pods התואמים לא נוצרים בהצלחה.