Pulsar monitoring

SkyWalking leverages OpenTelemetry Collector to collect metrics data in Prometheus format from the Pulsar and transfer the metrics to OpenTelemetry receiver and into the Meter System. Kafka entity as a Service in OAP and on the `Layer: PULSAR.

Data flow

  1. Pulsar exposes metrics through Prometheus endpoint.
  2. OpenTelemetry Collector fetches metrics from Pulsar cluster via Prometheus Receiver and pushes metrics to SkyWalking OAP Server via OpenTelemetry gRPC exporter.
  3. The SkyWalking OAP Server parses the expression with MAL to filter/calculate/aggregate and store the results.`

Setup

  1. Set up Pulsar Cluster. (Pulsar cluster includes pulsar broker cluster and Bookkeeper bookie cluster.)
  2. Set up OpenTelemetry Collector. The example for OpenTelemetry Collector configuration, refer to here.
  3. Config SkyWalking OpenTelemetry receiver.

Pulsar Monitoring

Pulsar monitoring provides multidimensional metrics monitoring of Pulsar cluster as Layer: PULSAR Service in the OAP. In each cluster, the nodes are represented as Instance.

Pulsar Cluster Supported Metrics

Monitoring PanelMetric NameDescriptionData Source
Total Topicsmeter_pulsar_total_topicsThe number of Pulsar topics in this cluster.Pulsar Cluster
Total Subscriptionsmeter_pulsar_total_subscriptionsThe number of Pulsar subscriptions in this cluster.Pulsar Cluster
Total Producersmeter_pulsar_total_producersThe number of active producers connected to this cluster.Pulsar Cluster
Total Consumersmeter_pulsar_total_consumersThe number of active consumers connected to this cluster.Pulsar Cluster
Message Rate Inmeter_pulsar_message_rate_inThe total message rate coming into this cluster (message per second).Pulsar Cluster
Message Rate Outmeter_pulsar_message_rate_outThe total message rate going out from this cluster (message per second).Pulsar Cluster
Throughput Inmeter_pulsar_throughput_inThe total throughput coming into this cluster (byte per second).Pulsar Cluster
Throughput Outmeter_pulsar_throughput_outThe total throughput going out from this cluster (byte per second).Pulsar Cluster
Storage Sizemeter_pulsar_storage_sizeThe total storage size of all topics in this broker (in bytes).Pulsar Cluster
Storage Logical Sizemeter_pulsar_storage_logical_sizeThe storage size of all topics in this broker without replicas (in bytes).Pulsar Cluster
Storage Write Ratemeter_pulsar_storage_write_rateThe total message batches (entries) written to the storage for this broker (message batch per second).Pulsar Cluster
Storage Read Ratemeter_pulsar_storage_read_rateThe total message batches (entries) read from the storage for this broker (message batch per second).Pulsar Cluster

Pulsar Node Supported Metrics

Monitoring PanelMetric NameDescriptionData Source
Active Connectionsmeter_pulsar_broker_active_connectionsThe number of active connections.Pulsar Broker
Total Connectionsmeter_pulsar_broker_total_connectionsThe total number of connections.Pulsar Broker
Connection Create Success Countmeter_pulsar_broker_connection_create_success_countThe number of successfully created connections.Pulsar Broker
Connection Create Fail Countmeter_pulsar_broker_connection_create_fail_countThe number of failed connections.Pulsar Broker
Connection Closed Total Countmeter_pulsar_broker_connection_closed_total_countThe total number of closed connections.Pulsar Broker
JVM Buffer Pool Usedmeter_pulsar_broker_jvm_buffer_pool_used_bytesThe usage of jvm buffer pool.Pulsar Broker
JVM Memory Pool Usedmeter_pulsar_broker_jvm_memory_pool_usedThe usage of jvm memory pool.Pulsar Broker
JVM Memorymeter_pulsar_broker_jvm_memory_init
meter_pulsar_broker_jvm_memory_used
meter_pulsar_broker_jvm_memory_committed
The usage of jvm memory.Pulsar Broker
JVM Threadsmeter_pulsar_broker_jvm_threads_current
meter_pulsar_broker_jvm_threads_daemon
meter_pulsar_broker_jvm_threads_peak
meter_pulsar_broker_jvm_threads_deadlocked
The usage of jvm threads.Pulsar Broker
GC Timemeter_pulsar_broker_jvm_gc_collection_seconds_sumTime spent in a given JVM garbage collector in seconds.Pulsar Broker
GC Countmeter_pulsar_broker_jvm_gc_collection_seconds_countThe count of a given JVM garbage collector.Pulsar Broker

Customizations

You can customize your own metrics/expression/dashboard panel. The metrics definition and expression rules are found in otel-rules/pulsar/pulsar-cluster.yaml, otel-rules/pulsar/pulsar-broker.yaml. The Pulsar dashboard panel configurations are found in ui-initialized-templates/pulsar.