שימוש במדדים בצד הלקוח של gRPC

בדף הזה מוסבר איך לשלוח מדדים של gRPC בצד הלקוח אל Cloud Monitoring כשמשתמשים ב-gRPC כדי ליצור אינטראקציה עם Cloud Storage באמצעות אחד מהממשקים הנתמכים הבאים:

אפשר להשתמש במדדים בצד הלקוח כדי לעקוב אחרי הביצועים של אפליקציית הלקוח שמתקשרת עם Cloud Storage באמצעות gRPC. המדד בצד הלקוח שונה מהמדדים בצד השרת, שמספקים תובנות לגבי הביצועים של Cloud Storage מנקודת המבט של השרת.

איך זה עובד

כשמשתמשים ב-gRPC כדי ליצור אינטראקציה עם Cloud Storage באמצעות אחד מהממשקים הנתמכים, אפשר להפעיל את האפשרות לשליחת מדדים בצד הלקוח אל Cloud Monitoring. אתם יכולים להשתמש בכלי Metrics Explorer כדי לראות מדדים בצד הלקוח, וכך לעקוב אחרי האינטראקציות בין Cloud Storage לבין לקוח gRPC ולשפר אותן, לנהל את השימוש ולפתור בעיות טכניות וצווארי בקבוק בביצועים.

תמחור

מדדים בצד הלקוח של Cloud Storage לא כרוכים בתשלום, כלומר אתם יכולים לשלוח, לאחסן ולגשת למדדים בצד הלקוח של Cloud Storage בלי לשלם חיובים על Cloud Monitoring. למידע נוסף על תמחור, אפשר לעיין בתמחור של Google Cloud Observability.

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

כדי להשתמש במדדים בצד הלקוח, צריך קודם לבצע את השלבים הבאים:

  1. מוודאים שספריית הלקוח או המחבר של Cloud Storage שרוצים להשתמש בהם תומכים ב-gRPC. ספריות הלקוח והמחברים הבאים של Cloud Storage תומכים ב-gRPC:

  2. מגדירים אימות.

  3. מפעילים את Cloud Monitoring API.

  4. מפעילים את Cloud Storage API.

    כניסה ל-Cloud Storage API

  5. מגדירים את התפקידים וההרשאות הנדרשים כדי לשלוח מדדים בצד הלקוח.

התפקידים הנדרשים

כדי להגדיר את ההרשאות שדרושות לשליחת מדדים בצד הלקוח של gRPC אל Cloud Monitoring, צריך להקצות את תפקיד ה-IAM‏ Monitoring Metric Writer ‏(roles/monitoring.metricWriter) בחשבון השירות שבו משתמש הלקוח של gRPC.

התפקיד המוגדר מראש הזה מכיל את ההרשאות שנדרשות כדי לשלוח מדדים של לקוח gRPC לצד הלקוח אל Cloud Monitoring. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר לעיין בקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

  • monitoring.timeSeries.create

הרשאת ה-IAM הזו כלולה בתפקידים המוגדרים מראש הבאים ב-Cloud Storage:

יכול להיות שתוכלו לקבל את ההרשאות האלה גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים. מידע נוסף על התפקיד Metric Writer ב-Monitoring זמין במאמר IAM documentation about roles/monitoring.metricWriter.

לתשומת ליבכם

הצגת מדדים ב-Metrics Explorer

כדי לראות את מדדי בצד הלקוח gRPC של Cloud Storage ב-Metrics Explorer, פועלים לפי ההוראות הבאות.

  1. נכנסים לדף Metrics Explorer במסוף Google Cloud .

    כניסה ל-Metrics Explorer

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

  3. בתפריט הנפתח מדד, לוחצים על בחירת מדד.

  4. בסרגל החיפוש Filter by resource or metric name (סינון לפי שם משאב או שם מדד), מזינים storage.googleapis.com/Client או מחפשים את המדד שרוצים להחיל לפי שם המדד ולוחצים על Apply (החלה). כדי להוסיף יותר ממדד אחד, לוחצים על הוספת שאילתה.

    המדדים מוחלים על הפרויקט ב-Cloud Storage. אפשר לסנן או לצבור את המדדים באמצעות התפריטים הנפתחים הבאים:

    • כדי לבחור ולהציג קבוצת משנה של הנתונים על סמך קריטריונים שצוינו, משתמשים בתפריט הנפתח Filter.

    • כדי לשלב כמה נקודות נתונים לערך אחד ולראות תצוגה מסוכמת של המדדים, משתמשים בתפריט הנפתח צבירה.

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

