Zero-Subscription Observability: Replacing Datadog & Sentry with SigNoz & GlitchTip
Observability bills are notoriously volatile.
A single software bug that triggers runaway loop logging or an unexpected traffic spike on an API endpoint can result in a 4-figure bill from managed monitoring platforms.
The problem stems from how traditional SaaS APMs charge:
- Per-host license fees ($15-$23/host/mo)
- Per-GB ingestion rates ($0.10-$0.30/GB)
- Custom metric charges ($5 per 100 metrics)
- Per-span retention limits (forcing you to sample 90% of your traces away)
By switching to SigNoz (OpenTelemetry-native APM) and GlitchTip (Lightweight Sentry API replacement), you gain 100% trace retention, unmetered log queries, and zero per-seat fees.
1. The Power of OpenTelemetry + ClickHouse
The key reason self-hosting APM used to be painful was ElasticSearch's heavy memory overhead (often requiring 8GB–32GB RAM just for the JVM heap).
SigNoz solved this by building directly on ClickHouse:
- 10x to 15x Columnar Data Compression: 100GB of raw JSON logs compress down to ~7GB on disk.
- SIMD-Vectorized Execution: Filter through 50 million log rows in under 200 milliseconds.
-
Native OpenTelemetry Ingestion: Uses standard OTLP gRPC/HTTP protocols (
4317/4318), meaning you instrument your code with vendor-neutral open-source SDKs.
2. GlitchTip: Sentry Without the 20-Container Overhead
Official on-premise Sentry requires a dedicated cluster to run Kafka, Zookeeper, ClickHouse, Snuba, and multiple Celery workers.
GlitchTip strips away the multi-tenant SaaS baggage and implements the Sentry backend API in clean Python/Django + Postgres:
- Uses < 500MB RAM total.
- Works directly with all official
@sentry/*client SDKs (JavaScript, React, Node, Python, Ruby, Go, iOS, Android). - Zero code refactoring: just update your environment
SENTRY_DSN.
3. Quick Deployment Architecture
Setting up GlitchTip with Docker Compose
version: '3.8'
services:
glitchtip-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: glitchtip
POSTGRES_USER: glitchtip
POSTGRES_PASSWORD: secure_glitchtip_db_pass
volumes:
- glitchtip_pgdata:/var/lib/postgresql/data
glitchtip-redis:
image: redis:7-alpine
restart: unless-stopped
glitchtip-web:
image: glitchtip/glitchtip:latest
restart: unless-stopped
ports:
- "8000:8000"
environment:
DATABASE_URL: postgresql://glitchtip:secure_glitchtip_db_pass@glitchtip-db:5432/glitchtip
REDIS_URL: redis://glitchtip-redis:6379
SECRET_KEY: replace_with_long_random_string_here
GLITCHTIP_DOMAIN: https://errors.yourdomain.com
DEFAULT_FROM_EMAIL: errors@yourdomain.com
ENABLE_OPEN_USER_REGISTRATION: "true"
depends_on:
- glitchtip-db
- glitchtip-redis
glitchtip-worker:
image: glitchtip/glitchtip:latest
restart: unless-stopped
command: ./bin/run-celery-with-beat.sh
environment:
DATABASE_URL: postgresql://glitchtip:secure_glitchtip_db_pass@glitchtip-db:5432/glitchtip
REDIS_URL: redis://glitchtip-redis:6379
SECRET_KEY: replace_with_long_random_string_here
GLITCHTIP_DOMAIN: https://errors.yourdomain.com
depends_on:
- glitchtip-db
- glitchtip-redis
volumes:
glitchtip_pgdata:
4. Instrumenting Your Application with OpenTelemetry
Sending traces and metrics from a Node.js / Express or Python / FastAPI application to your self-hosted OTel Collector requires zero proprietary agents:
// telemetry.js (Node.js SDK)
import { NodeSDK } from '@opentelemetry/sdk-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
const sdk = new NodeSDK({
traceExporter: new OTLPTraceExporter({
url: 'http://signoz-otel-collector:4317',
}),
serviceName: 'checkout-api',
});
sdk.start();
Cost & Hardware Comparison
| Metric | Datadog + Sentry Cloud | SigNoz + GlitchTip (Self-Hosted) |
|---|---|---|
| Monthly Cost (10 hosts + 50GB logs) | ~$680 / month | €14.28 / month (Hetzner CPX31) |
| Log & Trace Retention | 15–30 Days | Unlimited (constrained only by disk) |
| Sampling Rate Required | 10% – 50% to save budget | 100% Full Fidelity |
| Data Privacy / GDPR | Ingested by US multi-tenant clouds | 100% Sovereign on your server |
Next Steps
To explore more verified open-source observability, APM, and alerting tools with pre-configured Docker Compose stacks, check out:
Top comments (0)