Skip to content

Info

License: Free — part of the universal collection tier.

Apache Pulsar

The pulsar probe monitors an Apache Pulsar broker via its Admin REST API (/admin/v2/brokers/ready) and Prometheus metrics endpoint (/metrics), reporting broker health, throughput, storage and backlog at the broker level.

Quick start

# probes.d/10-pulsar.yaml — each file under probes.d/ is a YAML array of probes
- name: pulsar
  type: pulsar
  params:
    endpoint: http://localhost:8080

Parameters

Parameter Must set Default Description
endpoint In practice http://localhost:8080 Base URL of the broker admin and metrics HTTP service. Example: http://pulsar.example.com:8080
timeout No 10 Request timeout in seconds
interval No 60 Seconds between collections
instance_name No - Stable identity of this broker instead of the one derived from the endpoint

Metrics

Metric Unit Description
senhub.pulsar.up 1 1 when the broker answered /admin/v2/brokers/ready with HTTP 200
pulsar.topics.count {topic} Number of topics on the broker
pulsar.rate.messages.in {message}/s Incoming message rate (broker-level aggregate)
pulsar.rate.messages.out {message}/s Outgoing message rate
pulsar.throughput.in By/s Incoming byte throughput
pulsar.throughput.out By/s Outgoing byte throughput
pulsar.storage.size By Broker-level storage used for ledger data
pulsar.message.backlog {message} Total message backlog across all topics
pulsar.producers.count {producer} Connected producers
pulsar.consumers.count {consumer} Connected consumers

Operational notes

  • The Pulsar admin port (default 8080) and metrics endpoint are on the same port.
  • For TLS-secured brokers, use https:// as the endpoint prefix.
  • The probe reads the broker-level aggregates from /metrics (the pulsar_broker_* series), which a broker publishes even before any topic exists. A broker too old to publish them is read through its per-namespace series instead, one per namespace. Per-topic series are not read.

Metric reference

Every metric this probe can emit. Metric is the OpenTelemetry name the OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a Nagios check and the API metrics= filter match. PRTG channel is the label PRTG shows, placeholders filled from the series' tags.

Metric Name PRTG channel Unit Description
senhub.pulsar.up senhub.pulsar.up Pulsar {endpoint} Up # 1 when the broker answered /admin/v2/brokers/ready with HTTP 200
pulsar.topics.count pulsar.topics.count Pulsar Topics # Number of topics on the broker
pulsar.producers.count pulsar.producers.count Pulsar Producers # Number of producers connected to the broker
pulsar.consumers.count pulsar.consumers.count Pulsar Consumers # Number of consumers connected to the broker
pulsar.rate.messages.in pulsar.rate.messages.in Pulsar Publish Rate msgs/s Messages published per second to the broker
pulsar.rate.messages.out pulsar.rate.messages.out Pulsar Dispatch Rate msgs/s Messages dispatched per second from the broker
pulsar.throughput.in pulsar.throughput.in Pulsar Publish Throughput Bytes/s Bytes published per second to the broker
pulsar.throughput.out pulsar.throughput.out Pulsar Dispatch Throughput Bytes/s Bytes dispatched per second from the broker
pulsar.storage.size pulsar.storage.size Pulsar Storage Size B Total storage used by the broker for message data
pulsar.message.backlog pulsar.message.backlog Pulsar Message Backlog # Number of messages in the backlog (not yet consumed)
pulsar.storage.read.rate pulsar.storage.read.rate Pulsar Storage Read Rate entries/s Storage ledger entries read per second
pulsar.storage.write.rate pulsar.storage.write.rate Pulsar Storage Write Rate entries/s Storage ledger entries written per second