SigNoz
Open-source APM and observability platform with traces, metrics, and logs.
Overview
SigNoz is a comprehensive open-source Application Performance Monitoring (APM) and observability platform that provides distributed tracing, metrics collection, and log aggregation in a single unified interface. Built as a modern alternative to commercial solutions like Datadog and New Relic, SigNoz leverages OpenTelemetry standards for data collection and ClickHouse's columnar database for high-performance analytics on observability data. The platform emerged from the need for cost-effective, self-hosted observability solutions that don't compromise on performance or features.
This deployment combines SigNoz's frontend dashboard with ClickHouse as the analytical backend and OpenTelemetry Collector for telemetry data ingestion. ClickHouse's columnar storage excels at handling the high-volume, time-series nature of observability data, enabling fast queries across millions of traces and metrics. The OpenTelemetry Collector acts as the central pipeline, receiving telemetry data via OTLP protocols and processing it before storage, while SigNoz's frontend provides intuitive visualization and analysis capabilities.
This stack is ideal for engineering teams transitioning from expensive commercial APM solutions, DevOps teams implementing observability-driven development practices, and organizations requiring complete control over their monitoring data. The combination offers enterprise-grade observability features while maintaining data sovereignty and predictable costs, making it particularly valuable for companies handling sensitive data or operating under strict compliance requirements.
Key Features
- Distributed tracing with flame graphs and trace topology visualization using OpenTelemetry standards
- Real-time metrics dashboard with custom aggregations powered by ClickHouse's analytical engine
- Unified logs, traces, and metrics correlation in a single interface for faster debugging
- OTLP protocol support on both gRPC (4317) and HTTP (4318) for universal application instrumentation
- High-performance query engine capable of analyzing billions of telemetry events in milliseconds
- Built-in alerting system with custom metric thresholds and notification integrations
- Service topology mapping showing dependencies and performance bottlenecks across microservices
- Cost-effective data retention with ClickHouse's compression reducing storage requirements by up to 90%
Common Use Cases
- 1Migrating from expensive commercial APM solutions like Datadog or New Relic while maintaining feature parity
- 2Implementing observability for microservices architectures requiring distributed tracing capabilities
- 3Debugging performance issues in complex distributed systems with correlated logs and traces
- 4Monitoring high-traffic applications where commercial APM pricing becomes prohibitively expensive
- 5Compliance-sensitive environments requiring on-premises observability data storage and processing
- 6Development teams practicing observability-driven development with real-time performance feedback
- 7Organizations needing custom retention policies and advanced analytics on observability data
Prerequisites
- Docker Engine 20.10+ and Docker Compose V2 for container orchestration support
- Minimum 4GB RAM available (2GB for ClickHouse, 1GB for SigNoz, 1GB for system overhead)
- Available ports 3301 (SigNoz UI), 4317 (OTLP gRPC), and 4318 (OTLP HTTP) for service access
- OpenTelemetry Collector configuration file at ./signoz/otel-config.yaml with appropriate receivers and processors
- Basic understanding of OpenTelemetry instrumentation for connecting applications to the collector
- At least 20GB free disk space for initial ClickHouse data storage and log retention
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 clickhouse: 3 image: clickhouse/clickhouse-server:latest4 container_name: signoz-clickhouse5 restart: unless-stopped6 volumes: 7 - clickhouse_data:/var/lib/clickhouse8 networks: 9 - signoz-network1011 otel-collector: 12 image: signoz/signoz-otel-collector:latest13 container_name: otel-collector14 restart: unless-stopped15 command: --config=/etc/otel-collector-config.yaml16 volumes: 17 - ./signoz/otel-config.yaml:/etc/otel-collector-config.yaml:ro18 ports: 19 - "4317:4317"20 - "4318:4318"21 depends_on: 22 - clickhouse23 networks: 24 - signoz-network2526 signoz: 27 image: signoz/frontend:latest28 container_name: signoz29 restart: unless-stopped30 ports: 31 - "3301:3301"32 depends_on: 33 - clickhouse34 networks: 35 - signoz-network3637volumes: 38 clickhouse_data: 3940networks: 41 signoz-network: 42 driver: bridge.env Template
.env
1# SigNoz configurationUsage Notes
- 1Docs: https://signoz.io/docs/
- 2Dashboard at http://localhost:3301 - traces, metrics, logs in one place
- 3OTLP gRPC on 4317, HTTP on 4318 - instrument apps with OpenTelemetry SDKs
- 4Create signoz/otel-config.yaml before starting
- 5ClickHouse backend for high-performance analytics
- 6Open-source Datadog/New Relic alternative
Individual Services(3 services)
Copy individual services to mix and match with your existing compose files.
clickhouse
clickhouse:
image: clickhouse/clickhouse-server:latest
container_name: signoz-clickhouse
restart: unless-stopped
volumes:
- clickhouse_data:/var/lib/clickhouse
networks:
- signoz-network
otel-collector
otel-collector:
image: signoz/signoz-otel-collector:latest
container_name: otel-collector
restart: unless-stopped
command: "--config=/etc/otel-collector-config.yaml"
volumes:
- ./signoz/otel-config.yaml:/etc/otel-collector-config.yaml:ro
ports:
- "4317:4317"
- "4318:4318"
depends_on:
- clickhouse
networks:
- signoz-network
signoz
signoz:
image: signoz/frontend:latest
container_name: signoz
restart: unless-stopped
ports:
- "3301:3301"
depends_on:
- clickhouse
networks:
- signoz-network
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 clickhouse:5 image: clickhouse/clickhouse-server:latest6 container_name: signoz-clickhouse7 restart: unless-stopped8 volumes:9 - clickhouse_data:/var/lib/clickhouse10 networks:11 - signoz-network1213 otel-collector:14 image: signoz/signoz-otel-collector:latest15 container_name: otel-collector16 restart: unless-stopped17 command: --config=/etc/otel-collector-config.yaml18 volumes:19 - ./signoz/otel-config.yaml:/etc/otel-collector-config.yaml:ro20 ports:21 - "4317:4317"22 - "4318:4318"23 depends_on:24 - clickhouse25 networks:26 - signoz-network2728 signoz:29 image: signoz/frontend:latest30 container_name: signoz31 restart: unless-stopped32 ports:33 - "3301:3301"34 depends_on:35 - clickhouse36 networks:37 - signoz-network3839volumes:40 clickhouse_data:4142networks:43 signoz-network:44 driver: bridge45EOF4647# 2. Create the .env file48cat > .env << 'EOF'49# SigNoz configuration50EOF5152# 3. Start the services53docker compose up -d5455# 4. View logs56docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/signoz/run | bashTroubleshooting
- SigNoz dashboard shows 'No data' error: Verify OpenTelemetry Collector configuration file exists and applications are properly instrumented with OTLP exporters
- ClickHouse container fails with 'Memory limit exceeded' error: Increase Docker memory allocation to minimum 4GB or add ClickHouse memory configuration limits
- OpenTelemetry Collector connection refused on port 4317/4318: Check if ports are already in use and ensure collector container started successfully with proper configuration
- SigNoz frontend shows connection errors to ClickHouse: Verify ClickHouse container is healthy and network connectivity exists between signoz and clickhouse containers
- High memory usage in ClickHouse container: Configure data retention policies and TTL settings to automatically remove old observability data
- Missing traces despite application instrumentation: Verify OTLP endpoint configuration in applications points to correct collector ports and protocols match
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
signozclickhouseotel-collector
Tags
#signoz#apm#tracing#observability#opentelemetry
Category
Monitoring & ObservabilityAd Space
Shortcuts: C CopyF FavoriteD Download