במאמר הזה מוסבר איך להגדיר את הפריסה של Google Kubernetes Engine כדי שתוכלו להשתמש בשירות מנוהל של Google Cloud ל-Prometheus כדי לאסוף מדדים מ-TensorFlow Serving. במאמר הזה מוסבר איך:
- מגדירים את TF Serving לדיווח על מדדים.
- אפשר לגשת למרכז בקרה מוגדר מראש ב-Cloud Monitoring כדי לראות את המדדים.
ההוראות האלה רלוונטיות רק אם אתם משתמשים ב אוסף מנוהל עם השירות המנוהל ל-Prometheus. אם אתם משתמשים באיסוף שמוטמע באופן עצמאי, תוכלו לקרוא את המסמכים בנושא TF Serving כדי לקבל מידע על התקנה.
ההוראות האלה הן דוגמה, והן אמורות לפעול ברוב סביבות Kubernetes. אם נתקלתם בבעיה בהתקנת אפליקציה או כלי לייצוא בגלל מדיניות אבטחה או מדיניות ארגונית מגבילה, מומלץ לעיין במסמכי קוד פתוח לקבלת תמיכה.
מידע על TensorFlow Serving זמין במאמר TF Serving. מידע על הגדרת TF Serving ב-Google Kubernetes Engine זמין ב מדריך GKE ל-TF Serving.
דרישות מוקדמות
כדי לאסוף מדדים מ-TF Serving באמצעות שירות מנוהל ל-Prometheus ואיסוף מנוהל, הפריסה צריכה לעמוד בדרישות הבאות:
- האשכול צריך להריץ את Google Kubernetes Engine בגרסה 1.28.15-gke.2475000 ואילך.
- צריך להפעיל את השירות המנוהל ל-Prometheus עם איסוף מנוהל. מידע נוסף זמין במאמר תחילת השימוש באוסף מנוהל.
TF Serving חושף מדדים בפורמט Prometheus כשמשתמשים בדגל --monitoring_config_file כדי לציין קובץ שמכיל מאגר אחסון לפרוטוקולים של MonitoringConfig.
דוגמה ל-מאגר אחסון לפרוטוקולים של MonitoringConfig:
אם אתם פועלים לפי מדריך ההגדרה של Google Kubernetes Engine, Serve a model with a single GPU in GKE, אז מאגר אחסון לפרוטוקולים MonitoringConfig מוגדר כחלק מהגדרת ברירת המחדל.
אם אתם מגדירים את TF Serving בעצמכם, אתם צריכים לבצע את הפעולות הבאות כדי לציין את מאגר אחסון לפרוטוקולים MonitoringConfig:
יוצרים קובץ בשם
monitoring_config.txtשמכיל את מאגר אחסון לפרוטוקולים MonitoringConfig בספריית המודל, לפני שמעלים את הספרייה לקטגוריה של Cloud Storage.מעלים את ספריית המודל לקטגוריה של Cloud Storage:
gcloud storage cp MODEL_DIRECTORY gs://CLOUD_STORAGE_BUCKET_NAME --recursive
מגדירים את משתנה הסביבה
PATH_TO_MONITORING_CONFIGלנתיב של הקובץmonitoring_config.txtשהועלה, לדוגמה:export PATH_TO_MONITORING_CONFIG=/data/tfserve-model-repository/monitoring_config.txt
מוסיפים את הדגל והערך הבאים לפקודה של הקונטיינר בקובץ ה-YAML של פריסת הקונטיינר:
"--monitoring_config=$PATH_TO_MONITORING_CONFIG"
לדוגמה, הפקודה יכולה להיראות כך:
command: [ "tensorflow_model_server", "--model_name=$MODEL_NAME", "--model_base_path=/data/tfserve-model-repository/$MODEL_NAME", "--rest_api_port=8000", "--monitoring_config_file=$PATH_TO_MONITORING_CONFIG" ]
שינוי ההגדרה של TF Serving
משנים את ההגדרות של TF Serving כמו בדוגמה הבאה:
צריך להוסיף להגדרה את כל השורות שמופיע לפניהן הסמל +.
כדי להחיל שינויים בתצורה מקובץ מקומי, מריצים את הפקודה הבאה:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.
כדי לוודא ש-TF Serving פולט מדדים בנקודות הקצה הצפויות:- מגדירים העברה ליציאה אחרת באמצעות הפקודה הבאה:
kubectl -n NAMESPACE_NAME port-forward POD_NAME 8000
- ניגשים לנקודת הקצה
localhost:8000/monitoring/prometheus/metricsבאמצעות הדפדפן או כלי השירותcurlבסשן טרמינל אחר.
הגדרה של משאב PodMonitoring
לצורך גילוי יעדים, ל-Managed Service for Prometheus Operator נדרש משאב PodMonitoring שתואם ל-TF Serving באותו מרחב שמות.
אפשר להשתמש בהגדרה הבאה של PodMonitoring:
כדי להחיל שינויים בתצורה מקובץ מקומי, מריצים את הפקודה הבאה:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.
אימות ההגדרה
אתם יכולים להשתמש בכלי Metrics Explorer כדי לוודא שהגדרתם את TF Serving בצורה נכונה. יכול להיות שיחלפו דקה או שתיים עד שמערכת Cloud Monitoring תעבד את המדדים.
כדי לוודא שהמדדים נאספים, מבצעים את הפעולות הבאות:
-
במסוף Google Cloud , עוברים לדף leaderboard Metrics explorer:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- בסרגל הכלים של חלונית הכלי ליצירת שאילתות, לוחצים על הלחצן ששמו הוא code MQL או code PromQL.
- מוודאים שהאפשרות PromQL נבחרה במתג שפה. המתג לשפה נמצא באותו סרגל כלים שבו אפשר לעצב את השאילתה.
- מזינים ומריצים את השאילתה הבאה:
up{job="tfserve", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
הצגת מרכזי בקרה
השילוב עם Cloud Monitoring כולל את לוח הבקרה TensorFlow Serving Prometheus Overview. לוחות הבקרה מותקנים באופן אוטומטי כשמגדירים את השילוב. אפשר גם לראות תצוגות מקדימות סטטיות של מרכזי בקרה בלי להתקין את האינטגרציה.
כדי לראות מרכז בקרה שהותקן:
-
במסוף Google Cloud , עוברים לדף Dashboards:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- לוחצים על הכרטיסייה רשימת מרכזי בקרה.
- בוחרים בקטגוריה שילובים.
- לוחצים על השם של מרכז הבקרה, לדוגמה, TensorFlow Serving Prometheus Overview.
כדי לראות תצוגה מקדימה סטטית של מרכז הבקרה:
-
נכנסים לדף
Integrations במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Monitoring.
- לוחצים על המסנן Kubernetes Engine של פלטפורמת הפריסה.
- מאתרים את השילוב של TensorFlow Serving ולוחצים על הצגת פרטים.
- לוחצים על הכרטיסייה מרכזי בקרה.
פתרון בעיות
מידע על פתרון בעיות בהוספת מדדים זמין במאמר פתרון בעיות שקשורות להוספה, בקטע בעיות באיסוף נתונים ממייצאים.