כדי לראות את המדדים שהוספתם לפרויקט באמצעות מרכז בקרה, אפשר לעיין במאמר סקירה כללית של מרכזי בקרה.

תיאורי המדדים

בקטעים הבאים מפורטים מדדים בצד הלקוח של Cloud Storage שאפשר להשתמש בהם כדי לעקוב אחרי הביצועים של לקוח gRPC.

מדדים של לקוח לכל ניסיון

המדדים הבאים אוספים נתוני ביצועים לגבי ניסיונות בודדים של לקוח לתקשר עם שרת. מדדים של לקוח לכל ניסיון יכולים לעזור לכם למדוד את התנהגות הניסיון החוזר, צווארי בקבוק ולבצע אופטימיזציה של התקשורת בין לקוח לשרת.

מדד מלא תיאור סוג אמצעי התשלום יחידה מאפיינים
storage.googleapis.com/client/grpc/client/attempt/started Preview. המספר הכולל של ניסיונות RPC שהתחילו, כולל אלה שלא הושלמו. הצעה נגדית {attempt}
  • grpc.method: שם השיטה המלא של gRPC, כולל החבילה, השירות והשיטה.
  • grpc.target: ‏URI קנוני של היעד שבו נעשה שימוש כשנוצר ערוץ gRPC.
storage.googleapis.com/client/grpc/client/attempt/duration Preview. הזמן הכולל שנדרש להשלמת ניסיון של RPC, כולל הזמן שנדרש לבחירת ערוץ משנה. היסטוגרמה s
  • grpc.method: שם מלא של שיטת gRPC, כולל חבילה, שירות ושיטה.
  • grpc.target: ‏URI של היעד שעבר קנוניזציה, שמשמש ליצירת ערוץ gRPC.
  • grpc.status: קוד הסטטוס של שרת gRPC שהתקבל, כמו OK,‏ CANCELLED או DEADLINE_EXCEEDED.
  • grpc.lb.locality: הרשות המוניציפאלית שאליה נשלחת התנועה. הערך שיוגדר יהיה הערך של מאפיין ה-resolver שמועבר מהמדיניות weighted_target, או מחרוזת ריקה אם מאפיין ה-resolver לא מוגדר.
storage.googleapis.com/client/grpc/client/attempt/sent_total_compressed_message_size Preview. המספר הכולל של הבייטים, דחוסים אבל לא מוצפנים, שנשלחים בכל הודעות הבקשה, למעט מטא-נתונים לכל ניסיון RPC. הנתון הזה לא כולל gRPC או בייטים של מסגור העברה. היסטוגרמה By
  • grpc.method: שם מלא של שיטת gRPC, כולל חבילה, שירות ושיטה.
  • grpc.target: ‏URI של היעד שעבר קנוניזציה, שמשמש ליצירת ערוץ gRPC.
  • grpc.status: קוד הסטטוס של שרת gRPC שהתקבל, כמו OK,‏ CANCELLED או DEADLINE_EXCEEDED.
  • grpc.lb.locality: הרשות המוניציפאלית שאליה נשלחת התנועה. הערך שיוגדר יהיה הערך של מאפיין ה-resolver שמועבר מהמדיניות weighted_target, או מחרוזת ריקה אם מאפיין ה-resolver לא מוגדר.
