- BookKeeper
- [Pulsar Functions](#pulsar functions)
- Proxy
- [Pulsar SQL Worker](#Pulsar SQL Worker)
The metrics exposed by Pulsar are in Prometheus format. The types of metrics are:
- : a cumulative metric that represents a single monotonically increasing counter whose value can only increase or be reset to zero on restart.
- Gauge: a gauge is a metric that represents a single numerical value that can arbitrarily go up and down.
- : 直方图样本观测 (通常是请求持续时间和响应大小) ,并将它们计入可配置的 bucket 中。
- Summary: 与直方图类似的总结样本观察 (通常是请求持续时间和响应大小)。 但它同时也提供了总观测次数以及所有观测值的总和,它会在滑动的时间窗口上计算可配置的分位数。
The ZooKeeper metrics are exposed under “/metrics” at port 8000. You can use a different port by configuring the system property.
请求度量值
Name | 类型 | Description |
---|---|---|
zookeeper_server_requests | 计数器 | 特定服务器收到请求的总数。 |
zookeeper_server_requests_latency_ms | 总结 | 按毫秒计算的请求延迟。 Available labels: type (write, read).
|
The BookKeeper metrics are exposed under “/metrics” at port 8000. You can change the port by updating prometheusStatsHttpPort
in bookkeeper.conf
configuration file.
服务器度量值
Name | 类型 | Description |
---|---|---|
bookie_SERVER_STATUS | 计量表 | bookie 服务器的服务状态。
|
bookkeeper_server_ADD_ENTRY_count | 计数器 | The total number of ADD_ENTRY requests received at the bookie. success 标签会被用于区分成功与失败。 |
bookkeeper_server_READ_ENTRY_count | 计数器 | The total number of READ_ENTRY requests received at the bookie. success 标签会被用于区分成功与失败。 |
bookie_WRITE_BYTES | 计数器 | The total number of bytes written to the bookie. |
bookie_READ_BYTES | 计数器 | The total number of bytes read from the bookie. |
bookkeeper_server_ADD_ENTRY_REQUEST | 直方图 | The histogram of request latency of ADD_ENTRY requests at the bookie. success 标签会被用于区分成功与失败。 |
bookkeeper_server_READ_ENTRY_REQUEST | 直方图 | The histogram of request latency of READ_ENTRY requests at the bookie. success 标签会被用于区分成功与失败。 |
日志度量值
Name | 类型 | Description |
---|---|---|
bookie_journal_JOURNAL_SYNC_count | 计数器 | bookie 中日志 fsync 操作的总次数。 success 标签会被用于区分成功与失败。 |
bookie_journal_JOURNAL_QUEUE_SIZE | 计量表 | 日志队列中待处理的请求总数。 |
bookie_journal_JOURNAL_FORCE_WRITE_QUEUE_SIZE | 计量表 | 在强制写入队列中等待的强制写入 (fsync) 请求总数。 |
bookie_journal_JOURNAL_CB_QUEUE_SIZE | 计量表 | 回调队列中待处理的回调总数。 |
bookie_journal_JOURNAL_ADD_ENTRY | 直方图 | 在日志中添加条目的请求延迟的直方图。 |
bookie_journal_JOURNAL_SYNC | 直方图 | 同步数据到日志磁盘的 fsync 延迟的直方图。 |
Name | 类型 | Description |
---|---|---|
bookie_ledgers_count | 计量表 | bookie 中存储的 ledger 总数。 |
bookie_entries_count | 计量表 | bookie 中存储的条目总数。 |
bookie_write_cache_size | 计量表 | bookie 的写缓存大小(以字节为单位)。 |
bookie_read_cache_size | 计量表 | bookie 的读缓存大小(以字节为单位)。 |
bookie_DELETED_LEDGER_COUNT | 计数器 | bookie 被启动以来被删除的 ledger 总数。 |
bookie_ledger_writable_dirs | 计量表 | bookie 中可写入目录的数量。 |
The broker metrics are exposed under “/metrics” at port 8080. You can change the port by updating webServicePort
to a different port in broker.conf
configuration file.
broker 暴露的所有度量值会带有 cluster=${pulsar_cluster}
标签。 The value of ${pulsar_cluster}
is the pulsar cluster name you configured in broker.conf
.
Broker has the following kinds of metrics:
命名空间度量值
所有命名空间度量值都带有以下标签:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。 - namespace:
namespace=${pulsar_namespace}
.${pulsar_namespace}
是命名空间名称。
Name | 类型 | Description |
---|---|---|
pulsartopics_count | 计量表 | 命名空间下由此 broker 拥有的 Pulsar 主题数。 |
pulsar_subscriptions_count | 计量表 | 命名空间下由此 broker 服务的 Pulsar 订阅数。 |
pulsar_producers_count | 计量表 | 命名空间下连接到此 broker 的活动生产者数。 |
pulsar_consumers_count | 计量表 | 命名空间下连接到此 broker 的活动消费者数。 |
pulsar_rate_in | 计量表 | 命名空间下的所有消息进入此 broker 的频率(消息/秒)。 |
pulsar_rate_out | 计量表 | 命名空间下的所有消息从此 broker 发出的频率(消息/秒)。 |
pulsar_throughput_in | 计量表 | 命名空间下数据进入此 broker 的总吞吐量(字节/秒)。 |
pulsar_throughput_out | 计量表 | 命名空间下数据由此 broker 发出的总吞吐量(字节/秒)。 |
pulsar_storage_size | 计量表 | 命名空间下由此 broker 拥有的主题的总存储大小 (字节)。 |
pulsar_storage_backlog_size | 计量表 | 命名空间下由此 broker 拥有的总积压大小 (消息)。 |
pulsar_storage_offloaded_size | 计量表 | 此命名空间中已卸载到层级存储的数据总量(字节)。 |
pulsar_storage_write_rate | 计量表 | 此命名空间写入到存储的总消息批处理(条目)数 (消息批处理/秒)。 |
pulsar_storage_read_rate | 计量表 | 此命名空间从存储中读取的总消息批处理(条目)数 (消息批处理/秒)。 |
pulsar_subscription_delayed | 计量表 | 被延迟派发的总消息批处理(条目)数。 |
pulsar_storage_write_latency_le | 直方图 | The entry rate of a namespace that the storage write latency is smaller with a given threshold. 可用的阈值:
|
pulsar_entry_size_le | 直方图 | The entry rate of a namespace that the entry size is smaller with a given threshold. Available thresholds:
|
复制度量值
All the replication metrics will also be labelled with remoteCluster=${pulsar_remote_cluster}
.
主题度量值
所有主题度量值都带有以下标签:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。 - namespace:
namespace=${pulsar_namespace}
. 是命名空间名称。 - topic:
topic=${pulsar_topic}
.${pulsar_topic}
是主题名。
Name | 类型 | Description |
---|---|---|
pulsarsubscriptions_count | 计量表 | 主题下由此 broker 服务的 Pulsar 订阅数。 |
pulsar_producers_count | 计量表 | 主题下连接到此 broker 的活动生产者数。 |
pulsar_consumers_count | 计量表 | 主题下连接到此 broker 的活动消费者数。 |
pulsar_rate_in | 计量表 | 主题下的所有消息进入此 broker 的频率(消息/秒)。 |
pulsar_rate_out | 计量表 | 主题下的所有消息从此 broker 发出的频率(消息/秒)。 |
pulsar_throughput_in | 计量表 | 主题下数据进入此 broker 的总吞吐量(字节/秒)。 |
pulsar_throughput_out | 计量表 | 主题下数据由此 broker 发出的总吞吐量(字节/秒)。 |
pulsar_storage_size | 计量表 | 主题下由此 broker 拥有的主题的总存储大小 (字节)。 |
pulsar_storage_backlog_size | 计量表 | 主题下由此 broker 拥有的总积压大小 (消息)。 |
pulsar_storage_offloaded_size | 计量表 | 此主题中已卸载到层级存储的数据总量(字节)。 |
pulsar_storage_backlog_quota_limit | 计量表 | 此主题中限制积压定额的数据总量(字节)。 |
pulsar_storage_write_rate | 计量表 | 此主题写入到存储的总消息批处理(条目)数 (消息批处理/秒)。 |
pulsar_storage_read_rate | 计量表 | 此主题从存储中读取的总消息批处理(条目)数 (消息批处理/秒)。 |
pulsar_subscription_delayed | 计量表 | 被延迟派发的总消息批处理(条目)数。 |
pulsar_storage_write_latency_le | 直方图 | The entry rate of a topic that the storage write latency is smaller with a given threshold. 可用的阈值:
|
pulsar_entry_size_le | 直方图 | The entry rate of a topic that the entry size is smaller with a given threshold. Available thresholds:
|
pulsar_in_bytes_total | 计数器 | The total number of bytes received for this topic |
pulsar_in_messages_total | 计数器 | The total number of messages received for this topic |
pulsar_out_bytes_total | 计数器 | The total number of bytes read from this topic |
pulsar_out_messages_total | 计数器 | The total number of messages read from this topic |
复制度量值
If a namespace that a topic belongs to is configured to be replicated between multiple Pulsar clusters, the corresponding replication metrics will also be exposed when replicationMetricsEnabled
is enabled.
All the replication metrics will also be labelled with remoteCluster=${pulsar_remote_cluster}
.
Name | 类型 | Description |
---|---|---|
pulsar_replication_rate_in | 计量表 | 主题从远程集群进行复制的总消息频率(消息/秒)。 |
pulsar_replication_rate_out | 计量表 | 主题复制到远程集群的总消息频率(消息/秒)。 |
pulsar_replication_throughput_in | 计量表 | 主题从远程集群进行复制的总吞吐量(字节/秒)。 |
pulsar_replication_throughput_out | 计量表 | 主题复制到远程集群的总吞吐量(字节/秒)。 |
pulsar_replication_backlog | 计量表 | 主题复制到远程集群的总积压量(消息)。 |
ManagedLedgerCache 度量值
所有 ManagedLedgerCache 度量值都带有以下标签:
- 集群: cluster=${pulsar_cluster}。 ${pulsar_cluster} is the cluster name that you configured in broker.conf.
Name | 类型 | Description |
---|---|---|
pulsar_ml_cache_evictions | 计量表 | 在过去 1 分钟内的缓存驱逐数。 |
pulsar_ml_cache_hits_rate | 计量表 | 每秒缓存命中数。 |
pulsar_ml_cache_hits_throughput | 计量表 | 从缓存中取出的数据量,以字节/秒为单位 |
pulsar_ml_cache_misses_rate | 计量表 | 每秒缓存失效数 |
pulsar_ml_cache_misses_throughput | 计量表 | 从缓存中取出的数据量,以字节/秒为单位 |
pulsar_ml_cache_pool_active_allocations | 计量表 | 直接场地(direct arena)中当前活动的分配数 |
pulsar_ml_cache_pool_active_allocations_huge | 计量表 | 直接场地(direct arena)中当前活动的大型(huge)分配数 |
pulsar_ml_cache_pool_active_allocations_normal | 计量表 | 直接场地(direct arena)中当前活动的正常(normal)分配数 |
pulsar_ml_cache_pool_active_allocations_small | 计量表 | 直接场地(direct arena)中当前活动的小型(small)分配数 |
pulsar_ml_cache_pool_active_allocations_tiny | 计量表 | 直接场地(direct arena)中当前活动的超小型(tiny)分配数 |
pulsar_ml_cache_pool_allocated | 计量表 | 直接场地(direct arena)中为 chunk 列表分配的总内存 |
pulsar_ml_cache_pool_used | 计量表 | 直接场地(direct arena)中 chunk 列表使用的总内存 |
pulsar_ml_cache_used_size | 计量表 | 用于存储条目负载的字节大小 |
pulsar_ml_count | 计量表 | 当前打开的托管 ledger 数量。 |
所有 managedLedger 度量值都带有以下标签:
- 集群: cluster=${pulsar_cluster}。 ${pulsar_cluster} is the cluster name that you configured in broker.conf.
- 命名空间: namespace=${pulsar_namespace}。 ${pulsar_namespace} 是命名空间名称。
- 分位数: quantile=${quantile}. 分位数是只提供给
直方图
的类型度量值,代表了给定 Bucket 的阈值。
Name | 类型 | Description |
---|---|---|
pulsar_ml_AddEntryBytesRate | 计量表 | 添加消息的字节/秒频率 |
pulsar_ml_AddEntryErrors | 计量表 | 失败的 addEntry 请求数 |
pulsar_ml_AddEntryLatencyBuckets | 直方图 | 给定分位数(阈值)的 ledger 添加条目延迟 。 可用的分位数:
|
pulsar_ml_AddEntryLatencyBuckets_OVERFLOW | 计量表 | The add entry latency > 1s |
pulsar_ml_AddEntryMessagesRate | 计量表 | The msg/s rate of messages added |
pulsar_ml_AddEntrySucceed | 计量表 | The number of addEntry requests that succeeded |
pulsar_ml_EntrySizeBuckets | 直方图 | The add entry size of a ledger with given quantile. Available quantile:
|
pulsar_ml_EntrySizeBuckets_OVERFLOW | 计量表 | The add entry size > 1MB |
pulsar_ml_LedgerSwitchLatencyBuckets | 直方图 | The ledger switch latency with given quantile. 可用的分位数:
|
pulsar_ml_LedgerSwitchLatencyBuckets_OVERFLOW | 计量表 | The ledger switch latency > 1s |
pulsar_ml_MarkDeleteRate | 计量表 | The rate of mark-delete ops/s |
pulsar_ml_NumberOfMessagesInBacklog | 计量表 | The number of backlog messages for all the consumers |
pulsar_ml_ReadEntriesBytesRate | 计量表 | The bytes/s rate of messages read |
pulsar_ml_ReadEntriesErrors | 计量表 | The number of readEntries requests that failed |
pulsar_ml_ReadEntriesRate | 计量表 | The msg/s rate of messages read |
pulsar_ml_ReadEntriesSucceeded | 计量表 | The number of readEntries requests that succeeded |
pulsar_ml_StoredMessagesSize | 计量表 | The total size of the messages in active ledgers (accounting for the multiple copies stored) |
LoadBalancing 度量值
所有负载均衡度量值都带有以下标签:
- 集群: cluster=${pulsar_cluster}。 ${pulsar_cluster} is the cluster name that you configured in broker.conf.
- broker: broker=${broker}. ${broker} is the ip address of the broker
- 度量值: metric=”loadBalancing”。
Name | 类型 | Description |
---|---|---|
pulsar_lb_bandwidth_in_usage | 计量表 | 正在使用的 broker 带宽 |
pulsar_lb_bandwidth_out_usage | 计量表 | 不在使用的 broker 带宽 |
pulsar_lb_cpu_usage | 计量表 | broker 的 cpu 使用量 |
pulsar_lb_directMemory_usage | 计量表 | broker 进程的直接内存使用量 |
pulsar_lb_memory_usage | 计量表 | broker 进程的内存使用量 |
BundleUnloading 度量值
- 集群: cluster=${pulsar_cluster}。 ${pulsar_cluster} is the cluster name that you configured in broker.conf.
- 度量值: metric=”bundleUnloading”。
BundleSplit 度量值
所有 bundleUnloading 度量值都带有以下标签:
- 集群: cluster=${pulsar_cluster}。 ${pulsar_cluster} is the cluster name that you configured in broker.conf.
- 度量值: metric=”bundlesSplit”。
Name | 类型 | Description |
---|---|---|
pulsar_lb_bundles_split_count | 计数器 | 在本次 bundle 切分检查中切分的 bundle 计数 |
Subscription metrics
All the subscription metrics are labelled with the following labels:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。 - namespace:
namespace=${pulsar_namespace}
.${pulsar_namespace}
是命名空间名称。 - topic:
topic=${pulsar_topic}
.${pulsar_topic}
是主题名。 - subscription:
subscription=${subscription}
.${subscription}
is the topic subscription name.
Name | 类型 | Description |
---|---|---|
pulsar_subscription_back_log | 计量表 | The total backlog of a subscription (messages). |
pulsar_subscription_delayed | 计量表 | The total number of messages are delayed to be dispatched for a subscription (messages). |
pulsar_subscription_msg_rate_redeliver | 计量表 | The total message rate for message being redelivered (messages/second). |
pulsar_subscription_unacked_messages | 计量表 | The total number of unacknowledged messages of a subscription (messages). |
pulsar_subscription_blocked_on_unacked_messages | 计量表 | Indicate whether a subscription is blocked on unacknowledged messages or not.
|
pulsar_subscription_msg_rate_out | 计量表 | The total message dispatch rate for a subscription (messages/second). |
pulsar_subscription_msg_throughput_out | 计量表 | The total message dispatch throughput for a subscription (bytes/second). |
Consumer metrics
All the consumer metrics are labelled with the following labels:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。 - namespace:
namespace=${pulsar_namespace}
.${pulsar_namespace}
是命名空间名称。 - topic:
topic=${pulsar_topic}
.${pulsar_topic}
是主题名。 - subscription:
subscription=${subscription}
.${subscription}
is the topic subscription name. - consumer_name: .
${consumer_name}
is the topic consumer name. - consumer_id:
consumer_id=${consumer_id}
.${consumer_id}
is the topic consumer id.
Name | 类型 | Description |
---|---|---|
pulsar_consumer_msg_rate_redeliver | 计量表 | The total message rate for message being redelivered (messages/second). |
pulsar_consumer_unacked_messages | 计量表 | The total number of unacknowledged messages of a consumer (messages). |
pulsar_consumer_blocked_on_unacked_messages | 计量表 | Indicate whether a consumer is blocked on unacknowledged messages or not.
|
pulsar_consumer_msg_rate_out | 计量表 | The total message dispatch rate for a consumer (messages/second). |
pulsar_consumer_msg_throughput_out | 计量表 | The total message dispatch throughput for a consumer (bytes/second). |
pulsar_consumer_available_permits | 计量表 | The available permits for for a consumer. |
All the managed ledger bookie client metrics labelled with the following labels:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。
Name | 类型 | Description |
---|---|---|
pulsarmanagedLedger_client_bookkeeper_ml_scheduler_completed_tasks | 计量表 | 调度程序执行器已执行完成的任务数。 由 broker.conf 中 managedLedgerNumerThrad 配置的调度器线程数所决定的度量值数。 |
pulsarmanagedLedger_client_bookkeeper_ml_scheduler_queue | 计量表 | 在调度器执行者队列中排队的任务数量。 由 broker.conf 中 managedLedgerNumerThrad 配置的调度器线程数所决定的度量值数。 |
pulsarmanagedLedger_client_bookkeeper_ml_scheduler_total_tasks | 计量表 | 调度程序执行器接收的任务数。 由 broker.conf 中 managedLedgerNumerThrad 配置的调度器线程数所决定的度量值数。 |
pulsarmanagedLedger_client_bookkeeper_ml_workers_completed_tasks | 计量表 | worker 执行器已执行完成的任务数。 由 broker.conf 中 managedLedgerNumWorkerThreads 配置的 worker 任务线程数所决定的度量值数。 |
pulsarmanagedLedger_client_bookkeeper_ml_workers_queue | 计量表 | 在 worker 执行者队列中排队的任务数量。 由 broker.conf 中 managedLedgerNumWorkerThreads 配置的调度器线程数所决定的度量值数。 |
pulsarmanagedLedger_client_bookkeeper_ml_workers_total_tasks | 计量表 | worker 执行器接收的任务数。 由 broker.conf 中 managedLedgerNumWorkerThreads 配置的 worker 线程数所决定的度量值数。 |
pulsar_managedLedger_client_bookkeeper_ml_scheduler_task_execution | 总结 | 按毫秒计算的调度器任务执行延迟。 |
pulsar_managedLedger_client_bookkeeper_ml_scheduler_task_queued | 总结 | 按毫秒计算的调度器任务排队延迟。 |
pulsar_managedLedger_client_bookkeeper_ml_workers_task_execution | 总结 | 按毫秒计算的 worker 任务执行延迟。 |
pulsar_managedLedger_client_bookkeeper_ml_workers_task_queued | 总结 | 按毫秒计算的 worker 任务排队延迟。 |
Pulsar Functions
所有 Pulsar Functions 度量值都带有以下标签:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。 - namespace:
namespace=${pulsar_namespace}
.${pulsar_namespace}
是命名空间名称。
Name | 类型 | Description |
---|---|---|
pulsar_function_processed_successfully_total | 计数器 | 成功处理的消息总数。 |
pulsar_function_processed_successfully_total_1min | 计数器 | 在过去 1 分钟内成功处理的消息总数。 |
pulsar_function_system_exceptions_total | 计数器 | 系统异常总数。 |
pulsar_function_system_exceptions_total_1min | 计数器 | 在过去 1 分钟内的系统异常总数。 |
pulsar_function_user_exceptions_total | 计数器 | 用户异常总数。 |
pulsar_function_user_exceptions_total_1min | 计数器 | 在过去 1 分钟内的用户异常总数。 |
pulsar_function_process_latency_ms | 总结 | 进程延迟,以毫秒计。 |
pulsar_function_process_latency_ms_1min | 总结 | 在过去 1 分钟内的进程延迟,以毫秒计。 |
pulsar_function_last_invocation | 计量表 | 该函数最后一次调用的时间戳。 |
pulsar_function_received_total | 计数器 | 从源接收的消息总数。 |
pulsar_function_received_total_1min | 计数器 | 在过去 1 分钟内从源接收的消息总数。 |
Proxy
所有代理度量值都带有以下标签:
- cluster:
cluster=${pulsar_cluster}
.${pulsar_cluster}
就是你在broker.conf
中配置的集群名称。 - kubernetes_pod_name: .
${kubernetes_pod_name}
是 kubernetes pod 名称。
Pulsar SQL Worker
Name | 类型 | Description |
---|---|---|
split_bytes_read | 计数器 | 从 BookKeeper 读取的字节数。 |
split_num_messages_deserialized | 计数器 | 反序列化的消息数量。 |
split_num_record_deserialized | 计数器 | 反序列化的记录数量。 |
split_bytes_read_per_query | 总结 | 每个查询中读取的字节总数. |
split_entry_deserialize_time | 总结 | 用于对条目进行反序列化的时间。 |
split_entry_deserialize_time_per_query | 总结 | 用于对每个查询中的条目进行反序列化的时间。 |
split_entry_queue_dequeue_wait_time | 总结 | 由于队列为空而等待从条目队列获取条目花费的时间。 |
split_entry_queue_dequeue_wait_time_per_query | 总结 | 从每个查询的条目队列中等待获取条目的总时间。 |
split_message_queue_dequeue_wait_time_per_query | 总结 | 每个查询中由于队列为空而等待从消息队列中移除所花的时间。 |
split_message_queue_enqueue_wait_time | 总结 | 由于消息队列已满,等待进入消息队列的时间。 |
split_message_queue_enqueue_wait_time_per_query | 总结 | 每个查询中由于消息队列已满,等待进入消息队列的时间。 |
split_num_entries_per_batch | 总结 | 每个批处理的条目数。 |
split_num_entries_per_query | 总结 | 每个查询的条目数。 |
split_num_messages_deserialized_per_entry | 总结 | 每个条目反序列化的消息数量。 |
split_num_messages_deserialized_per_query | 总结 | 每个查询反序列化的消息数量。 |
split_read_attempts | 总结 | 读取尝试次数(如果队列已满会失败)。 |
split_read_attempts_per_query | 总结 | 每个查询的读取尝试次数。 |
split_read_latency_per_batch | 总结 | 每个批处理的读取延迟。 |
split_read_latency_per_query | 总结 | 每个查询的总读取延迟。 |
split_record_deserialize_time | 总结 | 将消息反序列化到记录花费的时间。 例如,Avro、JSON 等等。 |
split_record_deserialize_time_per_query | 总结 | 每个查询将消息反序列化到记录花费的时间。 |
split_total_execution_time | 总结 | 总执行时间。 |
The following are some Grafana dashboards examples:
- apache-pulsar-grafana-dashboard: A collection of grafana dashboard templates for different Pulsar components running on both Kubernetes and on-premise machines.