Pulsar OpenTelemetry Metrics
Pulsar exposes the following OpenTelemetry metrics.
Broker
Connection Metrics
pulsar.broker.connection.count
The number of connections.
- Type: UpDownCounter
- Unit: {connection}
- Attributes:
- pulsar.connection.status- The status of the connection. Can be one of:- active
- open
- close
 
 
pulsar.broker.connection.create.operation.count
The number of connection create operations.
- Type: UpDownCounter
- Unit: {operation}
- Attributes:
- pulsar.connection.create.operation.status- The status of the create operation. Can be one of:- success
- failure
 
 
pulsar.broker.connection.rate_limit.count
The number of times a connection has been rate limited.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.connection.rate_limit.operation.name- The name of the rate limiting operation performed. Can be one of:- paused
- resumed
- throttled
- unthrottled
 
 
Topic Messaging metrics
pulsar.broker.topic.subscription.count
The number of Pulsar subscriptions of the topic served by this broker.
- Type: UpDownCounter
- Unit: {subscription}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.producer.count
The number of active producers of the topic connected to this broker.
- Type: UpDownCounter
- Unit: {producer}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.consumer.count
The number of active consumers of the topic connected to this broker.
- Type: UpDownCounter
- Unit: {consumer}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.message.incoming.count
The total number of messages received for this topic.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.message.outgoing.count
The total number of messages read from this topic.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.message.incoming.size
The total number of messages bytes received for this topic.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.message.outgoing.size
The total number of messages bytes read from this topic.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.publish.latency
The latency in seconds for publishing messages.
- Type: Histogram
- Unit: s
pulsar.broker.topic.publish.rate.limit.count
The number of times the publish rate limit is triggered.
- Type: Counter
- Unit: {event}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.size
The total storage size of the messages in this topic, including storage used by replicas.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.logical.size
The storage size of the messages in this topic, excluding storage used by replicas.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.backlog.size
The size of the backlog storage for this topic.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.offloaded.size
The total amount of the data in this topic offloaded to the tiered storage.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.backlog.quota.limit.size
The size based backlog quota limit for this topic.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.backlog.quota.limit.time
The time based backlog quota limit for this topic.
- Type: Gauge
- Unit: s
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.backlog.quota.eviction.count
The number of times a backlog was evicted since it has exceeded its quota.
- Type: Counter
- Unit: {eviction}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.backlog.quota.type- The backlog quota type. Can be one of:- size
- time
 
 
pulsar.broker.topic.storage.backlog.age
The age of the oldest unacknowledged message (backlog).
- Type: Gauge
- Unit: s
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.entry.outgoing.count
The total message batches (entries) written to the storage for this topic.
- Type: Counter
- Unit: {entry}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.storage.entry.incoming.count
The total message batches (entries) read from the storage for this topic.
- Type: Counter
- Unit: {entry}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.compaction.removed.message.count
The total number of messages removed by compaction.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.compaction.operation.count
The total number of compaction operations.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.compaction.status- The compaction status. Can be one of:- success
- `failure
 
 
pulsar.broker.topic.compaction.duration
The total time duration of compaction operations on the topic.
- Type: DoubleUpDownCounter
- Unit: s
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.compaction.incoming.size
The total count of bytes read by the compaction process for this topic.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.compaction.outgoing.size
The total count of bytes written by the compaction process for this topic.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.compaction.compacted.entry.count
The total number of compacted entries.
- Type: Counter
- Unit: {entry}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.compaction.compacted.entry.size
The total size of the compacted entries.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.broker.topic.transaction.count
The number of transactions on this topic.
- Type: UpDownCounter
- Unit: {transaction}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.transaction.status- The transaction status. Can be one of:- active
- committed
- aborted
 
 
pulsar.broker.topic.transaction.buffer.client.operation.count
The number of operations on the transaction buffer client.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.transaction.status- The status of the Pulsar transaction. Can be one of:- aborted
- committed
 
- pulsar.transaction.buffer.client.operation.status- The status of the Pulsar transaction buffer client operation. Can be one of:- failure
- success
 
 
pulsar.broker.topic.subscription.delayed.entry.count
The total number of message batches (entries) delayed for dispatching.
- Type: UpDownCounter
- Unit: {entry}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
 
Topic Lookup metrics
pulsar.broker.lookup.request.duration
The duration of topic lookup requests (either binary or HTTP)
- Type: Histogram
- Unit: second
- Attributes:
- pulsar.lookup.response- The response type of the lookup request- failure
- broker
- redirect
 
 
pulsar.broker.request.topic.lookup.concurrent.usage
The number of pending lookup operations in the broker. When it reaches threshold "maxConcurrentLookupRequest" defined in broker.conf, new requests are rejected.
- Type: UpDownCounter
- Unit: {operation}
pulsar.broker.request.topic.lookup.concurrent.limit
The maximum number of pending lookup operations in the broker. Equal to "maxConcurrentLookupRequest" defined in broker.conf.
- Type: UpDownCounter
- Unit: {operation}
pulsar.broker.topic.load.concurrent.usage
The number of pending topic load operations in the broker. When it reaches threshold "maxConcurrentTopicLoadRequest" defined in broker.conf, new requests are rejected.
- Type: UpDownCounter
- Unit: {operation}
pulsar.broker.topic.load.concurrent.limit
The maximum number of pending topic load operations in the broker. Equal to "maxConcurrentTopicLoadRequest" defined in broker.conf.
- Type: UpDownCounter
- Unit: {operation}
Metadata Store metrics
pulsar.broker.metadata.store.outgoing.size
The total amount of data written to the metadata store.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.metadata.store.name- The name of the metadata store.
 
pulsar.broker.metadata.store.executor.queue.size
The number of batch operations in the metadata store executor queue.
- Type: UpDownCounter
- Unit: {operation}
- Attributes:
- pulsar.metadata.store.name- The name of the metadata store.
 
Consumer metrics
pulsar.broker.consumer.message.outgoing.count
The total number of messages dispatched to this consumer.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.subscription.name- The topic subscription name.
- pulsar.subscription.type- The subscription type.
- pulsar.consumer.name- The name of the consumer.
- pulsar.consumer.id- The ID of the consumer.
 
pulsar.broker.consumer.message.outgoing.size
The total number of messages bytes dispatched to this consumer.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.subscription.name- The topic subscription name.
- pulsar.subscription.type- The subscription type.
- pulsar.consumer.name- The name of the consumer.
- pulsar.consumer.id- The ID of the consumer.
 
pulsar.broker.consumer.message.ack.count
The total number of message acknowledgments received from this consumer.
- Type: Counter
- Unit: {ack}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.subscription.name- The topic subscription name.
- pulsar.subscription.type- The subscription type.
- pulsar.consumer.name- The name of the consumer.
- pulsar.consumer.id- The ID of the consumer.
 
pulsar.broker.consumer.message.redeliver.count
The total number of messages that have been redelivered to this consumer.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.subscription.name- The topic subscription name.
- pulsar.subscription.type- The subscription type.
- pulsar.consumer.name- The name of the consumer.
- pulsar.consumer.id- The ID of the consumer.
 
pulsar.broker.consumer.message.unack.count
The number of messages currently unacknowledged by this consumer.
- Type: UpDownCounter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.subscription.name- The topic subscription name.
- pulsar.subscription.type- The subscription type.
- pulsar.consumer.name- The name of the consumer.
- pulsar.consumer.id- The ID of the consumer.
 
pulsar.broker.consumer.permit.count
The number of permits currently available for this consumer.
- Type: UpDownCounter
- Unit: {permit}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.subscription.name- The topic subscription name.
- pulsar.subscription.type- The subscription type.
- pulsar.consumer.name- The name of the consumer.
- pulsar.consumer.id- The ID of the consumer.
 
Managed Ledger Cursor metrics
pulsar.broker.managed_ledger.persist.operation.count
The number of acknowledgment operations on the ledger.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The topic namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.cursor.name- The name of the managed cursor.
- pulsar.managed_ledger.cursor.operation.status- The status of the managed cursor operation. Can be one of:- success
- failure
 
 
pulsar.broker.managed_ledger.persist.mds.operation.count
The number of acknowledgment operations in the metadata store.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The topic namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.cursor.name- The name of the managed cursor.
- pulsar.managed_ledger.cursor.operation.status- The status of the managed cursor operation. Can be one of:- success
- failure
 
 
pulsar.broker.managed_ledger.message_range.count
The number of non-contiguous deleted messages ranges.
- Type: UpDownCounter
- Unit: {range}
- Attributes:
- pulsar.namespace- The topic namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.cursor.name- The name of the managed cursor.
 
pulsar.broker.managed_ledger.cursor.outgoing.size
The total amount of data written to the ledger.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.namespace- The topic namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.cursor.name- The name of the managed cursor.
 
pulsar.broker.managed_ledger.cursor.outgoing.logical.size
The total amount of data written to the ledger, not including replicas.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.namespace- The topic namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.cursor.name- The name of the managed cursor.
 
pulsar.broker.managed_ledger.cursor.incoming.size
The total amount of data read from the ledger.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.namespace- The topic namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.cursor.name- The name of the managed cursor.
 
Managed Ledger Cache metrics
pulsar.broker.managed_ledger.count
The total number of managed ledgers.
- Type: UpDownCounter
- Unit: {managed_ledger}
pulsar.broker.managed_ledger.cache.eviction.count
The total number of cache eviction operations.
- Type: Counter
- Unit: {eviction}
pulsar.broker.managed_ledger.cache.entry.count
The number of entries in the entry cache.
- Type: UpDownCounter
- Unit: {entry}
- Attributes:
- pulsar.managed_ledger.cache.entry.status- The status of the cache entry. Can be one of:- active- Indicates the number of entries currently in the cache. Equal to the- evicted - inserted.
- inserted- Indicates the total number of entries inserted into the cache.
- evicted- Indicates the total number of entries evicted from the cache.
 
 
pulsar.broker.managed_ledger.cache.entry.size
The byte amount of entries stored in the entry cache.
- Type: UpDownCounter
- Unit: {By}
pulsar.broker.managed_ledger.cache.operation.count
The number of cache operations.
- Type: Counter
- Unit: {entry}
- Attributes:
- pulsar.managed_ledger.cache.operation.status- The cache operation result. Can be one of:- hit- Indicates a successful cache lookup operation.
- miss- Indicates a failed cache lookup operation.
 
 
pulsar.broker.managed_ledger.cache.operation.size
The byte amount of data retrieved from cache operations.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.managed_ledger.cache.operation.status- The cache operation result. Can be one of:- hit- Indicates a successful cache lookup operation.
- miss- Indicates a failed cache lookup operation.
 
 
pulsar.broker.managed_ledger.cache.pool.allocation.active.count
The number of currently active allocations in the direct arena.
- Type: UpDownCounter
- Unit: {allocation}
- Attributes:
- pulsar.managed_ledger.pool.arena.type- The arena type. Can be one of:- small
- normal
- huge
 
 
pulsar.broker.managed_ledger.cache.pool.allocation.size
The memory allocated in the direct arena.
- Type: UpDownCounter
- Unit: {By}
- Attributes:
- pulsar.managed_ledger.pool.chunk.allocation.type- The chunk allocation type. Can be one of:- allocated
- used
 
 
Producer metrics
pulsar.broker.producer.message.incoming.count
The total number of messages received from this producer.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.producer.name- The name of the producer.
- pulsar.producer.id- The ID of the producer.
- pulsar.producer.access_mode- The access mode of the producer. Can be one of:- shared
- exclusive
- wait_for_exclusive
- exclusive_with_fencing
 
 
pulsar.broker.producer.message.incoming.size
The total number of messages bytes received from this producer.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.producer.name- The name of the producer.
- pulsar.producer.id- The ID of the producer.
- pulsar.producer.access_mode- The access mode of the producer. Can be one of:- shared
- exclusive
- wait_for_exclusive
- exclusive_with_fencing
 
 
pulsar.broker.producer.message.drop.count
The total number of messages dropped from this producer.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.producer.name- The name of the producer.
- pulsar.producer.id- The ID of the producer.
- pulsar.producer.access_mode- The access mode of the producer. Can be one of:- shared
- exclusive
- wait_for_exclusive
- exclusive_with_fencing
 
 
Managed Ledger metrics
pulsar.broker.managed_ledger.message.outgoing.count
The number of write operations to this ledger.
- Type: UpDownCounter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.operation.status- The status of the managed ledger operation. Can be one of:- success
- failure
 
 
pulsar.broker.managed_ledger.message.outgoing.logical.size
The total number of messages bytes written to this ledger, excluding replicas.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
 
pulsar.broker.managed_ledger.message.outgoing.replicated.size
The total number of messages bytes written to this ledger, including replicas.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
 
pulsar.broker.managed_ledger.backlog.count
The number of messages in backlog for all consumers from this ledger.
- Type: UpDownCounter
- Unit: {message}
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
 
pulsar.broker.managed_ledger.message.incoming.count
The number of read operations from this ledger.
- Type: UpDownCounter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
- pulsar.managed_ledger.operation.status- The status of the managed ledger operation. Can be one of:- success
- failure
 
 
pulsar.broker.managed_ledger.message.incoming.size
The total number of messages bytes read from this ledger.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
 
pulsar.broker.managed_ledger.message.incoming.cache.miss.count
The number of cache misses during read operations from this ledger.
- Type: UpDownCounter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
 
pulsar.broker.managed_ledger.mark_delete.count
The total number of mark delete operations for this ledger.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The managed ledger namespace.
- pulsar.managed_ledger.name- The name of the managed ledger.
 
pulsar.broker.managed_ledger.message.outgoing.latency
End-to-end write latency, including time spent in the executor queue.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.namespace- The managed ledger namespace.
 
pulsar.broker.managed_ledger.message.outgoing.ledger.latency
End-to end write latency.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.namespace- The managed ledger namespace.
 
pulsar.broker.managed_ledger.ledger.switch.latency
Time taken to switch to a new ledger.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.namespace- The managed ledger namespace.
 
pulsar.broker.managed_ledger.entry.size
Size of entries written to the ledger.
- Type: Histogram
- Unit: By
- Attributes:
- pulsar.namespace- The managed ledger namespace.
 
pulsar.broker.managed_ledger.inflight.read.limit
Maximum number of bytes that can be retained by managed ledger data read from storage or cache.
- Type: Counter
- Unit: By
pulsar.broker.managed_ledger.inflight.read.usage
Estimated number of bytes retained by managed ledger data read from storage or cache.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.managed_ledger.inflight.read.usage.state- Indicates managed ledger memory limiter usage state. Can be one of:- used
- free
 
 
Web Executor Service metrics
pulsar.web.executor.thread.limit
The thread limits for the pulsar-web executor pool.
- Type: UpDownCounter
- Unit: {thread}
- Attributes:
- pulsar.web.executor.thread.limit.type- The limit type for the thread pool.- max
- min
 
 
pulsar.web.executor.thread.usage
The current usage of threads in the pulsar-web executor pool.
- Type: UpDownCounter
- Unit: {thread}
- Attributes:
- pulsar.web.executor.thread.usage.type- The usage type for the thread pool.- active- Indicates the number of threads actively serving requests.
- current- Indicates the total number of threads currently associated with the pool.
- idle- Indicates the number of threads available to serve requests.
 
 
Replicator metrics
pulsar.broker.replication.message.incoming.count
The total number of messages received from the remote cluster through this replicator.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.outgoing.count
The total number of messages sent to the remote cluster through this replicator.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.incoming.size
The total number of messages bytes received from the remote cluster through this replicator.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.outgoing.size
The total number of messages bytes sent to the remote cluster through this replicator.
- Type: Counter
- Unit: {By}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.backlog.count
The total number of messages in the backlog for this replicator.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.backlog.age
The age of the oldest message in the replicator backlog.
- Type: Gauge
- Unit: s
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.expired.count
The total number of messages that expired for this replicator.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
pulsar.broker.replication.message.dropped.count
The total number of messages dropped by this replicator.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.domain- The domain of the topic. Can be one of:- persistent
- non-persistent
 
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.replication.remote.cluster.name- The name of the remote cluster.
 
Schema Registry Metrics
pulsar.broker.request.schema_registry.duration
The duration of Schema Registry requests
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.namespace- The namespace referred by the Schema Registry request
- pulsar.schema_registry.request- The Schema Registry request type- get
- list
- put
- delete
 
- pulsar.schema_registry.response- The Schema Registry response type- success
- failure
 
 
pulsar.broker.operation.schema_registry.compatibility_check.count
The number of Schema Registry compatibility check operations performed by the broker.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.namespace- The namespace referred by the compatibility check operation
- pulsar.schema_registry.compatibility_check.response- The compatibility check response type- compatible
- incompatible
 
 
HTTP Request Filter Metrics
pulsar.web.filter.rate_limit.request.count
Counter of HTTP requests processed by the rate limiting filter.
- Type: Counter
- Unit: {request}
- Attributes:
- pulsar.web.filter.rate_limit.result- The result of the rate limiting operation. Can be one of:- accepted
- rejected
 
 
Transaction Coordinator Metrics
pulsar.broker.transaction.coordinator.transaction.count
The number of transactions handled by the coordinator.
- Type: UpDownCounter
- Unit: {transaction}
- Attributes:
- pulsar.transaction.coordinator.id- The ID of the Pulsar transaction coordinator.
- pulsar.transaction.status- The status of the Pulsar transaction. Can be one of:- aborted
- active
- created
- committed
- timeout
 
 
pulsar.broker.transaction.coordinator.append.log.count
The number of transaction metadata entries appended by the coordinator.
- Type: Counter
- Unit: {entry}
- Attributes:
- pulsar.transaction.coordinator.id- The ID of the Pulsar transaction coordinator.
- pulsar.transaction.status- The status of the Pulsar transaction. Can be one of:- aborted
- active
- created
- committed
- timeout
 
 
Transaction Pending Acknowledgment Store Metrics
pulsar.broker.transaction.pending.ack.store.transaction.count
The number of transactions handled by the persistent ack store.
- Type: Counter
- Unit: {transaction}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition.index- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription.name- The name of the Pulsar subscription.
- pulsar.transaction.status- The Pulsar transaction status. Can be one of:- aborted
- committed
 
- pulsar.transaction.pending.ack.store.operation.status- The status of the pending acknowledgment store operation. Can be one of:- failure
- success
 
 
Authentication Metrics
pulsar.authentication.operation.count
The number of authentication operations.
- Type: Counter
- Unit: {operation}
- Attributes:
- pulsar.authentication.provider- The name of the authentication provider class.
- pulsar.authentication.method- The name of the authentication method.
- pulsar.authentication.result- The authentication result. Can be one of:- success
- failure
 
- pulsar.authentication.error- The authentication error, if the result is- failure.
 
Token Metrics
pulsar.authentication.token.expired.count
The total number of expired tokens.
- Type: Counter
- Unit: {token}
pulsar.authentication.token.expiry.duration
The remaining time of expiring token in seconds.
- Type: Histogram
- Unit: s
Replication Subscription Metrics
pulsar.broker.replication.subscription.snapshot.operation.count
The number of snapshot operations attempted.
- Type: Counter
- Unit: {operation}
pulsar.broker.replication.subscription.snapshot.operation.duration
Time taken to complete a consistent snapshot operation across clusters.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.replication.subscription.snapshot.operation.result- The result of the snapshot operation. Can be one of:- success
- timeout
 
 
Java Client
Producer Metrics
pulsar.client.producer.message.send.duration
Publish latency experienced by the application, includes client batching time.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.response.status- The response status. Can be one of:- success
- failed
 
 
pulsar.client.producer.rpc.send.duration
Publish RPC latency experienced internally by the client when sending data to receiving an ack.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.response.status- The response status. Can be one of:- success
- failed
 
 
pulsar.client.producer.message.send.size
The number of bytes published.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.client.producer.message.pending.count
The number of messages in the producer internal send queue, waiting to be sent.
- Type: UpDownCounter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.client.producer.message.pending.size
The size of the messages in the producer internal queue, waiting to be sent.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.client.producer.opened
The number of producer sessions opened.
- Type: Counter
- Unit: {session}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
 
pulsar.client.producer.closed
The number of producer sessions closed.
- Type: Counter
- Unit: {session}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
 
Consumer Metrics
pulsar.client.consumer.opened
The number of consumer sessions opened.
- Type: Counter
- Unit: {session}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.closed
The number of consumer sessions closed.
- Type: Counter
- Unit: {session}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.message.received.count
The number of messages explicitly received by the consumer application.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.message.received.size
The number of bytes explicitly received by the consumer application.
- Type: Counter
- Unit: By
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.receive_queue.count
The number of messages currently sitting in the consumer receive queue.
- Type: UpDownCounter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.receive_queue.size
The total size in bytes of messages currently sitting in the consumer receive queue.
- Type: UpDownCounter
- Unit: By
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.message.ack
The number of acknowledged messages.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.message.nack
The number of negatively acknowledged messages.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.message.dlq
The number of messages sent to the dead letter queue.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
pulsar.client.consumer.message.ack.timeout
The number of messages that were not acknowledged in the configured timeout period, hence, were requested by the client to be redelivered.
- Type: Counter
- Unit: {message}
- Attributes:
- pulsar.tenant- The topic tenant.
- pulsar.namespace- The topic namespace.
- pulsar.topic- The topic name.
- pulsar.partition- The partition index of the topic. Present only if the topic is partitioned.
- pulsar.subscription- The subscription name.
 
Connection Metrics
pulsar.client.connection.opened
The number of connections opened.
- Type: Counter
- Unit: {connection}
pulsar.client.connection.closed
The number of connections closed.
- Type: Counter
- Unit: {connection}
pulsar.client.connection.failed
The number of failed connection attempts.
- Type: Counter
- Unit: {connection}
- Attributes:
- pulsar.failure.type- The type of connection failure. Can be one of:- tcp-failed
- handshake
 
 
Lookup Service Metrics
pulsar.client.lookup.duration
Duration of lookup operations.
- Type: Histogram
- Unit: s
- Attributes:
- pulsar.lookup.transport-type- The transport type used for the lookup. Can be one of:- http
- binary
 
- pulsar.response.status- The response status. Can be one of:- success
- failed
 
 
Memory Buffer Metrics
pulsar.client.memory.buffer.usage
Current memory buffer usage by the client.
- Type: UpDownCounter
- Unit: By
pulsar.client.memory.buffer.limit
Memory buffer limit configured for the client.
- Type: UpDownCounter
- Unit: By