storage.googleapis.com/client/grpc/client/attempt/rcvd_total_compressed_message_size Preview. המספר הכולל של הבייטים, דחוסים אבל לא מוצפנים, שמתקבלים בכל הודעות התגובה, למעט מטא-נתונים לכל ניסיון RPC. הנתון הזה לא כולל gRPC או בייטים של מסגור העברה. היסטוגרמה By
  • grpc.method: שם מלא של שיטת gRPC, כולל חבילה, שירות ושיטה.
  • grpc.target: ‏URI של היעד שעבר קנוניזציה, שמשמש ליצירת ערוץ gRPC.
  • grpc.status: קוד הסטטוס של שרת gRPC שהתקבל, כמו OK,‏ CANCELLED או DEADLINE_EXCEEDED.
  • grpc.lb.locality: הרשות המוניציפאלית שאליה התנועה נשלחת. הערך הזה יוגדר למאפיין מפענח ה-DNS שעבר מהמדיניות weighted_target, או למחרוזת ריקה אם מאפיין מפענח ה-DNS לא מוגדר.

מידע נוסף על מכשירים לכל ניסיון של לקוח זמין במאמרי העזרה בנושא מדדים של OpenTelemetry ב-GitHub.

מדדים לכל שיחה בצד הלקוח

המדדים הבאים מספקים תצוגה מצטברת של מחזור החיים המלא של קריאת לקוח לשרת. מדדים ברמת הלקוח לכל שיחה מספקים נתונים ברמה גבוהה על שיחות של לקוחות, מדדי מעקב להבנת דפוסי שיחות ועוזרים לזהות תדירויות בשגיאות.

מדד מלא תיאור סוג אמצעי התשלום יחידה מאפיינים
storage.googleapis.com/client/grpc/client/call/duration Preview. מדד שמודד את הזמן מקצה לקצה שלוקח לספריית gRPC להשלים RPC מנקודת המבט של האפליקציה. היסטוגרמה s
  • grpc.method: שם השיטה המלא של gRPC, כולל החבילה, השירות והשיטה.
  • grpc.target: ‏URI של היעד שעבר קנוניזציה, שמשמש ליצירת ערוץ gRPC.
  • grpc.status: קוד הסטטוס של שרת gRPC שהתקבל, כמו OK, ‏ CANCELLED או DEADLINE_EXCEEDED.

מידע נוסף על מכשירים לכל קריאה של לקוח זמין במאמרי העזרה בנושא מדדים של OpenTelemetry ב-GitHub.

בקשה לקבלת מדדים של חישת עומס

המדדים הבאים מספקים תובנות לגבי היעילות של השימוש באפליקציית הלקוח בזיהוי עומס בקשות. מדדים של חישת עומס הבקשות יכולים לעזור לכם לאזן את עומסי השרתים, לבצע אופטימיזציה של ניצול המשאבים ולשפר את זמני התגובה של הלקוחות. המדדים הבאים זמינים רק עם קישוריות ישירה.

מדד מלא תיאור סוג אמצעי התשלום יחידה מאפיינים
storage.googleapis.com/client/grpc/lb/rls/cache_entries Preview. מספר הרשומות במטמון של חישת עומס הבקשות. מד {entry}
  • grpc.target: מציין את היעד של ערוץ ה-gRPC שבו נעשה שימוש ב-WRR.
  • grpc.lb.rls.server_target: ה-URI של היעד שאליו השרת שבודק את העומס בבקשה מתקשר.
  • grpc.lb.rls.instance_uuid: מזהה ייחודי אוניברסלי (UUID) של מופע לקוח בודד של חישת עומס בקשות. הערך הזה לא משמעותי כשלעצמו, אבל הוא שימושי כדי להבחין בין מופעים של לקוחות שחשים את עומס הבקשות במקרים שבהם יש כמה מופעים באותו ערוץ gRPC או כמה ערוצים לאותה מטרה.
storage.googleapis.com/client/grpc/lb/rls/cache_size Preview. הגודל הנוכחי של מטמון החישה של עומס הבקשה. מד By
  • grpc.target: היעד של ערוץ gRPC שבו נעשה שימוש ב-WRR.
  • grpc.lb.rls.server_target: ה-URI של היעד שאליו השרת שבודק את העומס בבקשה מתקשר.
  • grpc.lb.rls.instance_uuid: UUID של מופע לקוח בודד של חישת עומס בקשות. הערך הזה לא משמעותי כשלעצמו, אבל הוא שימושי כדי להבחין בין מופעים של לקוחות שחשים את עומס הבקשות במקרים שבהם יש כמה מופעים באותו ערוץ gRPC או כמה ערוצים לאותה מטרה.
