# Azure Blob Storage

### Supported Types

| Metrics | Logs | Traces |
| ------- | ---- | ------ |
| ✓       | ✓    | ✓      |

​The Azure Blob Storage destination saves telemetry as [OTLP JSON](https://github.com/open-telemetry/opentelemetry-proto#otlpjson) files in Azure Blob Storage.

### Configuration

| Parameter            | Type                | Default               | Description                                                                                                                                                                            |
| -------------------- | ------------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| telemetry\_types\*   | `telemetrySelector` | Logs, Metrics, Traces | Specifies which types of telemetry to export.                                                                                                                                          |
| connection\_string\* | `string`            | ""                    | The connection string for the Azure Storage account. More information can be found [here](https://learn.microsoft.com/en-gb/azure/storage/common/storage-configure-connection-string). |
| container\*          | `string`            | ""                    | Name of the Azure Storage container to export telemetry into.                                                                                                                          |
| prefix               | `string`            | ""                    | The root directory of the blob path to export telemetry into.                                                                                                                          |
| blob\_prefix         | `string`            | ""                    | Prefix for the name of the exported telemetry files.                                                                                                                                   |
| partition\*          | `enum`              | minute                | The granularity of the timestamps in the blob path, either "minute" or "hour".                                                                                                         |
| compression          | `enum`              | `gzip`                | The compression algorithm to use when exporting telemetry, either "none" or "gzip"                                                                                                     |

<mark style="color:red;">\*</mark>*<mark style="color:red;">required field</mark>*

### Supported Retry and Queuing Settings

This destination supports the [retry settings](https://docs.bindplane.com/configuration/bindplane-otel-collector/retry-on-failure), the [sending queue settings](https://docs.bindplane.com/configuration/bindplane-otel-collector/sending-queue), and the [persistent queue settings.](https://docs.bindplane.com/configuration/bindplane-otel-collector/persistent-queue)

| Sending Queue | Persistent Queue | Retry on Failure |
| ------------- | ---------------- | ---------------- |
| ✓             | ✓                | ✓                |

### Example Configuration

#### Basic Configuration

For basic configuration, we specify the `connection_string` as well as a `container`, `prefix`, and `blob_prefix`. By default, we are still using a `partition` of `minute` and `gzip` for the `compression` value. This will create a blob path that looks like the following inside the `otel` container:

```
telemetry/year=2021/month=01/day=01/hour=01/minute=00/bindplanemetrics_{random_id}.json.gz
telemetry/year=2021/month=01/day=01/hour=01/minute=00/bindplanelogs_{random_id}.json.gz
telemetry/year=2021/month=01/day=01/hour=01/minute=00/bindplanetraces_{random_id}.json.gz
```

**Web Interface**

<figure><img src="https://1405008107-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgmiOMzBfoNFwmKJFHMcJ%2Fuploads%2Fgit-blob-034d2329fcb73ca104a436410ad3817beef58bcb%2Fintegrations-destinations-azure-blob-storage-image-1.png?alt=media" alt="Bindplane docs - Azure Blob Storage - image 1"><figcaption></figcaption></figure>

**Standalone Destination**

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Destination
metadata:
  id: azure_blob
  name: azure_blob
spec:
  type: azure_blob
  parameters:
    - name: telemetry_types
      value: ['Logs', 'Metrics', 'Traces']
    - name: connection_string
      value: 'DefaultEndpointsProtocol=https;AccountName=accountName;AccountKey=+idLkHYcL0MUWIKYHm2j4Q==;EndpointSuffix=core.windows.net'
    - name: container
      value: 'otel'
    - name: prefix
      value: 'telemetry'
    - name: blob_prefix
      value: bindplane
```

#### Specify Partition and Default Configuration

This configuration is the same as the basic configuration but will specify a `partition` of `hour` and `compression` set to `none`. This will create a blob path that looks like the following inside the `otel` container:

```
telemetry/year=2021/month=01/day=01/hour=01/bindplanemetrics_{random_id}.json
telemetry/year=2021/month=01/day=01/hour=01/bindplanelogs_{random_id}.json
telemetry/year=2021/month=01/day=01/hour=01/bindplanetraces_{random_id}.json
```

**Web Interface**

<figure><img src="https://1405008107-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgmiOMzBfoNFwmKJFHMcJ%2Fuploads%2Fgit-blob-a6488ab2ddace81aa312be4839321eaf7a2ec415%2Fintegrations-destinations-azure-blob-storage-image-2.png?alt=media" alt="Bindplane docs - Azure Blob Storage - image 2"><figcaption></figcaption></figure>

**Standalone Destination**

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Destination
metadata:
  id: azure_blob
  name: azure_blob
spec:
  type: azure_blob
  parameters:
    - name: telemetry_types
      value: ['Logs', 'Metrics', 'Traces']
    - name: connection_string
      value: 'DefaultEndpointsProtocol=https;AccountName=accountName;AccountKey=+idLkHYcL0MUWIKYHm2j4Q==;EndpointSuffix=core.windows.net'
    - name: container
      value: 'otel'
    - name: prefix
      value: 'telemetry'
    - name: blob_prefix
      value: bindplane
    - name: partition
      value: 'hour'
    - name: compression
      value: 'none'
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bindplane.com/integrations/destinations/azure-blob-storage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
