מעקב אחרי אשכול של שירות מנוהל של Google Cloud ל-Apache Kafka

השירות המנוהל ל-Apache Kafka אוסף מדדים שבהם אפשר להשתמש כדי לעקוב אחרי אשכולות Kafka. בדף הזה מוסבר איך לצפות במדדים האלה במסוף Google Cloud .

סקירה כללית

השירות המנוהל ל-Apache Kafka מייצא כמה מדדים שזמינים בהפצה של Kafka בקוד פתוח, וגם מדדים ספציפיים לשירות כמו consumer group offset lag.

המדדים מחולקים לארבע קטגוריות של משאבים:

  • אשכול: המדדים האלה שימושיים לשמירה על התקינות הכללית של אשכול.

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

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

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

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

הצגת מדדים של אשכול Kafka

אפשר לראות את המדדים בדרכים הבאות:

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

  • אתם יכולים להשתמש ב-Metrics Explorer כדי לראות את כל המדדים הזמינים, ליצור תרשימים בהתאמה אישית או לצבור מדדים בכמה אשכולות.

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

כדי לקבל את ההרשאות שנדרשות להצגת תרשימי המעקב, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Managed Kafka Viewer (roles/managedkafka.Viewer) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

שימוש בלוחות הבקרה של המעקב

כדי לראות את לוחות הבקרה של המעקב אחרי אשכול של שירות מנוהל ל-Apache Kafka, פועלים לפי השלבים הבאים:

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

    מעבר אל Clusters

  2. לוחצים על שם האשכול.

  3. כדי לראות מדדים של האשכול, בוחרים בכרטיסייה Monitoring.

  4. כדי לראות את המדדים של נושא באשכול:

    1. לוחצים על הכרטיסייה משאבים.

    2. ברשימה Topics (נושאים), לוחצים על שם הנושא.

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

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

    1. לוחצים על הכרטיסייה משאבים.

    2. ברשימה קבוצות צרכנים, לוחצים על השם של קבוצת הצרכנים.

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

למידע נוסף, ראו הצגת אשכול Kafka.

שימוש ב-Metrics Explorer

כדי לראות את המדדים של שירות מנוהל ל-Apache Kafka באמצעות Metrics Explorer:

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

    כניסה לדף Metrics Explorer

  2. בקטע הגדרה, לוחצים על בחירת מדד.

  3. במסנן, מזינים Apache Kafka.

  4. בקטע Active resources, בוחרים באחת מהאפשרויות הבאות:

    • אשכול Apache Kafka

    • נושא ב-Apache Kafka

    • מחיצת נושא ב-Apache Kafka

    • קבוצת צרכנים של מחיצת נושא ב-Apache Kafka

  5. בוחרים מדד ולוחצים על אישור.

מידע נוסף על Metrics Explorer זמין במאמר יצירת תרשימים באמצעות Metrics Explorer.

מדדים של שירות מנוהל ל-Apache Kafka

בטבלאות הבאות מפורטים מדדים נפוצים למעקב אחרי אשכול Kafka ומשאבי האשכול. רשימה מלאה של המדדים הזמינים מופיעה במאמר בנושא מדדים שלGoogle Cloud .

השירות המנוהל ל-Apache Kafka מזוהה באמצעות כתובת ה-URL של השירות managedkafka.googleapis.com.

מדדים של אשכול

המדדים הבאים רלוונטיים לאשכולות. כדי לראות את המדדים של אשכול ספציפי, מסננים לפי התווית cluster_id.

