DEV Community

Elder Fernandes
Elder Fernandes

Posted on Originally published at selfhoststack-8z4.pages.dev

Zero-Subscription Observability: Replacing Datadog & Sentry with SigNoz & GlitchTip

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:

  1. Per-host license fees ($15-$23/host/mo)
  2. Per-GB ingestion rates ($0.10-$0.30/GB)
  3. Custom metric charges ($5 per 100 metrics)
  4. 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:
Enter fullscreen mode Exit fullscreen mode

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();
Enter fullscreen mode Exit fullscreen mode

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)