Observability
Self-hosted OpenTelemetry backend
OpenTelemetry in, without the collector homework.
Temps is a self-hosted OpenTelemetry backend: point any OTel SDK or Collector at your Temps instance and traces, metrics, and logs land on your own server, queryable from the same dashboard as everything else. Free to self-host, with no per-host or per-GB pricing — an alternative to sending them to Datadog.
Every language's OTel SDK reads these vars automatically
Distributed traces — per-request latency, span counts, and errors across services.
Key features
Any OTel SDK or Collector
Point your existing OpenTelemetry SDK or Collector at your Temps instance's OTLP endpoint — no proprietary agent to install.
Traces, metrics, and logs in one dashboard
All three OpenTelemetry signals land in the same place as your deploys, error tracking, and analytics — no second tool to correlate them in.
Storage backend you choose
Traces, metrics, and logs land in ClickHouse (recommended, and offered by the installer) or in Postgres/TimescaleDB, depending on how storage is configured.
Compressed log history
Log retention is kept compressed by default, so keeping months of history doesn't turn into a disk-cost problem.
No change to your existing projects
Every deployment already has the env vars set.
Temps injects OTEL_EXPORTER_OTLP_ENDPOINT, _PROTOCOL, _HEADERS, and OTEL_SERVICE_NAME into every deployment automatically. Any OTel SDK that reads the standard env vars — which is most of them, out of the box — just needs to start. No manual endpoint, no token to paste in.
// otel.ts — import first in main.ts, before any other module. // Endpoint, protocol, headers, and service name all come from the // OTEL_* env vars Temps already injected — nothing to configure. import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node"; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto"; import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-proto"; import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics"; import { NodeSDK } from "@opentelemetry/sdk-node"; if (process.env.OTEL_EXPORTER_OTLP_ENDPOINT) { new NodeSDK({ traceExporter: new OTLPTraceExporter(), metricReader: new PeriodicExportingMetricReader({ exporter: new OTLPMetricExporter(), }), instrumentations: [getNodeAutoInstrumentations()], }).start(); }
Temps vs Datadog and SigNoz
All three take OpenTelemetry data; the difference is who runs the backend and how it bills. Temps ingests OTLP/HTTP traces, metrics and logs at /api/otel on your own server and stores them in TimescaleDB, with spans optionally in ClickHouse. It is free to self-host, with no per-host, per-GB or per-span pricing. The storage guide shows what each record costs on disk.
| Dimension | Temps | Datadog | SigNoz |
|---|---|---|---|
| Who runs it | You, as part of the Temps install | Datadog (SaaS) | You (open-source Community Edition) or SigNoz Cloud |
| Pricing | Free to self-host; you pay only for your server | Per host: Infrastructure Pro from $15/month, APM from $31/month (billed annually) | Cloud from $49/month including $49 of usage; logs and traces $0.3/GB, metrics $0.1 per million samples |
| Where your telemetry lives | Your server | Datadog's cloud | Your server, or SigNoz's cloud |
What Temps doesn't do: there is no tail-based sampler, so sample in your SDK; forwarding telemetry on to Datadog, Honeycomb, New Relic or Grafana Cloud is part of Temps Premium; and Datadog is a far broader product, with infrastructure monitoring and integrations Temps doesn't attempt.
Competitor prices and plans verified on ; check each vendor's pricing page before you buy.
Questions
Further reading
Can Temps replace Datadog for OpenTelemetry data?
For the apps you run on Temps, it can be the OTLP backend: traces, metrics and logs arrive at /api/otel and show up next to deploys, errors and analytics. It does not replace Datadog's infrastructure monitoring or integrations. If you need to keep sending data to another vendor as well, OpenTelemetry forwarding is part of Temps Premium.
Which OpenTelemetry signals does Temps ingest?
Traces, metrics and logs, as OTLP/HTTP protobuf at /api/otel/v1/traces, /api/otel/v1/metrics and /api/otel/v1/logs, authenticated with a bearer token. Temps injects the OTEL_EXPORTER_OTLP_* variables and OTEL_SERVICE_NAME into every deployment, so an SDK that reads the standard variables needs no endpoint configuration.
Does Temps do tail-based sampling?
No. Sample in the SDK instead, for example with OTEL_TRACES_SAMPLER=traceidratio and OTEL_TRACES_SAMPLER_ARG=0.05, and cap a project's storage with TEMPS_OTEL_QUOTA_GB. The observability storage guide covers both.
How much does it cost?
Ingesting and querying OTLP data is free in the open-source build, with no per-host, per-GB or per-span pricing; the cost is your server's disk and CPU. TimescaleDB compresses telemetry after 7 days, and at high volume ClickHouse stores spans several times smaller.
Point your OTel SDK somewhere that's already yours.
No separate observability vendor, no second bill tied to how much you log this month.
Try it yourself — quickstart guide