מדד תיאור שם MBean שווה ערך
cpu/core_usage_time השימוש המצטבר במעבד של האשכול ב-vCPU. המידע הזה יכול לעזור להבין את העלות הכוללת של הפעלת האשכול. לא רלוונטי
cpu/limit מספר המעבדים (CPU) הנוכחי שהוגדר לאשכול. אפשר להשתמש בו כדי לעקוב אחרי ניצול המעבד כיחס עם המדד cpu/usage. לא רלוונטי
memory/usage השימוש הנוכחי בזיכרון ה-RAM באשכול. אפשר להשתמש במדד הזה כדי לעקוב אחרי ניצול ה-RAM כיחס עם המדד memory/limit. לא רלוונטי
memory/limit גודל זיכרון ה-RAM המוגדר הנוכחי של האשכול. אפשר להשתמש במדד הזה כדי לעקוב אחרי ניצול ה-RAM כיחס עם המדד memory/usage. לא רלוונטי
jvm/memory_area/bytes_used מספר הבייטים שנעשה בהם שימוש באזור זיכרון נתון של JVM (כמו heap או non-heap) עבור ברוקרים ובקרים. java.lang:type=Memory,HeapMemoryUsage.used
java.lang:type=Memory,NonHeapMemoryUsage.used
jvm/memory_area/bytes_committed מספר הבייטים שהוקצו לאזור זיכרון נתון ב-JVM (כמו heap או non-heap) עבור ברוקרים ובקרים. java.lang:type=Memory,HeapMemoryUsage.committed
java.lang:type=Memory,NonHeapMemoryUsage.committed
cluster_byte_in_count המספר הכולל של בייטים מלקוחות שנשלחו לכל הנושאים. kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
cluster_byte_out_count המספר הכולל של הבייטים שנשלחו ללקוחות מכל הנושאים. kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
cluster_message_in_count המספר הכולל של הודעות שפורסמו בכל הנושאים. kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
request_count המספר הכולל של הבקשות שנשלחו אל הברוקר kafka.network:type=RequestMetrics,name=RequestsPerSec,request= {Produce|FetchConsumer|FetchFollower},version=([0-9]+)
request_byte_count הגודל הכולל בבייטים של הבקשות שנשלחו אל האשכול. kafka.network:type=RequestMetrics,name=RequestBytes,request= ([-.\w]+)
partitions המספר הנוכחי של המחיצות שמטופלות על ידי האשכול הזה, בחלוקה לפי ברוקר. kafka.server:type=ReplicaManager,name=PartitionCount
request_latencies מספר אלפיות השנייה שנדרשו לכל בקשה, באחוזונים שונים kafka.network:type=RequestMetrics,name=TotalTimeMs,request= {Produce|FetchConsumer|FetchFollower}
consumer_groups המספר הנוכחי של קבוצות צרכנים שצורכות מהברוקר kafka.server:type=GroupMetadataManager,name=NumGroups
offline_partitions מספר מחיצות הנושא במצב אופליין כפי שנצפה על ידי בקר. kafka.controller:type=KafkaController,name=OfflinePartitionCount

מדדי נושאים

המדדים הבאים רלוונטיים לנושאים. כדי לראות את המדדים של נושא ספציפי, מסננים לפי התוויות cluster_id ו-topic_id.

מדד תיאור שם MBean שווה ערך
message_in_count המספר הכולל של ההודעות שפורסמו בנושא. kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec, topic=([-.\w]+)
byte_in_count המספר הכולל של בייטים מלקוחות שנשלחו לנושא. kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=([-.\w]+)
topic_request_count המספר הכולל של בקשות ליצירה ולאחזור שנשלחו לנושא. kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,topic=([-.\w]+)
topic_error_count המספר הכולל של בקשות הייצור שנכשלו ובקשות האחזור שנכשלו שנשלחו לנושא. kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=([-.\w]+)
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=([-.\w]+)
byte_out_count המספר הכולל של בייטים שנשלחו ללקוחות. kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec, topic=([-.\w]+)

מדדי מחיצות

המדדים הבאים רלוונטיים למחיצות. כדי לראות את המדדים של מחיצה ספציפית בנושא, מסננים לפי התוויות cluster_id, topic_id ו-partition_index.

מדד תיאור שם MBean מקביל
consumer_lag השהיית שכפול בהודעות בין השרת הראשי לבין כל עותק משוכפל של השרת המשני. kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
log_segments מספר המקטעים הנוכחיים ביומן. השימוש בזה חשוב כדי לוודא שסיווג האחסון יישאר תקין. kafka.log:type=Log,name=NumLogSegments,topic=([-.\w]+),partition=([0-9]+)
first_offset ההיסט הראשון של כל מחיצה בנושא. בשילוב עם last_offset, אפשר להשתמש בו כדי לעקוב אחרי הגבול העליון של המספר הכולל של ההודעות שנשמרו, וגם כדי למצוא את ההיסט בפועל של ההודעה הכי ישנה. kafka.log:type=Log,name=LogStartOffset,topic=([-.\w]+),partition=([0-9]+)
last_offset ההיסט האחרון במחיצה. אפשר להשתמש בערך הזה כדי למצוא את ההיסט של כל מחיצה לאורך זמן. המידע הזה יכול להיות שימושי כדי לזהות את ההיסט הספציפי שנדרש לעיבוד מחדש של נתונים החל מזמן מסוים בעבר. kafka.log:type=Log,name=LogEndOffset,topic=([-.\w]+),partition=([0-9]+)
byte_size גודל המחיצה בדיסק בבייטים. לא רלוונטי

מדדים של קבוצות צרכנים

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

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

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