本節將概述可用於監控 Managed Service for Apache Kafka 的監控指標。本文也會說明如何使用 Monitoring,在 Google Cloud 控制台中監控 Managed Service for Apache Kafka 的用量。
如要查看其他 Google Cloud 資源的指標,以及 Managed Service for Apache Kafka 的完整指標集,請使用 Monitoring。
否則,您可以使用監控資訊主頁,以及 Managed Service for Apache Kafka 提供的指標。如需詳細資訊,請參閱下列主題:
Managed Service for Apache Kafka 指標總覽
Managed Service for Apache Kafka 會匯出開放原始碼 Kafka 發行版本中的多項指標,以及服務專屬指標,例如消費者群組偏移延遲。如要監控,請使用服務網址 managedkafka.googleapis.com 識別 Managed Service for Apache Kafka 服務。
Managed Service for Apache Kafka 指標分為四個資源類別:
叢集:這些指標用於維護叢集的整體健康狀態。
主題:這些指標包括發布者和消費者費率,以及錯誤。這些指標可監控 Kafka 應用程式的整體健康狀態,以及代理程式的特定問題。
主題分割區:這些指標用於監控及偵錯個別分割區的特定效能問題。舉例來說,金鑰發布不均。
主題分割區消費者群組:這些指標會監控消費者應用程式的健康狀態,主要是消費者延遲。開放原始碼 Kafka 用戶群組的錯誤指標僅適用於主題層級,不適用於分割區。
部分指標可依經紀人分組。雖然 Managed Service for Apache Kafka 服務本身不會將代理程式公開為資源,但監控代理程式對於偵測失敗情境 (例如代理程式過載導致延遲) 至關重要。
指標名稱遵循慣例,包含服務 API 網址、受監控的資源和指標。舉例來說,主題 message_in_count 指標 ID 為 managedkafka.googleapis.com/Topic/message_in_count。
如要存取這些指標,請參閱「查看單一 Managed Service for Apache Kafka 指標」。
事前準備
請先準備好已啟用計費功能的 Managed Service for Apache Kafka 專案,再使用 Monitoring。如要完成這項操作,其中一種方法是完成 Managed Service for Apache Kafka 快速入門。
必要角色和權限
如要取得查看監控圖表所需的權限,請要求管理員授予您專案的「Managed Kafka 檢視者」 (roles/managedkafka.Viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要進一步瞭解這個角色,請參閱「Managed Service for Apache Kafka 預先定義的角色」。
查看單一 Managed Service for Apache Kafka 指標
如要使用 Google Cloud 控制台查看單一 Managed Service for Apache Kafka 指標,請按照下列步驟操作:
前往 Google Cloud 控制台的「Monitoring」頁面。
在導覽窗格中,選取「指標探索器」。
在「設定」部分中,按一下「選取指標」。
在篩選條件中輸入
Apache Kafka。在「有效資源」中,選取下列任一選項:
Apache Kafka 叢集
Apache Kafka 主題
Apache Kafka 主題分區
Apache Kafka 主題分區消費者群組
選取指標,然後按一下「套用」。
系統會開啟特定指標的頁面。
如要進一步瞭解監控資訊主頁,請參閱 Cloud Monitoring 說明文件。
叢集指標
| 指標 | 說明 | 對等 MBean 名稱 |
|---|---|---|
| cpu/core_usage_time | 叢集的累計 CPU 使用量 (以 vCPU 為單位)。這有助於瞭解叢集的整體作業成本。 | 不適用 |
| cpu/limit | 叢集目前設定的 CPU 數量。可用於監控 CPU 使用率,以 cpu/usage 指標表示比率。 |
不適用 |
| 記憶體/用量 | 叢集目前的 RAM 用量。可用於監控 RAM 使用率,以 memory/limit 指標表示。 |
不適用 |
| memory/limit | 叢集目前設定的 RAM 大小。可用於監控 RAM 使用率,以 memory/usage 指標表示。 |
不適用 |
| 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]+) |
| 分區 | 這個叢集目前處理的分區數量,按代理程式細分。 | 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 |
主題指標
| 指標 | 說明 | 對應的 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]+) |
分區指標
| 指標 | 說明 | 對應的 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 | 磁碟上分割區的大小 (以位元組為單位)。 | - |
消費者群組指標
| 指標 | 說明 | 對應的 MBean 名稱 |
|---|---|---|
| Offset_lag | 每個分區的最新位移和消費者群組上次提交的位移之間的差異。這項指標會估算消費者尚未成功處理的產生訊息數量。 | 不適用 |