במאמר הזה מוסבר איך להגדיר את הפריסה של 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
לצורך גילוי יעדים, ל-שירות מנוהל ל-Prometheus Operator נדרש משאב PodMonitoring שתואם ל-TF Serving באותו מרחב שמות.
אפשר להשתמש בהגדרה הבאה של PodMonitoring:
כדי להחיל שינויים בתצורה מקובץ מקומי, מריצים את הפקודה הבאה:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
אפשר גם להשתמש ב-Terraform כדי לנהל את ההגדרות.
אימות ההגדרה
אפשר להשתמש בכלי Metrics Explorer כדי לוודא שהגדרתם את TF Serving בצורה נכונה. יכול להיות שיחלפו דקה או שתיים עד שמערכת Cloud Monitoring תעבד את המדדים.
כדי לוודא שהמדדים נאספים, מבצעים את הפעולות הבאות:
-
נכנסים לדף leaderboard Metrics explorer במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שבה הכותרת המשנית היא Monitoring.
- בסרגל הכלים של החלונית ליצירת שאילתות, לוחצים על הלחצן ששמו code 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 ולוחצים על הצגת פרטים.
- לוחצים על הכרטיסייה מרכזי בקרה.
פתרון בעיות
מידע על פתרון בעיות בהוספת מדדים זמין במאמר פתרון בעיות שקשורות להוספה בקטע בעיות באיסוף נתונים ממייצאים.