> For the complete documentation index, see [llms.txt](https://docs.rumi.systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rumi.systems/rumi-management/guides/agent/configuring-telemetry-storage.md).

# Configuring Telemetry Storage

This guide covers setting up InfluxDB as the telemetry storage backend for the Rumi Agent.

## Overview

The Agent's telemetry pipeline collects heartbeat data from running containers and writes it to a time-series database. InfluxDB is the primary supported storage backend.

## InfluxDB Setup

### Installing InfluxDB

The Agent is compatible with InfluxDB 1.x (tested with v1.8.10). Install InfluxDB following the [official InfluxDB documentation](https://docs.influxdata.com/influxdb/v1/).

### Configuring the Agent

Set the following Agent properties to connect to InfluxDB:

| Property               | Description                                | Example                 |
| ---------------------- | ------------------------------------------ | ----------------------- |
| `nv.agent.point.store` | Set to `influx` to enable InfluxDB storage | `influx`                |
| `nv.agent.influx.url`  | InfluxDB HTTP endpoint URL                 | `http://localhost:8086` |

### Retention Policies

The Agent creates a retention policy named `rumi_heartbeat_rp` in InfluxDB for storing heartbeat data. The retention policy controls how long telemetry data is retained before being automatically purged.

Retention policy configuration can be tuned based on your storage capacity and data retention requirements.

## Storage Backends

The Agent supports multiple storage backend configurations via the `nv.agent.point.store` property:

| Value         | Description                                         |
| ------------- | --------------------------------------------------- |
| `influx`      | Production InfluxDB storage with batching           |
| `fake_influx` | Stub implementation for testing (no actual storage) |
| `none`        | Disable telemetry storage entirely                  |

### Batching

The `InfluxBatchAwarePointStore` implementation batches writes to InfluxDB for efficiency. Multiple heartbeat data points are accumulated and written in a single batch operation, reducing the number of HTTP requests to InfluxDB.

## Verifying Telemetry Flow

After configuring telemetry storage:

1. Start the Agent with InfluxDB configured.
2. Deploy and start a Rumi system.
3. Verify that data is flowing to InfluxDB:

   ```bash
   curl -G 'http://localhost:8086/query' --data-urlencode "db=rumi" --data-urlencode "q=SHOW MEASUREMENTS"
   ```

You should see measurements such as `application`, `system`, `application.store`, etc. See the [InfluxDB Measurements Reference](/rumi-management/reference/agent/influxdb-measurements.md) for the complete list.

## Grafana Integration

Once telemetry data is flowing to InfluxDB, Rumi Monitor (Grafana) can be configured to read from it. The Monitor's canned dashboards expect the `rumi_heartbeat_rp` retention policy and the standard measurement names. See the [Monitor Setup Guide](/rumi-management/guides/monitor/setting-up-dashboards.md).
