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

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

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

איך זה עובד

אתם יכולים להביע הסכמה לשליחת מדדים בצד הלקוח ל-Cloud Monitoring כשאתם משתמשים ב-gRPC כדי לבצע פעולות ב-Cloud Storage באמצעות אחד מהממשקים הנתמכים. אתם יכולים להציג מדדים בצד הלקוח באמצעות 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, צריך להקצות את התפקיד כתיבת מדדי מעקב (roles/monitoring.metricWriter) ב-IAM לחשבון השירות שמשמש את הלקוח של gRPC.

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

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

  • monitoring.timeSeries.create

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

יכול להיות שתוכלו לקבל את ההרשאות האלה גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש אחרים. למידע נוסף על התפקיד "כתיבת מדדים ב-Monitoring", קראו את המאמר בנושא IAM של roles/monitoring.metricWriter.

לתשומת ליבכם

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

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

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

    כניסה ל-Metrics Explorer

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

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

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

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

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

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

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

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

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

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

מדדי ניסיונות של לקוחות

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

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

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

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

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

המדד המלא תיאור סוג מכשיר יחידה מאפיינים
storage.googleapis.com/client/grpc/client/call/duration ‫Preview. מודד את הזמן מקצה לקצה שלוקח לספריית gRPC להשלים RPC מנקודת המבט של האפליקציה. היסטוגרמה s
  • ‫grpc.method: שם ה-method המלא של gRPC, כולל החבילה, השירות וה-method.
  • 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 של מכונה ספציפית של לקוח שמשתמש ב-request load sensing. הערך לא משמעותי בפני עצמו, אבל הוא שימושי להבחנה בין מופעי לקוח של חישת עומס בקשות במקרים שבהם יש כמה מופעים באותו ערוץ 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:התוצאה של בחירת LB, כמו "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: התוצאה של בחירת LB, כמו "complete", ‏"fail" או "drop".
storage.googleapis.com/client/grpc/lb/rls/failed_picks ‫Preview. מספר הבחירות של LB שנכשלו בגלל בקשה שנכשלה לחישת עומס הבקשות או בגלל שהערוץ של חישת עומס הבקשות הוגבל. הגשת הצעה נגדית {pick}
  • ‫grpc.target: היעד של ערוץ ה-gRPC שבו נעשה שימוש בחיישן העומס של הבקשות.
  • ‫grpc.lb.rls.server_target: ה-URI של היעד של שרת חיישן העומס של הבקשות שאיתו רוצים לתקשר.

מדדי לקוח של xDiscovery Service

המדדים הבאים מספקים תובנות לגבי האינטראקציה של אפליקציית הלקוח עם מישור הבקרה של שירות xDiscovery‏ (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 שזוהו ב-API של xDS, לפני שהוצג הייצוג של ה-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 של האפליקציה.

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