storage.googleapis.com/client/grpc/lb/rls/default_target_picks Preview. מספר הבחירות של מאזן העומסים (LB) שנשלחו ליעד ברירת המחדל. הצעה נגדית {pick}
  • grpc.target: מציין את היעד של ערוץ gRPC שבו נעשה שימוש בחישת עומס הבקשות.
  • grpc.lb.rls.server_target: ה-URI של היעד של השרת לחישת עומס הבקשות שאליו רוצים לשלוח את הבקשה.
  • grpc.lb.rls.data_plane_target: מחרוזת יעד שמשמשת לזיהוי עומס בקשות לצורך ניתוב תעבורת נתונים במישור הנתונים. הערך מוחזר על ידי השרת לחישת עומס הבקשות עבור מפתח מסוים, או מוגדר כיעד ברירת המחדל בהגדרות של השרת לחישת עומס הבקשות.
  • grpc.lb.pick_result:התוצאה של בחירת איזון העומסים, כמו "complete", ‏"fail" או "drop".
storage.googleapis.com/client/grpc/lb/rls/target_picks Preview. מספר הבחירות של LB שנשלחו לכל יעד לחישת עומס הבקשות. אם יעד ברירת המחדל מוחזר גם על ידי השרת לחישת עומס הבקשות, בקשות RPC שנשלחות ליעד הזה מהמטמון נספרות במדד הזה, ולא במדד grpc.rls.default_target_picks. הצעה נגדית {pick}
  • grpc.target: היעד של ערוץ gRPC שבו נעשה שימוש בחישת עומס הבקשות.
  • grpc.lb.rls.server_target: ה-URI של היעד של השרת לחישת עומס הבקשות שאליו רוצים לשלוח את הבקשה.
  • grpc.lb.rls.data_plane_target: מחרוזת יעד שמשמשת לזיהוי עומס בקשות לצורך ניתוב תעבורת נתונים במישור הנתונים. הערך מוחזר על ידי השרת לחישת עומס הבקשות עבור מפתח מסוים, או מוגדר כיעד ברירת המחדל בהגדרות של חישת עומס הבקשות.
  • grpc.lb.pick_result: התוצאה של בחירת איזון עומסים, כמו "complete", ‏"fail" או "drop".
storage.googleapis.com/client/grpc/lb/rls/failed_picks Preview. מספר הבחירות של איזון העומסים שנכשלו בגלל בקשת חישה של עומס בקשה שנכשלה או בגלל שהערוץ של חישת עומס הבקשה הוגבל. הצעה נגדית {pick}
  • grpc.target: היעד של ערוץ gRPC שבו נעשה שימוש בחישת עומס הבקשות.
  • grpc.lb.rls.server_target: ה-URI של היעד של השרת לחישת עומס הבקשות שאליו רוצים לשלוח את הבקשה.

מדדים של לקוח שירות xDiscovery

המדדים הבאים מספקים תובנות לגבי האינטראקציה של אפליקציית הלקוח עם מישור הבקרה של xDiscovery Service‏ (xDS) כדי לגלות ולהגדיר חיבורים לשירותי קצה עורפיים. מדדי xDS יכולים לעזור לכם לעקוב אחרי זמן האחזור של בקשות שירות, לעקוב אחרי עדכוני הגדרות ולבצע אופטימיזציה של הביצועים הכוללים של xDS.

המדדים הבאים זמינים רק בקישוריות ישירה.

מדד מלא תיאור סוג אמצעי התשלום יחידה מאפיינים
storage.googleapis.com/client/grpc/xds_client/connected Preview. בודק אם ללקוח xDS יש זרם ADS פעיל לשרת xDS. עבור שרת נתון, המדד הזה מוגדר כ-1 כשיוצרים את מקור הנתונים. אם יש כשל בקישוריות או אם הסטרימינג של ADS נכשל בלי שמוצגת הודעת תגובה כמו שמתואר בA57, ערך המדד מוגדר כ0. אחרי שהערך מוגדר ל-0, המדד יאופס ל-1 כשהתשובה הראשונה תתקבל בזרם ADS. המדד הזה זמין רק בספריות לקוח של Cloud ל-C++‎. מד {bool}
  • grpc.target: עבור לקוחות, מציין את היעד של ערוץ ה-gRPC שבו נעשה שימוש ב-XdsClient. לשרתים, המחרוזת תהיה "#server".
  • grpc.xds.server: כתובת ה-URI של היעד של שרת xDS שאיתו XdsClient מתקשר.
