openlit CLI send traces, metrics, and logs to it. The receiver writes ClickHouse otel_* tables. The OpenLIT image does not ship otelcol.
Endpoints
The OpenLIT UI also proxies
/v1/* from the app origin to this process, so the same HTTP paths work through the dashboard host when you cannot reach :4318 directly.
Docker Compose and Kubernetes examples publish 4317 and 4318 on the OpenLIT service (openlit), not a separate otel-collector container.
Point exporters at the receiver:
otel_metrics_* tables).
Authentication
Send an OpenLIT API key so ingest is scoped to organisation → project → environment and writes to that project’s ClickHouse:x-openlit-api-key is also accepted. Client x-database-config-id headers are ignored.
A valid key stamps organisation.environment.name, openlit.organisation.id, and openlit.project.id. It does not overwrite client deployment.environment.
Without a key, data is written to INIT_DB_* unless OTLP_REQUIRE_API_KEY=true.
Schema
On first ingest, and again if an insert fails becauseotel_* tables were dropped, the receiver runs CREATE TABLE IF NOT EXISTS for the OTLP schema and retries the write once. Compose and Kubernetes ClickHouse init scripts still create the same tables on an empty volume.
The ClickHouse user needs CREATE TABLE (or the tables must already exist). If create is denied and the tables are missing, ingest fails with an explicit error.
Optional sidecar Collector
Keep using your own OpenTelemetry Collector for fan-out, sampling, or processors. Forward OTLP to OpenLIT instead of writing ClickHouse fromotelcol. A starter config is in assets/otel-collector-config.yaml.
To send SDK data to a Collector you operate (not into OpenLIT), see OpenTelemetry Collector destination.
Related
Self-host OpenLIT
Docker Compose and Helm deploy OpenLIT plus ClickHouse. OTLP ingest is built in.
Telemetry
Explore traces, metrics, and logs after they land in ClickHouse.

