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