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

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

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

איך זה עובד

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

תמחור

מדדים בצד הלקוח של 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.

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

בקטעים הבאים מפורטים מדדים בצד הלקוח של 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: הלוקאל שאליו נשלחת התנועה. הערך של המאפיין הזה יהיה הערך של מאפיין ה-resolver שמועבר מהמדיניות weighted_target, או מחרוזת ריקה אם מאפיין ה-resolver לא מוגדר.

מידע נוסף על מכשירים לכל ניסיון של לקוח זמין במאמרי העזרה בנושא מדדים של 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. מספר הבחירות של איזון העומסים שנשלחו לכל יעד לחישת עומס הבקשות. אם יעד ברירת המחדל מוחזר גם על ידי השרת לחישת עומס הבקשות, בקשות 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 של היעד של השרת לחישת עומס הבקשות שאליו רוצים לשלוח את הבקשה.

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

המדדים הבאים מספקים תובנות לגבי האינטראקציה של אפליקציית הלקוח עם מישור הבקרה של 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 של ספריות לקוח של Java ב-Cloud למדדים של לקוח gRPC.

C++‎

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

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