Storage Provider Telemetry

Configure and manage telemetry for Shelby storage providers

When you run a Shelby storage provider (Cavalier), your node sends telemetry data to help monitor network health and performance. Telemetry is enabled by default.

No personal information is collected. Shelby telemetry only collects software metrics like storage utilization, performance data, and the IP address of your storage provider.

What is Collected

  • Storage metrics — Blob counts, storage utilization, read/write operations, request latency
  • System metrics — CPU, memory, disk I/O, network connections
  • Identification — Storage provider address and chain ID

Disabling Telemetry

Disabling telemetry is not recommended. It makes it harder to identify and debug issues affecting your storage provider.

[telemetry_config]
  enabled = 0

Prometheus Metrics Endpoint

Cavalier can optionally expose a GET /metrics endpoint in Prometheus exposition format. This is a pull-based endpoint that you scrape with your own monitoring stack — Prometheus, OpenTelemetry Collector, Datadog Agent, or any compatible tool. It is separate from the push-based telemetry described above.

The endpoint is disabled by default. To enable it, add the following to your config:

[metrics_config]
  endpoint_enabled = 1
  endpoint_host    = "0.0.0.0"
  endpoint_port    = 9090
  • endpoint_host — IPv4 address to bind. Use "0.0.0.0" to listen on all interfaces.
  • endpoint_port — Port to listen on. Default 9090.

Once enabled, cavalier run spawns a lightweight HTTP server alongside the main process. If the metrics server exits unexpectedly, cavalier continues running normally and logs a warning.

If you move the cavalier binary, ensure metrics_server.py is in the same directory. The metrics endpoint will not start without it.

Troubleshooting

Telemetry not sending

  1. Verify enabled = 1 in config
  2. Ensure network access to the telemetry endpoint
  3. Check logs for errors

Metrics endpoint not responding

  1. Verify endpoint_enabled = 1 in [metrics_config]
  2. Check that metrics_server.py is alongside the cavalier binary
  3. Ensure the configured port is not in use and is reachable
  4. Check cavalier logs for metrics-server warnings