This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new 7dd40d81b99b [feat][site] PIP-264: Document topic messaging metrics
(#880)
7dd40d81b99b is described below
commit 7dd40d81b99b97d25d0c905973bf74865fcfc70e
Author: Dragos Misca <[email protected]>
AuthorDate: Mon May 6 16:51:02 2024 -0700
[feat][site] PIP-264: Document topic messaging metrics (#880)
---
docs/reference-metrics-opentelemetry.md | 363 ++++++++++++++++++++++++++++++++
1 file changed, 363 insertions(+)
diff --git a/docs/reference-metrics-opentelemetry.md
b/docs/reference-metrics-opentelemetry.md
index dd0b96d9f9ee..8c43f58800e5 100644
--- a/docs/reference-metrics-opentelemetry.md
+++ b/docs/reference-metrics-opentelemetry.md
@@ -8,6 +8,369 @@ Pulsar exposes the following OpenTelemetry metrics.
## Broker
+### 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.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.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