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

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

מומלץ להשתמש במדדים המובנים בצד הלקוח שמתוארים במאמר סקירה כללית של מדדים בצד הלקוח במקום במדדים מדור קודם שמתוארים בדף הזה.

הפעלת מדדים

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

הלקוח Cloud Bigtable HBase ל-Java השתמש ב-Dropwizard Metrics כדי לאסוף ולדווח על מדדים בצד הלקוח. המדדים לא הופעלו כברירת מחדל כי איסוף המדדים עלול להוסיף לכל בקשה זמן אחזור קצר מאוד (מיקרו-שניות חד-ספרתיות). בקטעים הבאים מוסבר איך להפעיל את המדדים הקודמים בצד הלקוח.

שימוש בכלי Log4j reporter

הדרך הכי פשוטה להפעיל את המדדים הקודמים בצד הלקוח היא להוסיף את השורה הבאה לקובץ ההגדרות של Log4j:

log4j.category.com.google.cloud.bigtable.metrics=DEBUG

הגדרת התצורה הזו מפעילה את איסוף המדדים ורושמת ביומן מדדים של Bigtable באמצעות SLF4J logger.

שימוש במדווחים אחרים

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

Graphite pickledGraphite = new PickledGraphite(new InetSocketAddress("graphite.example.com", 2004));
DropwizardMetricRegistry registry = new DropwizardMetricRegistry();
GraphiteReporter reporter =
    GraphiteReporter.forRegistry(registry.getRegistry())
        .convertRatesTo(TimeUnit.SECONDS)
        .convertDurationsTo(TimeUnit.MILLISECONDS)
        .filter(MetricFilter.ALL)
        .build(pickledGraphite);
reporter.start(1, TimeUnit.MINUTES);
BigtableClientMetrics.setMetricRegistry(registry);

‫Dropwizard Metrics מספק כלי דיווח ל-JMX, לרישום ביומן במסוף, ל-SLF4J ול-CSV. יש גם מגוון דוחות של צד שלישי.

מדדים זמינים

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

  • Counter: ספירה מצטברת לכל מכונה וירטואלית של Java‏ (JVM).
  • מדד: מידע על ספירה ומידע על קצב העברת הנתונים (ספירה לפי הדקה האחרונה, 5 דקות או 15 דקות)
  • טיימר: מידע על המדד ומידע על זמן האחזור (כמו חציון, ממוצע ואחוזון 95)

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

מדדים ברמת הערוץ

סוג שם תיאור
הצעה נגדית google-cloud-bigtable.sessions.active כמה כרטיסיות BigtableSession פתוחות. לכל HBase Connection יש BigtableSession אחד.
הצעה נגדית google-cloud-bigtable.grpc.channel.active כמה ערוצי gRPC/Netty ברמה נמוכה יותר נפתחו. לכל BigtableSession יש הרבה ערוצי gRPC.

מדדים כלליים של RPC

סוג שם תיאור
הצעה נגדית google-cloud-bigtable.grpc.rpc.active מספר הקריאות הפעילות כרגע לפרוצדורות מרוחקות (RPC).
מד google-cloud-bigtable.grpc.rpc.performed תפוקת RPC.

מדדים של שיטת נתונים

מדדים של שיטות לאיסוף נתונים נאספים עבור שיטות איסוף הנתונים הבאות:

  • ReadRows: הטמעה של פעולות get וסריקות.
  • MutateRow: הטמעה של פעולות put ו-delete.
  • MutateRows: הטמעה של כתיבה בכמות גדולה.
  • CheckAndMutateRow: הטמעה של ה-methods של checkAnd* ב-HBase.
  • ReadModifyWrite: מטמיעה את המתודות Append ו-Increment של HBase.
  • SampleRowKeys: אחזור מידע על אזור שמשמש לפעולות MapReduce.
סוג שם תיאור
טיימר google-cloud-bigtable.grpc.method.[METHOD_TYPE].operation.latency משך הזמן של כל פעולה בנפרד. הפעולות כוללות את סך זמן האחזור של כל קריאות ה-RPC שמתבצעות. (בדרך כלל מתבצעת רק קריאת RPC אחת. ניסיונות חוזרים בצד הלקוח עלולים לגרום לאותו RPC להתבצע יותר מפעם אחת אם יש שגיאה זמנית).
טיימר google-cloud-bigtable.grpc.method.ReadRows.firstResponse.latency משך הזמן שנדרש לקבלת התגובה הראשונה לבקשת סריקה.
מד google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.performed מספר הניסיונות החוזרים שבוצעו.
מד google-cloud-bigtable.grpc.method.[METHOD_TYPE].failures מספר הכישלונות שלא ניתן לנסות שוב.
מד google-cloud-bigtable.grpc.method.[METHOD_TYPE].retries.exhausted מספר הפעמים שהניסיון החוזר בוטל כי יותר מדי ניסיונות חוזרים נכשלו.

מדדים בכמות גדולה

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

סוג שם תיאור
מד google-cloud-bigtable.scanner.results התפוקה של שורות בודדות שמוחזרות על ידי סריקה.
מד google-cloud-bigtable.bulk-mutator.mutations.added התפוקה של מוטציות בודדות שנוספו לכל בקשה MutateRows.
מד google-cloud-bigtable.bulk-mutator.mutations.retried מספר המוטציות הבודדות שבוצעו להן ניסיונות חוזרים לאורך זמן.

מדדים של טבלאות Bigtable

המרת אובייקטים של Bigtable לאובייקטים של HBase יכולה להוסיף לזמן האחזור של בקשה. אפשר לקשר בין הטיימרים הבאים לבין הטיימרים שצוינו *.operation.latency כדי למדוד את עלות ההמרה.

סוג שם תיאור
טיימר google-cloud-bigtable.table.put.latency משך הזמן של כל פעולה בנפרד ב-Put. יש קורלציה עם google-cloud-bigtable.grpc.method.MutateRow.operation.latency.
טיימר google-cloud-bigtable.table.get.latency משך הזמן של כל פעולה בנפרד ב-Get. יש קורלציה עם google-cloud-bigtable.grpc.method.ReadRows.operation.latency.

דוגמה: מדדים לבקשת Put

כשמדדים בצד הלקוח מופעלים, המדדים הבאים נאספים עבור בקשת Put מוצלחת שלא מנסים לשלוח מחדש:

  • מונה: google-cloud-bigtable.grpc.rpc.active
  • מד: google-cloud-bigtable.grpc.rpc.performed
  • טיימר: google-cloud-bigtable.grpc.method.MutateRow.operation.latency
  • טיימר: google-cloud-bigtable.table.put.latency

איסוף המדדים האלה מוסיף בערך מיקרו-שנייה אחת (1/1000 של מילי-שנייה) לפעולה Put. הפעולה הכוללת Put יכולה להימשך מהר מאוד, בין 2 ל-3 אלפיות השנייה, בהנחה שהיא כוללת כ-1KB של נתונים.