> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/configuration/bindplane-otel-collector/persistent-queue/pebble.md).

# Pebble

### Overview

Pebble is a key-value storage engine that provides efficient data buffering for the Bindplane OTel Collector. It offers good performance with minimal configuration and is the **recommended default** for most production deployments.

{% hint style="info" %}
Under the hood, Pebble Persistent Queue Storage is the [Bindplane pebble extension](https://github.com/Dynatrace/dynatrace-bindplane-otel-contrib/tree/main/extension/pebbleextension).
{% endhint %}

### Configuration

The following parameters control Pebble storage behavior:

| Parameter                              | Type   | Default   | Description                                                                                                      |
| -------------------------------------- | ------ | --------- | ---------------------------------------------------------------------------------------------------------------- |
| `Persistent Queue Directory`           | string | `storage` | Directory where Pebble stores data files. Relative paths resolve against the collector's installation directory. |
| `Synchronize Persistent Queue to Disk` | bool   | `true`    | Whether to sync writes immediately to disk for durability                                                        |
| `Advanced Pebble Configuration`        | bool   | `false`   | Show the advanced options below.                                                                                 |

#### Advanced Options

These options appear when `Advanced Pebble Configuration` is enabled.

| Parameter                  | Type  | Default | Description                                                                                                                                                                                      |
| -------------------------- | ----- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Cache Size`               | int   | `0`     | Size in bytes of the block cache. When `0`, uses Pebble's default cache behavior of `8 MB`. Larger values improve read performance at the cost of memory usage.                                  |
| `Shutdown Timeout`         | int   | `10`    | Maximum time in seconds (1–10) to wait for pending operations to complete during shutdown. After this timeout, the persistent queue closes forcefully. Requires collector v1.92.0 or newer.      |
| `Enable Custom Compaction` | bool  | `false` | Configure a compaction strategy to clean up old data and reclaim disk space. Requires collector v1.92.0 or newer.                                                                                |
| `Compaction Interval`      | float | `30`    | How often in minutes to trigger background compaction. Set to `0` to disable. Compaction is I/O heavy; tune it for your workload if you see issues. Shown when `Enable Custom Compaction` is on. |

### When to Use Pebble

Use Pebble for:

* Single collector deployments
* Standard gateway deployments
* Edge collector deployments
* When configuration simplicity is preferred

### Monitoring

Monitor these indicators after configuring Pebble:

**Disk Usage**

* Growth is normal and proportional to data volume
* Pebble handles cleanup automatically
* Ensure sufficient disk space remains available

**Processing Latency**

* Should be consistent without significant spikes
* If degrading, check if at capacity for current data volume

**Memory Usage**

* Should remain stable and predictable
* If growing unexpectedly, adjust `Cache Size` under `Advanced Pebble Configuration`

### Troubleshooting

**Performance degradation:**

* Check if data volume exceeds current capacity
* Monitor CPU and disk I/O utilization

**High disk usage:**

* Normal with high-throughput deployments
* Verify adequate disk space remains available

### Next Steps

1. If switching to or from Pebble, follow the [Switching Queues](/configuration/bindplane-otel-collector/persistent-queue/switching-queues.md) guide to avoid data loss.
2. Monitor per-collector throughput, memory usage, and disk space.

For help choosing your persistent queue storage, see the [Persistent Queue](/configuration/bindplane-otel-collector/persistent-queue.md) guide.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.bindplane.com/configuration/bindplane-otel-collector/persistent-queue/pebble.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
