Configs2026年4月10日·1 分钟阅读

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
快速使用

先拿来用,再决定要不要深挖

这里应该同时让用户和 Agent 知道第一步该复制什么、安装什么、落到哪里。

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.

介绍

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。

来源与致谢

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产