storage.googleapis.com/client/grpc/xds_client/resource_updates_invalid Preview. מספר המשאבים שהתקבלו ונחשבו לא תקינים. המדד הזה זמין רק בספריות לקוח של Cloud ל-C++‎. הצעה נגדית {resource}
  • grpc.target: עבור לקוחות, מציין את היעד של ערוץ gRPC שבו נעשה שימוש ב-XdsClient. לשרתים, המחרוזת תהיה "#server".
  • grpc.xds.server: כתובת ה-URI של היעד של שרת xDS שאיתו XdsClient מתקשר.
  • grpc.xds.resource_type: מציין סוג משאב xDS, כמו "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/resource_updates_valid Preview. מספר המשאבים שהתקבלו ונחשבו לתקינים, גם אם לא בוצע בהם שינוי. המדד הזה זמין רק בספריות לקוח של Cloud ל-C++. הצעה נגדית {resource}
  • grpc.target: עבור לקוחות, מציין את היעד של ערוץ gRPC שבו נעשה שימוש ב-XdsClient. לשרתים, המחרוזת תהיה "#server".
  • grpc.xds.server: כתובת ה-URI של היעד של שרת xDS שאליו מתקשר XdsClient.
  • grpc.xds.resource_type: מציין סוג משאב xDS, כמו "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/resources Preview. מספר משאבי ה-xDS. המדד הזה זמין רק בספריות לקוח של Cloud ל-C++. מד {resource}
  • grpc.target: עבור לקוחות, מציין את היעד של ערוץ ה-gRPC שבו נעשה שימוש ב-XdsClient. לשרתים, המחרוזת תהיה "#server".
  • grpc.xds.authority: הרשות של xDS. הערך יהיה "#old" לשמות משאבים שאינם xdstp שזוהו ב-xDS API, לפני ההשקה של ייצוג ה-URI xdstp://.
  • grpc.xds.cache_state: מציין את מצב המטמון של משאב xDS.
  • grpc.xds.resource_type מציין סוג של משאב xDS, כמו "envoy.config.listener.v3.Listener".
storage.googleapis.com/client/grpc/xds_client/server_failure Preview. מספר שרתי ה-xDS שכבר לא פועלים בצורה תקינה, והפכו ללא זמינים, עמוסים מדי או מספקים נתוני הגדרה שגויים או לא חוקיים. המדד הזה זמין רק בספריות לקוח של Cloud ל-C++. הצעה נגדית {failure}
  • grpc.target: כתובת ה-URI של שרת xDS שאליו XdsClient מתקשר.
  • grpc.xds.server: עבור לקוחות, הערך הזה מציין את היעד של ערוץ gRPC שבו נעשה שימוש ב-XdsClient. בשרתים, זו המחרוזת "#server".

מידע נוסף על מדדי לקוח xDS זמין במאמר בנושא איזון עומסים גלובלי מבוסס xDS ב-GitHub.

ביטול ההסכמה למדדים בצד הלקוח

אם צריך, אפשר להשבית את המדדים בצד הלקוח.

Java

public GrpcStorageOptions.Builder setEnableGrpcClientMetrics(false enableGrpcClientMetrics)

מידע נוסף זמין במאמר בנושא שיטת המחלקה GrpcStorageOptions.Builder של ספריות לקוח של Cloud ל-Java למדדים של לקוח gRPC.

C++‎

כדי להשבית את המדדים בצד הלקוח עבור gRPC API באמצעות ספריות לקוח ב-Cloud ל-C++‎, אפשר לעיין במאמר Struct EnableGrpcMetricsOption.

אם אתם משתמשים ב-Bazel כדי ליצור את האפליקציה ורוצים להשבית את המדדים בצד הלקוח, צריך להגדיר את האפשרות enable_grpc_metrics לערך false בקובץ ה-build של האפליקציה.

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