> ## Documentation Index
> Fetch the complete documentation index at: https://otel.fyi/llms.txt
> Use this file to discover all available pages before exploring further.

# Pulsar

> OpenTelemetry receiver for Pulsar

# Pulsar Receiver

![Status](https://img.shields.io/badge/status-alpha-red)

**Available in:** `contrib`

**Maintainers:** [@dao-jun](https://github.com/dao-jun)

**Source:** [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/pulsarreceiver)

## Supported Telemetry

![Logs](https://img.shields.io/badge/logs-alpha-blue) ![Metrics](https://img.shields.io/badge/metrics-alpha-green) ![Traces](https://img.shields.io/badge/traces-alpha-orange)

## Overview

## Getting Started

The following settings can be optionally configured:

* `endpoint` (default = pulsar://localhost:6650): The url of pulsar cluster.
* `topic` (default = otlp\_spans for traces, otlp\_metrics for metrics, otlp\_logs for logs): The name of the pulsar topic to consume from.
* `encoding` (default = otlp\_proto): The encoding of the payload sent to pulsar. Available encodings:
  * `otlp_proto`: the payload is deserialized to `ExportTraceServiceRequest`.
  * `jaeger_proto`: the payload is deserialized to a single Jaeger proto `Span`.
  * `jaeger_json`: the payload is deserialized to a single Jaeger JSON Span using `jsonpb`.
  * `zipkin_proto`: the payload is deserialized into a list of Zipkin proto spans.
  * `zipkin_json`: the payload is deserialized into a list of Zipkin V2 JSON spans.
  * `zipkin_thrift`: the payload is deserialized into a list of Zipkin Thrift spans.
* `consumer_name`: specifies the consumer name.
* `auth`
  * `tls`
    * `cert_file`:
    * `key_file`:
  * `token`
    * `token`
  * `oauth2`
    * `issuer_url`:
    * `client_id`:
    * `audience`:
    * `scope`:
    * `private_key`: Path to the private client credentials json file. Must contain `type`, `client_id`, `client_secret` and `issuer_url` fields.
  * `athenz`
    * `provider_domain`:
    * `tenant_domain`:
    * `tenant_service`:
    * `private_key`:
    * `key_id`:
    * `principal_header`:
    * `zts_url`:
* `subscription` (default = otlp\_subscription): the subscription name of consumer.
* `tls_trust_certs_file_path`: path to the CA cert. For a client this verifies the server certificate. Should
  only be used if `insecure` is set to true.
* `tls_allow_insecure_connection`: configure whether the Pulsar client accept untrusted TLS certificate from broker (default: false)

Example configuration:

```yaml theme={null}
receivers:
  pulsar:
    endpoint: pulsar://localhost:6650
    topic: otlp-spans
    subscription: otlp_spans_sub
    consumer_name: otlp_spans_sub_1
    encoding: otlp_proto
    auth:
      tls:
        cert_file: cert.pem
        key_file: key.pem
    tls_allow_insecure_connection: false
    tls_trust_certs_file_path: ca.pem
```

## Configuration

### Example Configuration

```yaml theme={null}
pulsar:
  topic: otel-pulsar
  endpoint: pulsar://localhost:6500
  consumer_name: otel-collector
  subscription: otel-collector
  tls_trust_certs_file_path: ca.pem
  tls_allow_insecure_connection: false
  auth:
    tls:
      cert_file: cert.pem
      key_file: key.pem
```

***

*Last generated: 2026-07-06*
