ConfigsApr 10, 2026·1 min read

SigNoz — Open Source APM & Observability Platform

SigNoz is an open-source Datadog/New Relic alternative with logs, traces, and metrics in one platform. Native OpenTelemetry support, ClickHouse backend, and powerful dashboards.

AI
AI Open Source · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

git clone https://github.com/SigNoz/signoz.git && cd signoz/deploy
docker compose -f docker/clickhouse-setup/docker-compose.yaml up -d

Open http://localhost:3301 — start sending traces and metrics from your application.

Intro

SigNoz is an open-source Application Performance Monitoring (APM) and observability platform that provides logs, traces, and metrics in a single application. Built natively on OpenTelemetry and powered by ClickHouse for high-performance storage, it serves as a self-hosted alternative to Datadog, New Relic, and Dynatrace.

With 26.5K+ GitHub stars, SigNoz is the leading open-source full-stack observability solution, designed for developers and SREs who want enterprise-grade APM without vendor lock-in or per-host pricing.

What SigNoz Does

  • Distributed Tracing: End-to-end request tracing across microservices with flame graphs and Gantt charts
  • Metrics Monitoring: Application and infrastructure metrics with custom dashboards
  • Log Management: Structured and unstructured log aggregation with full-text search
  • Alerts: Threshold and anomaly-based alerts with Slack, PagerDuty, and webhook notifications
  • Service Maps: Auto-generated topology showing service dependencies and health
  • Exception Tracking: Group and track application exceptions with stack traces
  • OpenTelemetry Native: First-class support for OpenTelemetry — no proprietary agents

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Your Apps   │────▶│  OTel        │────▶│  SigNoz      │
│  (OTel SDK)  │     │  Collector   │     │  Query       │
└──────────────┘     └──────────────┘     │  Service     │
                                          └──────┬───────┘
┌──────────────┐                                 │
│  SigNoz UI   │◀────────────────────────────────┘
│  (React)     │                          ┌──────┴───────┐
└──────────────┘                          │  ClickHouse  │
                                          │  (Storage)   │
                                          └──────────────┘

Self-Hosting

Docker Compose

git clone https://github.com/SigNoz/signoz.git
cd signoz/deploy
docker compose -f docker/clickhouse-setup/docker-compose.yaml up -d

This starts: SigNoz frontend, query service, OTel collector, alert manager, and ClickHouse.

Kubernetes (Helm)

helm repo add signoz https://charts.signoz.io
helm install signoz signoz/signoz --namespace signoz --create-namespace

Instrumenting Your App

Python (Flask)

# pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter

provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(
    OTLPSpanExporter(endpoint="http://localhost:4317", insecure=True)
))
trace.set_tracer_provider(provider)
tracer = trace.get_tracer(__name__)

@app.route("/api/users")
def get_users():
    with tracer.start_as_current_span("fetch-users"):
        users = db.query("SELECT * FROM users")
        return jsonify(users)

Node.js

// npm install @opentelemetry/api @opentelemetry/sdk-node @opentelemetry/exporter-trace-otlp-grpc
const { NodeSDK } = require('@opentelemetry/sdk-node');
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-grpc');

const sdk = new NodeSDK({
  traceExporter: new OTLPTraceExporter({
    url: 'http://localhost:4317',
  }),
});
sdk.start();

Go

import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
)

exporter, _ := otlptracegrpc.New(ctx,
    otlptracegrpc.WithEndpoint("localhost:4317"),
    otlptracegrpc.WithInsecure(),
)
// Set up tracer provider with exporter

Key Features

Distributed Tracing

Visualize request flow across services:

User Request → API Gateway (12ms)
  → Auth Service (5ms)
  → User Service (45ms)
    → PostgreSQL Query (30ms)
    → Redis Cache Set (2ms)
  → Response (62ms total)

Flame graph and Gantt chart views show exactly where time is spent.

Log Management

Query: service=api-gateway AND status>=500 AND latency>1000ms
  → Filter by time range, severity, service
  → Correlate logs with traces (click log → see trace)
  → Create alerts on log patterns

Dashboards

Pre-built dashboards for:

  • Application: P99 latency, error rate, throughput (RED metrics)
  • Infrastructure: CPU, memory, disk, network per host
  • Database: Query latency, connection pool, slow queries
  • Custom: Build with PromQL-compatible query builder

SigNoz vs Alternatives

Feature SigNoz Datadog Grafana Stack Jaeger
Open Source Yes No Yes (mixed) Yes
Logs + Traces + Metrics Single app Single app 3 separate tools Traces only
OpenTelemetry Native Supported Supported Native
Storage ClickHouse Proprietary Multiple DBs Elasticsearch/Cassandra
Pricing Free (self-host) $15/host/mo Free (self-host) Free
Setup complexity Docker Compose Agent install Multiple services Moderate

常见问题

Q: SigNoz 和 Grafana + Prometheus + Loki + Tempo 比怎么样? A: Grafana 方案需要部署和管理 4 个独立组件。SigNoz 是单一平台,日志/追踪/指标天然关联,部署和运维更简单。Grafana 的优势是生态更成熟、仪表盘更灵活。

Q: ClickHouse 后端性能如何? A: ClickHouse 是列式数据库,特别适合时序数据查询。SigNoz 可以高效处理每秒数十万 span 的写入,查询亿级数据在秒级返回。比 Elasticsearch 存储效率高 3-5 倍。

Q: 需要修改代码吗? A: 需要添加 OpenTelemetry SDK 进行应用埋点。大多数框架有自动埋点库(auto-instrumentation),只需几行配置代码。这是标准做法,不会绑定到 SigNoz。

来源与致谢

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets