{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidphzhplbwgdmeot4aoilqkpypzttpv6jdcimtwnybfmbmjv6v6ye",
    "uri": "at://did:plc:yaz3p6kpjacwypalo2scppxc/app.bsky.feed.post/3mkropzbb5ri2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreigfqcjh6uqsk44wcbzubwh5senrwbzbzst5oggnsa7fizk6ubgp4y"
    },
    "mimeType": "image/webp",
    "size": 67110
  },
  "description": "SigNoz is an open-source observability platform that gives you metrics, traces, and logs in one place — without paying Datadog prices. This pack gets you from zero to a fully working setup in under 30 minutes.",
  "path": "/monitoring-pack-signoz-docker-compose/",
  "publishedAt": "2026-05-01T08:14:33.000Z",
  "site": "https://devopspack.com",
  "tags": [
    "DigitalOcean",
    "this link"
  ],
  "textContent": "If you've ever set up Prometheus + Grafana + Loki + Tempo separately and tried to make them talk to each other — you know the pain. SigNoz solves exactly this. It's a single platform built on OpenTelemetry and ClickHouse that gives you metrics, distributed traces, and logs out of the box.\n\nThis pack walks you through a complete self-hosted setup using Docker Compose. By the end you'll have a running observability stack you can point your applications at immediately.\n\nSigNoz APM — out-of-box charts for latency, request rate, error rate and Apdex\n\n## What's in this Pack\n\n  * SigNoz backend (query service + UI)\n  * ClickHouse (columnar database for telemetry storage)\n  * OpenTelemetry Collector (receives traces, metrics, logs from your apps)\n  * ZooKeeper (ClickHouse coordination)\n  * Alert manager built-in\n\n\n\n## Where to run it\n\nSigNoz needs a real server with at least 4 GB RAM — it won't run on a $5 VPS. For self-hosted setups I recommend DigitalOcean. The $24/month Droplet (2 vCPU / 4 GB RAM) is the minimum viable option. The $48/month one (2 vCPU / 8 GB) is more comfortable if you're running multiple services.\n\nIf you sign up via this link you get $200 in free credit for 60 days — enough to run SigNoz for free while you evaluate it.\n\nA Ubuntu 22.04 or 24.04 Droplet is the recommended starting point. DigitalOcean also has a one-click Docker image if you want to skip the Docker installation step.\n\n## Requirements\n\n  * **RAM:** minimum 4 GB — SigNoz will not run reliably with less\n  * **CPU:** 2+ cores\n  * **Disk:** 20+ GB for data retention\n  * **OS:** Linux or macOS (Windows not officially supported)\n  * **Docker Engine** 20.10+ and **Docker Compose** v2.0+\n  * **Git**\n  * **Ports open:** 8080 (UI), 4317 (OTLP gRPC), 4318 (OTLP HTTP)\n\n\n\n## Step 1: Clone and start SigNoz\n\nSigNoz ships with its own Docker Compose setup. You don't need to write one from scratch:\n\n\n    # Clone the repo\n    git clone -b main https://github.com/SigNoz/signoz.git\n    cd signoz/deploy/docker\n\n    # Start the stack\n    docker compose up -d --remove-orphans\n\nFirst startup takes a few minutes — ClickHouse runs schema migrations on boot. Monitor it with:\n\n\n    docker compose logs -f signoz-clickhouse\n\nOnce ClickHouse is healthy, open `http://localhost:8080` in your browser. You'll be prompted to create an admin account on first login.\n\n## Step 2: Verify everything is running\n\n\n    docker compose ps\n\nYou should see these containers in `running` or `healthy` state:\n\n  * `signoz-signoz` — the main backend + UI\n  * `signoz-clickhouse` — the data store\n  * `signoz-otel-collector` — telemetry ingestion\n  * `signoz-zookeeper-1` — ClickHouse coordination\n  * `signoz-schema-migrator-sync` — exits cleanly after migrations\n\n\n\nIf any container is restarting, check its logs:\n\n\n    docker compose logs -f signoz-signoz\n\n## Step 3: Send your first telemetry\n\nSigNoz uses the OpenTelemetry protocol (OTLP). Your application needs an OpenTelemetry SDK to send data. Here's a quick test using the `telemetrygen` tool:\n\n\n    # Install telemetrygen (Go required)\n    go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen@latest\n\n    # Send test traces\n    telemetrygen traces --otlp-insecure --duration 5s\n\n    # Send test metrics\n    telemetrygen metrics --otlp-insecure --duration 5s\n\nOr if you want to send a quick test without installing Go, use curl to hit the OTLP HTTP endpoint:\n\n\n    curl -X POST http://localhost:4318/v1/traces \\\n      -H \"Content-Type: application/json\" \\\n      -d '{\"resourceSpans\":[]}'\n\nA 200 response confirms SigNoz is accepting telemetry.\n\n## Step 4: Instrument your application\n\nPoint your OpenTelemetry SDK at SigNoz. The OTLP endpoint is the same regardless of language:\n\n\n    # gRPC (recommended)\n    OTLP endpoint: localhost:4317\n\n    # HTTP\n    OTLP endpoint: http://localhost:4318\n\nExample environment variables for a containerized app in the same Docker network:\n\n\n    OTEL_EXPORTER_OTLP_ENDPOINT=http://signoz-otel-collector:4318\n    OTEL_SERVICE_NAME=my-service\n    OTEL_RESOURCE_ATTRIBUTES=deployment.environment=production\n\nFor apps on the same host (not in Docker):\n\n\n    OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318\n    OTEL_SERVICE_NAME=my-service\n\nServices overview — all your services in one place with latency, error rate and ops/s\n\n## Step 5: Set up alerts\n\nSigNoz has a built-in alert manager. Go to **Alerts → New Alert** in the UI and set up your first alert. The most useful ones to start with:\n\n  * **Error rate** — alert when HTTP 5xx errors exceed 1% of traffic\n  * **P99 latency** — alert when the 99th percentile response time exceeds your SLA\n  * **Service down** — alert when a service stops sending traces for 5+ minutes\n\n\n\nYou can route alerts to Slack, PagerDuty, or email via the notification channels in Settings.\n\n## Step 6: Retention and data management\n\nBy default SigNoz retains data for 15 days. Change this in **Settings → General → Retention Period**. For a dev/staging server 7 days is usually enough. For production, 30–90 days depending on your storage budget.\n\nTo back up your telemetry data:\n\n\n    # Stop first for a consistent snapshot\n    docker compose down\n\n    # Back up ClickHouse volume\n    sudo tar -czvf signoz-backup-$(date +%Y%m%d).tar.gz \\\n      /var/lib/docker/volumes/docker_signoz-clickhouse-data\n\n    # Start again\n    docker compose up -d\n\n## Step 7: Keeping SigNoz updated\n\n\n    cd signoz/deploy/docker\n    git pull origin main\n    docker compose pull\n    docker compose up -d --remove-orphans\n\n## Troubleshooting\n\n  * **UI not loading** — ClickHouse takes 2–5 minutes on first boot. Wait and retry.\n  * **Containers restarting** — almost always insufficient RAM. Check `free -h` and make sure you have 4+ GB available.\n  * **No data appearing** — verify your app is sending to the correct endpoint and that ports 4317/4318 are reachable from the app container.\n  * **Port conflicts** — if something is already using port 8080, edit the `docker-compose.yaml` to change the host port mapping.\n\n\n\n## SigNoz vs Prometheus + Grafana\n\nThe honest comparison:\n\n  * **SigNoz wins** on setup simplicity — one stack vs assembling 4–5 separate tools\n  * **SigNoz wins** on traces — distributed tracing is a first-class citizen, not an afterthought\n  * **Prometheus wins** on maturity and ecosystem — more exporters, more community resources\n  * **Grafana wins** on dashboard flexibility — more visualization options, more data source support\n\n\n\nIf you're starting fresh and want traces + metrics + logs without gluing things together — SigNoz is the faster path. If you already have a Prometheus setup and it's working — don't migrate just for the sake of it.",
  "title": "Monitoring Pack: Full Observability Stack with SigNoz on Docker Compose",
  "updatedAt": "2026-05-01T08:23:28.239Z"
}