Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat][site] PIP-264: Document topic messaging metrics #880

Merged
Merged
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
b840cab
Update OpenTelemetry Topic Lookup metrics
dragosvictor Feb 14, 2024
ea18656
Add draft OpenTelemetry documentation
dragosvictor Mar 6, 2024
722bc38
Merge remote-tracking branch 'origin/main' into pip-264-topic-lookup-…
dragosvictor Mar 6, 2024
a0a3345
Add otel config
dragosvictor Mar 11, 2024
dd2c41d
Add deploy page
dragosvictor Mar 13, 2024
4ce8436
Add topic lookup metric descriptions
dragosvictor Mar 13, 2024
a4d1ce4
Cleanup
dragosvictor Mar 13, 2024
eb7d42b
Update observability sidebar
dragosvictor Mar 14, 2024
3a02b78
Update deploy instructions
dragosvictor Mar 14, 2024
cfd208c
Update resource attributes
dragosvictor Mar 14, 2024
6c56b43
Merge remote-tracking branch 'origin/main' into pip-264-topic-lookup-…
dragosvictor Mar 14, 2024
20c8b1e
Fix reference name
dragosvictor Mar 14, 2024
9053c49
Merge remote-tracking branch 'origin/main' into pip-264-topic-lookup-…
dragosvictor Mar 14, 2024
1d91675
Add note about log and trace signals
dragosvictor Mar 14, 2024
97c56a2
Add note about gradual metric migration
dragosvictor Mar 14, 2024
b3cd1cc
Fix link for OTLP exporter doc
dragosvictor Mar 14, 2024
9ccff2a
Add note about the default export interval
dragosvictor Mar 14, 2024
a64b956
Add note about the OTLP periodicity
dragosvictor Mar 14, 2024
3519618
Add note regarding Resource Providers mechanism
dragosvictor Mar 14, 2024
b465a69
Clarify extra resource attributes can be added
dragosvictor Mar 14, 2024
8b64635
Add note about metric cardinality
dragosvictor Mar 20, 2024
084b07d
Add link to file based config doc
dragosvictor Mar 20, 2024
4e2f18a
Update docs/deploy-monitoring-opentelemetry.md
dragosvictor Mar 20, 2024
c2289f4
Add note regarding Prometheus exporters
dragosvictor Mar 20, 2024
91f3976
Merge branch 'pip-264-topic-lookup-metrics' of github.com:dragosvicto…
dragosvictor Mar 20, 2024
e59ed09
Add note regarding manual instrumentation
dragosvictor Mar 20, 2024
c4e2b34
Add note regarding resource provider configs
dragosvictor Mar 20, 2024
26fa5b9
Reformat metrics reference
dragosvictor Mar 20, 2024
a4f1e29
Move instructions to Monitoring page
dragosvictor Mar 20, 2024
26dcaa3
Fix indentation
dragosvictor Mar 20, 2024
f2cb8f8
Add link to metrics reference
dragosvictor Mar 20, 2024
b4bd0a8
Merge branch 'main' into pip-264-topic-lookup-metrics
dragosvictor Mar 21, 2024
5ef2253
Fix indentation in metrics reference doc
dragosvictor Mar 21, 2024
255008e
Address pulsar.cluster attribute reference
dragosvictor Apr 1, 2024
b686877
Merge remote-tracking branch 'origin/main' into pip-264-topic-lookup-…
dragosvictor Apr 1, 2024
524ebaa
Remove extra wording
dragosvictor Apr 1, 2024
1a321ab
Add note about exporter performance improvements
dragosvictor Apr 2, 2024
cc7e86a
Merge remote-tracking branch 'origin/main' into pip-264-topic-lookup-…
dragosvictor Apr 2, 2024
baafbcd
Add Topic Messaging metrics
dragosvictor Apr 3, 2024
ee0c2d6
Undo update to yarn.lock
dragosvictor Apr 3, 2024
74eedc6
Merge remote-tracking branch 'origin/main' into pip-264-topic-messagi…
dragosvictor Apr 3, 2024
a7b409a
Merge remote-tracking branch 'origin/main' into pip-264-topic-messagi…
dragosvictor Apr 4, 2024
d6ccef0
Merge remote-tracking branch 'origin/main' into pip-264-topic-messagi…
dragosvictor Apr 9, 2024
8986d38
Update descriptions
dragosvictor Apr 9, 2024
0c31a5f
Update metric types
dragosvictor Apr 22, 2024
3563820
Remove reference to pulsar.broker.topic.consumer.msg.ack
dragosvictor Apr 23, 2024
b6f902f
Clarify semantics of pulsar.broker.topic.compaction.removed.message.c…
dragosvictor Apr 23, 2024
de755b9
Clarify semantics of storage metrics
dragosvictor Apr 23, 2024
934e131
Fix metric names
dragosvictor Apr 24, 2024
d6ae556
Rename transaction count metric
dragosvictor Apr 24, 2024
2ec3210
Refactor compaction operation counter metric
dragosvictor Apr 24, 2024
0ea56b7
Update metric units
dragosvictor Apr 24, 2024
3d008d3
Add metric attributes
dragosvictor Apr 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
363 changes: 363 additions & 0 deletions docs/reference-metrics-opentelemetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,369 @@ Pulsar exposes the following OpenTelemetry metrics.

## Broker

dragosvictor marked this conversation as resolved.
Show resolved Hide resolved
### Topic Messaging metrics
heesung-sn marked this conversation as resolved.
Show resolved Hide resolved

dragosvictor marked this conversation as resolved.
Show resolved Hide resolved
#### 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`

heesung-sn marked this conversation as resolved.
Show resolved Hide resolved
#### 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
dragosvictor marked this conversation as resolved.
Show resolved Hide resolved
* 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
heesung-sn marked this conversation as resolved.
Show resolved Hide resolved
* 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
heesung-sn marked this conversation as resolved.
Show resolved Hide resolved
* 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
Expand Down