feat: signoz

This commit is contained in:
Robbie 2026-06-16 11:20:25 -04:00
parent dc39e02242
commit ebcc6e4d2d
4 changed files with 219 additions and 30 deletions

View file

@ -0,0 +1,35 @@
# =============================================================================
# SigNoz — OpenTelemetry Observability Platform
# =============================================================================
# Copy to .env and edit for your deployment.
# cp .env.example .env
# The actual .env is deployed by Dockhand and should not be committed.
#
# Replaces both Alloy (OTEL collector) and LGTM (Grafana/Prometheus/Tempo/Loki).
# All stacks should point their OTLP exporters to signoz on the pipeline network.
# =============================================================================
# -----------------------------------------------------------------------------
# SigNoz Image Version
# -----------------------------------------------------------------------------
# Pin a specific version for reproducibility. Check releases at:
# https://github.com/SigNoz/signoz/releases
SIGNOZ_VERSION=latest
# -----------------------------------------------------------------------------
# ClickHouse
# -----------------------------------------------------------------------------
CLICKHOUSE_VERSION=25.5
CLICKHOUSE_DB=signoz
CLICKHOUSE_USER=admin
CLICKHOUSE_PASSWORD=change-me-clickhouse-password
# -----------------------------------------------------------------------------
# Exposed Ports
# -----------------------------------------------------------------------------
# SigNoz UI
EXPOSE_SIGNOZ_UI_PORT=3301
# OTLP gRPC receiver (used by instrumented apps/services)
EXPOSE_OTLP_GRPC_PORT=4317
# OTLP HTTP receiver (used by instrumented apps/services)
EXPOSE_OTLP_HTTP_PORT=4318

View file

@ -0,0 +1,92 @@
name: signoz
services:
# ===========================================================================
# ClickHouse — columnar storage for all telemetry data
# ===========================================================================
clickhouse:
image: clickhouse/clickhouse-server:${CLICKHOUSE_VERSION:-25.5}
restart: unless-stopped
environment:
CLICKHOUSE_DB: ${CLICKHOUSE_DB:-signoz}
CLICKHOUSE_USER: ${CLICKHOUSE_USER:-admin}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-change-me-clickhouse-password}
volumes:
- ./clickhouse-data:/var/lib/clickhouse
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1
interval: 5s
timeout: 3s
retries: 30
start_period: 10s
networks:
- signoz
# ===========================================================================
# SigNoz — all-in-one observability platform (query service + UI + collector)
# ===========================================================================
# Replaces both Alloy (OTEL collector) and LGTM (Grafana/Prometheus/Tempo/Loki).
# Accepts OTLP gRPC (4317) and OTLP HTTP (4318) from all stacks.
# UI on port 3301.
#
# Docs: https://signoz.io/docs/install/docker/
# ===========================================================================
signoz:
image: signoz/signoz:${SIGNOZ_VERSION:-latest}
restart: unless-stopped
depends_on:
clickhouse:
condition: service_healthy
environment:
SIGNOZ_TELEMETRY_STORE: clickhouse
DSN: tcp://clickhouse:9000
CLICKHOUSE_USER: ${CLICKHOUSE_USER:-admin}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-change-me-clickhouse-password}
CLICKHOUSE_DATABASE: ${CLICKHOUSE_DB:-signoz}
STORAGE: clickhouse
CLICKHOUSE_ENDPOINT: tcp://clickhouse:9000
SIGNOZ_CLICKHOUSE_DSN: tcp://clickhouse:9000
ports:
# SigNoz UI
- ${EXPOSE_SIGNOZ_UI_PORT:-3301}:3301
# OTLP gRPC receiver
- ${EXPOSE_OTLP_GRPC_PORT:-4317}:4317
# OTLP HTTP receiver
- ${EXPOSE_OTLP_HTTP_PORT:-4318}:4318
volumes:
- ./signoz-data:/var/lib/signoz
healthcheck:
test:
- CMD
- wget
- --no-verbose
- --tries=1
- --spider
- http://localhost:3301/api/v1/health
interval: 15s
timeout: 5s
retries: 10
start_period: 30s
networks:
signoz: {}
pipeline:
aliases:
- signoz
- otel
- lgtm
# swag:
# aliases:
# - signoz
networks:
signoz:
name: signoz
driver: bridge
pipeline:
name: pipeline
external: true
# swag:
# name: swag
# external: true
volumes: {}

View file

@ -0,0 +1,37 @@
## -----------------------------------------------------------------------------
## SWAG proxy config for SigNoz
## Domain: signoz.ld50.xyz
## Upstream: signoz:3301 (shared Docker network: ${NETWORKS_EXTERNAL_NAME:-swag})
##
## Install:
## 1) Copy this file into SWAG: /config/nginx/proxy-confs/signoz.subdomain.conf
## 2) Ensure both stacks share the same external Docker network (e.g. `swag`).
## 3) In curated_compose/signoz/compose.yaml, uncomment the swag network + service attachment.
## 4) Reload SWAG.
## -----------------------------------------------------------------------------
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name signoz.ld50.xyz;
include /config/nginx/ssl.conf;
location / {
include /config/nginx/proxy.conf;
set $upstream_app signoz;
set $upstream_port 3301;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
# SigNoz UI uses WebSocket for live query results
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}