Skip to main content
Depths v0.1.1 ships a CLI that boots a local OTLP/HTTP server (FastAPI) ready to receive traces, logs, and metrics at the standard /v1/* endpoints.

Install (OS-agnostic)

Start the server (OS-agnostic)

Depths is by design multi-tenant at a project level. We define an instance as a particularly configured logger. Under an instance, you can store telemetry for multiple projects, just that each of them will share the same configuration for the ingestion server. After start, the server exposes:
  • GET /healthz (liveness + minimal metrics)
  • POST /v1/traces (OTLP/HTTP JSON or protobuf)
  • POST /v1/logs
  • POST /v1/metrics
  • GET /api/spans, GET /api/logs, GET /api/metrics/points, GET /api/metrics/hist (simple read APIs)

Send your first event

Option A: point an OTel SDK or Collector at Depths

Set your exporter endpoint to the server: To update that command for Mintlify’s tabbed code blocks, you need to use the platform-specific syntax for setting an environment variable. Here is the correct Mintlify <CodeGroup> component:

Option B: send a minimal trace with cURL

Save this as span.json in the directory where you ran depths init. This is a toy payload:
Send it to the Depths server:

Verify ingestion

First, we can check the health of the server using status command. This command provides a comprehensive single-pane snapshot of the telemetry ingestion server.
We can also take a peak at the most recent rows in our telemetry tables, persisted locally.

Stop the server

With that, you have experienced a purely pythonic OTel native telemetry ingestion server.