For the complete documentation index, see llms.txt. This page is also available as Markdown.

Azure Blob Storage

The Azure Blob Storage destination exports telemetry from a Bindplane pipeline to a container in an Azure Storage account. Logs, metrics, and traces are written as OTLP JSON blobs, organized into a time-partitioned path inside the container.

Supported Telemetry

Metrics
Logs
Traces

Prerequisites

You need an Azure Storage account and a container to export into, plus a connection string that authorizes writes to that account.

  • An Azure Storage account.

  • A blob container created in that account. Supply its name as the container parameter.

  • A connection string for the storage account. The connection string carries the account name and an account key (or a shared access signature) that grants write access. It is available under Access keys on the storage account in the Azure portal and has the form DefaultEndpointsProtocol=https;AccountName=<name>;AccountKey=<key>;EndpointSuffix=core.windows.net.

The connection string is a credential. Treat it as a secret and avoid committing it in plaintext.

Configuration

Bindplane docs - Azure Blob Storage - image 1

Telemetry and destination

Parameter
Type
Required
Default
Description

Telemetry Types

Telemetry Selector

No

Logs, Metrics, Traces

Which signals this destination exports.

Connection String

String

Yes

(empty)

The connection string for the Azure Storage account. Sensitive. Stored as a secret.

Container

String

Yes

(empty)

Name of the Azure Storage container to export telemetry into.

Folder Prefix

String

No

(empty)

Root directory of the blob path to export telemetry into.

Blob Prefix

String

No

(empty)

Prefix for the name of exported telemetry files.

Advanced

Parameter
Type
Required
Default
Description

Granularity

Enum: minute, hour

No

minute

Granularity of the timestamps in the blob path.

Compression

Enum: none, gzip

No

gzip

Compression algorithm to use when sending data.

Drop Raw Copy

Boolean

No

true

When enabled, the raw copy of the log stored in log.record.original is dropped. Logs only.

Retry on Failure

Parameter
Type
Required
Default
Description

Enable Retry on Failure

Boolean

No

true

Attempt to resend telemetry that failed to transmit to the destination.

Initial interval

Integer

No

5

Time in seconds to wait after the first failure before retrying. Applies when retry on failure is enabled.

Max interval

Integer

No

30

Upper bound in seconds on backoff. Applies when retry on failure is enabled.

Max elapsed time

Integer

No

300

Maximum time in seconds spent trying to send a batch before giving up, to avoid a never-ending retry loop. Applies when retry on failure is enabled.

Sending Queue

Parameter
Type
Required
Default
Description

Enable Sending Queue

Boolean

No

true

Buffer telemetry temporarily before sending so data is not lost during a brief network outage.

Number of Consumers

Integer

No

10

Number of consumers that dequeue batches. Applies when the sending queue is enabled.

Queue Size

Integer

No

5000

Maximum number of batches kept in memory before dropping. Applies when the sending queue is enabled.

Enable Persistent Queuing

Boolean

No

true

Buffer telemetry to disk before sending so data survives network outages or collector restarts. Applies when the sending queue is enabled.

Persistent Queue Storage

Extension

Yes

file_storage_persistent_queue

The storage extension used for the persistent queue. Applies when the sending queue and persistent queuing are enabled.

Examples

Basic export with gzip and minute granularity

This destination writes all three signals to the otel container under a telemetry root folder, with file names prefixed bindplane. With the default minute granularity and gzip compression, blobs land at paths like:

Hourly granularity, uncompressed

Setting partition to hour and compression to none drops the minute path segment and writes plain JSON:

Configuration Tips

  • Use gzip compression (the default) to reduce blob storage volume and egress. Switch to none only when a downstream reader cannot decompress.

  • Pick the partition granularity to match how you query the data. minute produces fine-grained partitions for high-volume pipelines; hour produces fewer, larger blobs that are cheaper to list.

  • Keep the persistent queue enabled (the default) so buffered telemetry survives collector restarts. The default storage writes to ${OIQ_OTEL_COLLECTOR_HOME}/storage on disk.

Troubleshooting

Authentication or authorization fails

Symptoms: blobs are not written and the collector logs report a 403 or an authorization error from Azure Storage.

Solutions:

  1. Confirm the connection string is current and copied in full from Access keys on the storage account. Rotating the account key invalidates an old connection string.

  2. Verify the account key or shared access signature in the connection string grants write access to the target container.

Container not found

Symptoms: the export fails with a "container not found" or 404 error.

Solutions:

  1. Confirm the container value exactly matches an existing container in the storage account named in the connection string.

  2. The destination does not create the container. Create it in the Azure portal or with the Azure CLI before exporting.

Telemetry is dropped during outages

Symptoms: gaps in stored blobs after a network interruption or collector restart.

Solutions:

  1. Keep the sending queue and persistent queuing enabled so data is buffered to disk rather than dropped.

  2. If the in-memory queue fills (Queue Size reached), raise the queue size or the number of consumers to clear batches faster.

Standalone Destination

Last updated

Was this helpful?