Pulsar stats
Topic stats
The following table outlines the stats of a topic. For more details about how to get these stats, see Get stats.
All stats below are reset to 0 upon broker restart or topic unloading, except the stats marked with asterisks * (the values of them keep unchanged).
| Stat | Description |
|---|---|
| msgRateIn | The sum of all local and replication publishers' publish rates (message per second). |
| msgThroughputIn | The sum of all local and replication publishers' publish rates (byte per second). |
| msgRateOut | The sum of all local and replication consumers' dispatch rates (message per second). |
| msgThroughputOut | The sum of all local and replication consumers' dispatch rates (byte per second). |
| averageMsgSize | The average size (bytes) of messages published within the last interval. |
| storageSize* | The sum of the ledgers' storage size in BookKeeper and in tiered storage for a topic (in bytes). |
| offloadedStorageSize* | The sum of the storage size in tiered storage for a topic (in bytes). Note: the total storage size of a topic = storageSize, includes offloadedStorageSize. |
| earliestMsgPublishTimeInBacklogs* | The publish time of the earliest message in the backlog (in milliseconds). |
| bytesInCounter | The total bytes published to the topic. |
| msgInCounter | The total messages published to the topic. |
| bytesOutCounter | The total bytes delivered to consumers. |
| msgOutCounter | The total messages delivered to consumers. |
| msgChunkPublished | The topics that have chunked messages published on it. |
| backlogSize* | The estimated total unconsumed or backlog size (in bytes). |
| waitingPublishers | The number of publishers waiting in a queue in exclusive access mode. |
| deduplicationStatus | The status of message deduplication for the topic. |
| topicEpoch | The topic epoch or empty if not set. |
| filteredEntriesCount | The count of skipped entries for the topic. |
| nonContiguousDeletedMessagesRanges | The number of non-contiguous deleted messages ranges. |
| nonContiguousDeletedMessagesRangesSerializedSize | The serialized size of non-contiguous deleted messages ranges. |
| ownerBroker | The broker that owns this topic. |
| publishers | The list of all local publishers on the topic, ranging from zero to thousands. |
| subscriptions | The list of all local subscriptions to the topic. |
| replication | This section gives the stats for cross-colo replication of this topic. |
Producer stats
| Stat | Description |
|---|---|
| producerId | The internal identifier for this producer on this topic. |
| producerName | The internal identifier for this producer, generated by the client library. |
| address | IP address and source port for the connection of this producer. |
| connectedSince | The timestamp when this producer is created or reconnected last time. |
| accessMode | The type of access to the topic that the producer requires. |
| msgRateIn | The total rate of messages (message per second) published by this publisher. |
| msgThroughputIn | The total throughput (byte per second) of the messages published by this publisher. |
| averageMsgSize | The average message size in bytes from this publisher within the last interval. |
| chunkedMessageRate | The total rate of chunked messages published by this publisher. |
| clientVersion | The client library version of this producer. |
| metadata | The metadata (key/value strings) associated with this publisher. |
Subscription stats
| Stat | Description |
|---|---|
| my-subscription | The name of this subscription. It is defined by the client. |
| msgRateOut | The total rate of messages (message per second) delivered on this subscription. |
| msgThroughputOut | The total throughput (byte per second) delivered on this subscription. |
| msgBacklog | The number of messages in the subscription backlog. |
| type | This subscription type. |
| msgRateExpired | The rate at which messages are discarded instead of dispatched from this subscription due to TTL. |
| lastExpireTimestamp | The timestamp of the last message expiration. |
| lastConsumedFlowTimestamp | The timestamp of the last flow command received. |
| lastConsumedTimestamp | The latest timestamp of all the consumed timestamps of the consumers. |
| lastAckedTimestamp | The latest timestamp of all the acknowledged timestamps of the consumers. |
| msgRateRedeliver | The total rate of messages redelivered on this subscription (message per second). |
| chunkedMessageRate | The chunked message dispatch rate. |
| earliestMsgPublishTimeInBacklog* | The publish time of the earliest message in the backlog for the subscription (in milliseconds). |
| msgBacklogNoDelayed | The number of messages in the subscription backlog that do not contain the delay messages. |
| blockedSubscriptionOnUnackedMsgs | The flag to verify if a subscription is blocked due to reaching the threshold of unacked messages. |
| msgDelayed | The number of delayed messages that are currently tracked. |
| unackedMessages | The number of unacknowledged messages for the subscription, where an unacknowledged message is one that has been sent to a consumer but not yet acknowledged. This field is only meaningful when using a subscription that tracks individual message acknowledgment. |
| activeConsumerName | The name of the consumer that is active for single active consumer subscriptions (such as failover or exclusive). |
| totalMsgExpired | The total messages expired on this subscription. |
| lastMarkDeleteAdvancedTimestamp | The last MarkDelete position advanced timestamp. |
| durable | Whether the subscription is durable or ephemeral (for example, from a reader). |
| replicated | Mark that the subscription state is kept in sync across different regions. |
| allowOutOfOrderDelivery | Whether out-of-order delivery is allowed on the Key_Shared subscription. |
| keySharedMode | The options of the Key_Shared subscription mode include AUTO_SPLIT or STICKY. |
| consumersAfterMarkDeletePosition | Get recentJoinedConsumers for the Key_Shared subscription. |
| filterProcessedMsgCount | The number of messages processed by EntryFilter. |
| filterAcceptedMsgCount | The number of messages accepted by EntryFilter. |
| filterRejectedMsgCount | The number of messages rejected by EntryFilter. |
| filterRescheduledMsgCount | The number of messages rescheduled by EntryFilter. |
| bytesOutCounter | The total bytes delivered to a consumer. |
| msgOutCounter | The total messages delivered to a consumer. |
| backlogSize* | The size of backlog for this subscription (in bytes). |
| nonContiguousDeletedMessagesRanges | The number of non-contiguous deleted messages ranges. |
| nonContiguousDeletedMessagesRangesSerializedSize | The serialized size of non-contiguous deleted messages ranges. |
| consumers | The list of connected consumers for this subscription. |
Consumer stats
| Stat | Description |
|---|---|
| consumerName | Internal identifier for this consumer, generated by the client library. |
| msgRateOut | The total rate of messages (message per second) delivered to the consumer. |
| msgThroughputOut | The total throughput (byte per second) delivered to the consumer. |
| availablePermits | The number of messages that the consumer has space for in the client library's listening queue. 0 means the client library's queue is full and receive() isn't called. A non-zero value means this consumer is ready for dispatched messages. |
| unackedMessages | The number of unacknowledged messages for the consumer, where an unacknowledged message has been sent to the consumer but not yet acknowledged. This field is only meaningful when using a subscription that tracks individual message acknowledgment. |
| blockedConsumerOnUnackedMsgs | The flag used to verify if the consumer is blocked due to reaching the threshold of the unacknowledged messages. |
| lastConsumedTimestamp (Deprecated) | The timestamp when the consumer reads a message the last time. |
| lastConsumedTime | The time when the consumer reads a message the last time. |
| lastAckedTimestamp (Deprecated) | The timestamp when the consumer acknowledges a message the last time. |
| lastAckedTime | The time when the consumer acknowledges a message the last time. |
| address | The IP address and source port for the connection of this consumer. |
| connectedSince | The timestamp when this consumer is created or reconnected last time. |
| clientVersion | The client library version of this consumer. |
| bytesOutCounter | The total bytes delivered to a consumer. |
| msgOutCounter | The total messages delivered to a consumer. |
| msgRateRedeliver | The total rate of messages redelivered by this consumer (message per second). |
| chunkedMessageRate | The total rate of chunked messages delivered to this consumer. |
| avgMessagesPerEntry | The number of average messages per entry for the consumer consumed. |
| readPositionWhenJoining | The read position of the cursor when the consumer joins. |
| keyHashRanges | The hash ranges assigned to this consumer if it uses Key_Shared sub mode. |
| metadata | The metadata (key/value strings) associated with this consumer. |
Replication stats
| Stat | Description |
|---|---|
| msgRateIn | The total rate (message per second) of messages received from the remote cluster. |
| msgThroughputIn | The total throughput (byte per second) received from the remote cluster. |
| msgRateOut | The total rate of messages (message per second) delivered to the replication-subscriber. |
| msgThroughputOut | The total throughput (byte per second) delivered to the replication-subscriber. |
| msgRateExpired | The total rate of messages (message per second) expired. |
| replicationBacklog | The number of messages pending to be replicated to remote cluster. |
| connected | Whether the outbound replicator is connected. |
| replicationDelayInSeconds | How long the oldest message has been waiting to be sent through the connection when connected. |
| inboundConnection | The IP and port of the broker in the remote cluster's publisher connection to this broker. |
| inboundConnectedSince | The TCP connection used to publish messages to the remote cluster. If no local publishers are connected, this connection is automatically closed after a minute. |
| outboundConnection | The address of the outbound replication connection. |
| outboundConnectedSince | The timestamp of establishing an outbound connection. |
Topic internal stats
The following table outlines the internal stats inside a topic. For more details about how to get these stats, see Get stats.
| Stat | Description |
|---|---|
| entriesAddedCounter | Messages published since this broker loads this topic. |
| numberOfEntries | The total number of messages tracked. |
| totalSize | The total storage size in bytes of all messages. |
| currentLedgerEntries | The count of messages written to the ledger that is currently open for writing. |
| currentLedgerSize | The size in bytes of messages written to the ledger that is currently open for writing. |
| lastLedgerCreatedTimestamp | The time when the last ledger is created. |
| lastLedgerCreationFailureTimestamp | The time when the last ledger is failed. |
| waitingCursorsCount | The number of cursors that are caught up and waiting for a new message to be published. |
| pendingAddEntriesCount | The number of messages that have write requests (asynchronous) waiting on completion. |
| lastConfirmedEntry | The ledgerid:entryid of the last message that is written successfully. If the entryid is -1, then the ledger is opened or is currently opened but has no entries written yet. |
| state | The state of the cursor ledger. The state LedgerOpened means that a ledger is open for saving published messages. |
| ledgers | The ordered list of all ledgers for this topic that holds its messages. |
| cursors | The list of all cursors on this topic. Each subscription in the topic stats has a cursor. |
| markDeletePosition | The ack position: the last message that the subscriber acknowledges. All messages before this position are acknowledged by the subscriber. |
| readPosition | The latest position of the subscriber for reading messages. |
| waitingReadOp | This is true when the subscription reads the latest message that is published to the topic and waits for new messages to be published. |
| pendingReadOps | The count of outstanding read requests to the BookKeepers in progress. |
| messagesConsumedCounter | The number of messages this cursor has acknowledged since this broker loads this topic. |
| cursorLedger | The ledger used to persistently store the current markDeletePosition. |
| cursorLedgerLastEntry | The last entryid used to persistently store the current markDeletePosition. |
| individuallyDeletedMessages | The range of messages acknowledged between markDeletePosition and the readPosition when acknowledges are done out of order. |
| lastLedgerSwitchTimestamp | The last time when the cursor ledger is rolled over. |
| ledgers | The ordered list of all ledgers for this topic that holds messages. |
| schemaLedgers | The ordered list of all ledgers for this topic schema. |
| compactedLedger | The ledgers holding un-acked messages after topic compaction. |
| ledgerId | The ID of this ledger. |
| entries | The total number of entries that belong to this ledger. |
| size | The size of messages written to this ledger (in bytes). |
| offloaded | Whether this ledger is offloaded. The value is false for the compacted topic ledger. |
| metadata | The ledger metadata. |