---
title: Pulser
slug: telemetry-pipeline/pulser
docTags: 
createdAt: 2025-04-21T01:02:59.508Z
---

# Pulsar Sink&#x20;

The **Pulsar sink** publishes observability data (logs and metrics) to topics in **Apache Pulsar**.
&#x20;This section explains each configuration parameter, its role, and its operational impact.

##

## Authentication

Defines how the Pulsar client authenticates to the cluster.

### auth

Root authentication configuration.

auth.name

- Used as a username for basic authentication or as a token identifier for JWT authentication.&#x20;

auth.token

- Password for basic authentication or the signed JWT token when using token-based auth.&#x20;

### auth.oauth2

OAuth2-based authentication configuration.

auth.oauth2.audience

- Identifies the intended recipient of the OAuth2 token.&#x20;

auth.oauth2.credentials\_url

- Location of OAuth2 credentials.&#x20;
- Can be a remote URL or an embedded data URL.&#x20;

auth.oauth2.issuer\_url

- OAuth2 authorization server that issues tokens.&#x20;

auth.oauth2.scope

- Limits the access scope granted to the token.&#x20;

## Batching

Controls how events are grouped before being sent.

### batch

Improves throughput by sending events in batches.

batch.max\_bytes

- Flushes the batch when total size reaches this limit.&#x20;
- Helps control memory usage and network payload size.&#x20;

batch.max\_events

- Flushes the batch when the number of events reaches this threshold.&#x20;
- Useful for latency-sensitive pipelines.&#x20;

## Buffering

Controls temporary storage when downstream delivery is delayed.

### buffer

Defines buffering strategy and limits.

buffer.type

- **memory:** Faster, but data is lost on crash.&#x20;
- **disk:** Slower, but durable across restarts.&#x20;

buffer.max\_events

- Maximum number of events allowed in memory buffer.&#x20;
- Applies only when buffer type is memory.&#x20;

buffer.max\_size

- Maximum memory or disk space used by the buffer.&#x20;
- Disk buffers require a minimum size to operate safely.&#x20;

buffer.when\_full

- **block:** Applies backpressure to upstream components.&#x20;
- **drop\_newest:** Drops incoming events when buffer is full.&#x20;
- Choose based on whether data loss or backpressure is acceptable.&#x20;

## Compression

Controls payload compression before sending to Pulsar.

### compression

- Reduces network bandwidth usage.&#x20;
- Supported options include LZ4, Snappy, Zlib, Zstandard, or no compression.&#x20;
- Compression trades CPU usage for network efficiency.&#x20;

## Connection Retry Options

Defines how the client behaves when connectivity issues occur.

### connection\_retry\_options

connection\_timeout\_secs

- Maximum time allowed to establish a connection.&#x20;

keep\_alive\_secs

- Interval for sending keep-alive signals to brokers.&#x20;

min\_backoff\_ms

- Initial delay before retrying a failed connection.&#x20;

max\_backoff\_secs

- Maximum delay between retries.&#x20;

max\_retries

- Maximum number of reconnection attempts before giving up.&#x20;

## Encoding

Defines how events are serialized before being sent.

### encoding

Mandatory configuration that determines:

- Event format&#x20;
- Supported input types&#x20;
- Interoperability with downstream consumers&#x20;

### encoding.codec

Specifies the serialization format, such as:

- JSON&#x20;
- Avro&#x20;
- CSV&#x20;
- CEF&#x20;
- Protobuf&#x20;
- OTLP&#x20;
- Text&#x20;
- Raw message&#x20;

Each codec enables a corresponding encoding subsection.

### Encoding: Avro

encoding.avro.schema

- Defines the Avro schema used to serialize events.&#x20;
- Ensures strong typing and schema validation downstream.&#x20;

### Encoding: CEF (Common Event Format)

Used for security and SIEM integrations.

Key parameters define:

- Vendor identity&#x20;
- Product name&#x20;
- Version&#x20;
- Event classification&#x20;
- Severity mapping&#x20;
- Extension fields extracted from logs&#x20;

CEF enforces strict field length and formatting rules.

### Encoding: CSV

Defines how structured fields are flattened into CSV.

Key aspects include:

- Field order&#x20;
- Delimiter and quoting rules&#x20;
- Escaping behavior&#x20;
- Handling of missing or unsupported field types&#x20;

### Encoding: GELF

Used for Graylog-compatible ingestion.

encoding.gelf.max\_chunk\_size

- Controls chunking behavior for large messages.&#x20;
- Must align with receiver capabilities.&#x20;

### Encoding: JSON

encoding.json.pretty

- Enables human-readable formatting.&#x20;
- Should be disabled for production due to size overhead.&#x20;

### Encoding: Metrics Tag Values

encoding.metric\_tag\_values

- **single:** Only last value is preserved.&#x20;
- **full:** All tag values are preserved as arrays.&#x20;
- Impacts cardinality and payload size.&#x20;

### Encoding: Protobuf

Used for strongly typed binary serialization.

Key parameters define:

- Descriptor file location&#x20;
- Message type&#x20;
- Field naming conventions (JSON vs Protobuf style)&#x20;

### Encoding: Timestamp Format

Controls how timestamps are represented:

- RFC 3339&#x20;
- Unix (seconds, milliseconds, microseconds, nanoseconds)&#x20;
- Floating-point Unix time&#x20;

## Endpoint

### endpoint

- Defines the Pulsar broker connection address.&#x20;
- Must include protocol and port.&#x20;
- Used by the client to establish the initial connection.&#x20;

## Healthcheck

### healthcheck.enabled

- Enables startup-time validation of sink availability.&#x20;
- Prevents silent failures at boot time.&#x20;

## Inputs

### inputs

- List of upstream sources or transforms feeding this sink.&#x20;
- Supports wildcard matching for flexible topology design.&#x20;

## Partitioning and Routing

### partition\_key\_field

- Determines how events are distributed across topic partitions.&#x20;
- Pulsar hashes this value to select a partition.&#x20;
- Missing fields result in round-robin distribution.&#x20;

## Producer Identification

### producer\_name

- Sets a human-readable producer name in Pulsar.&#x20;
- Useful for debugging and monitoring producer behavior.&#x20;

## Message Properties

### properties\_key

- Specifies which log field is used to populate Pulsar message properties.&#x20;
- Enables metadata-based routing and filtering downstream.&#x20;

## TLS Configuration

### tls

Defines secure transport settings.

tls.ca\_file

- Trusted Certificate Authority list.&#x20;

tls.verify\_certificate

- Enables certificate validation.&#x20;
- Disabling weakens security and is strongly discouraged.&#x20;

tls.verify\_hostname

- Verifies broker hostname during TLS handshake.&#x20;
- Should remain enabled for secure deployments.&#x20;

## Topic

### topic

- Target Pulsar topic where events are published.&#x20;
- Supports dynamic templates for per-event routing.&#x20;
- Required for all Pulsar sink configurations.&#x20;

## Supported Input Types

- Logs&#x20;
- Metrics&#x20;

Both are encoded according to the selected codec.
