refactor: signoz
This commit is contained in:
+170
-156
@@ -3,61 +3,199 @@ x-defaults: &defaults
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-size: 50m
|
||||
max-file: '3'
|
||||
|
||||
x-clickhouse-defaults: &clickhouse-defaults
|
||||
restart: on-failure
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: '3'
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-25.5.6}
|
||||
depends_on:
|
||||
init-clickhouse:
|
||||
condition: service_completed_successfully
|
||||
zookeeper-1:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: [CMD, wget, --spider, -q, 'localhost:8123/ping']
|
||||
test: [CMD, wget, --spider, -q, '0.0.0.0:8123/ping']
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_CLICKHOUSE_CPU_LIMIT:-2.0}
|
||||
memory: ${SIGNOZ_CLICKHOUSE_MEMORY_LIMIT:-4G}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_CLICKHOUSE_CPU_RESERVATION:-0.5}
|
||||
memory: ${SIGNOZ_CLICKHOUSE_MEMORY_RESERVATION:-1G}
|
||||
ulimits:
|
||||
nproc: 65535
|
||||
nofile:
|
||||
soft: 262144
|
||||
hard: 262144
|
||||
|
||||
x-db-depend: &db-depend
|
||||
<<: *defaults
|
||||
depends_on:
|
||||
clickhouse:
|
||||
condition: service_healthy
|
||||
|
||||
services:
|
||||
# One-shot init: downloads histogramQuantile UDF binary into the shared volume
|
||||
init-clickhouse:
|
||||
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-25.5.6}
|
||||
restart: on-failure
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 10m
|
||||
max-file: '1'
|
||||
command:
|
||||
- bash
|
||||
- -c
|
||||
- |
|
||||
version="v0.0.1"
|
||||
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||
cd /tmp
|
||||
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||
tar -xvzf histogram-quantile.tar.gz
|
||||
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||
echo "Done."
|
||||
volumes:
|
||||
- clickhouse_user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 256M
|
||||
|
||||
# ZooKeeper for ClickHouse replication metadata
|
||||
zookeeper-1:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/zookeeper:${SIGNOZ_ZOOKEEPER_VERSION:-3.7.1}
|
||||
user: root
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- ZOO_SERVER_ID=1
|
||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||
- ZOO_AUTOPURGE_INTERVAL=1
|
||||
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||
volumes:
|
||||
- zookeeper_data:/bitnami/zookeeper
|
||||
healthcheck:
|
||||
test: [CMD-SHELL, 'curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null']
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_ZOOKEEPER_CPU_LIMIT:-0.5}
|
||||
memory: ${SIGNOZ_ZOOKEEPER_MEMORY_LIMIT:-512M}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_ZOOKEEPER_CPU_RESERVATION:-0.1}
|
||||
memory: ${SIGNOZ_ZOOKEEPER_MEMORY_RESERVATION:-128M}
|
||||
|
||||
# ClickHouse for storing traces, metrics and logs
|
||||
clickhouse:
|
||||
<<: *clickhouse-defaults
|
||||
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-24.11.1-alpine}
|
||||
user: '101:101' # ClickHouse user
|
||||
volumes:
|
||||
- clickhouse_data:/var/lib/clickhouse
|
||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
|
||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.d/logging.xml:ro
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- CLICKHOUSE_DB=${SIGNOZ_CLICKHOUSE_DB:-signoz}
|
||||
- CLICKHOUSE_SKIP_USER_SETUP=1
|
||||
volumes:
|
||||
- clickhouse_data:/var/lib/clickhouse/
|
||||
- clickhouse_user_scripts:/var/lib/clickhouse/user_scripts/
|
||||
- ./clickhouse/config.xml:/etc/clickhouse-server/config.xml:ro
|
||||
- ./clickhouse/users.xml:/etc/clickhouse-server/users.xml:ro
|
||||
- ./clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml:ro
|
||||
- ./clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml:ro
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_CLICKHOUSE_CPU_LIMIT:-2.0}
|
||||
memory: ${SIGNOZ_CLICKHOUSE_MEMORY_LIMIT:-4G}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_CLICKHOUSE_CPU_RESERVATION:-0.5}
|
||||
memory: ${SIGNOZ_CLICKHOUSE_MEMORY_RESERVATION:-1G}
|
||||
|
||||
# One-shot migration: bootstraps and runs schema migrations
|
||||
signoz-telemetrystore-migrator:
|
||||
<<: *db-depend
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-v0.144.2}
|
||||
restart: on-failure
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_CLUSTER=cluster
|
||||
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_REPLICATION=true
|
||||
- SIGNOZ_OTEL_COLLECTOR_TIMEOUT=10m
|
||||
entrypoint: [/bin/sh]
|
||||
command:
|
||||
- -c
|
||||
- |
|
||||
/signoz-otel-collector migrate bootstrap &&
|
||||
/signoz-otel-collector migrate sync up &&
|
||||
/signoz-otel-collector migrate async up
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '0.5'
|
||||
memory: 512M
|
||||
|
||||
# SigNoz all-in-one backend + frontend + alertmanager
|
||||
signoz:
|
||||
<<: *db-depend
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/signoz:${SIGNOZ_VERSION:-v0.118.0}
|
||||
ports:
|
||||
- '${SIGNOZ_PORT_OVERRIDE:-8080}:8080'
|
||||
volumes:
|
||||
- signoz_data:/var/lib/signoz/
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- SIGNOZ_ALERTMANAGER_PROVIDER=signoz
|
||||
- SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||
- SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||
- SIGNOZ_TOKENIZER_JWT_SECRET=${SIGNOZ_JWT_SECRET:-please-change-this-secret}
|
||||
healthcheck:
|
||||
test: [CMD, wget, --spider, -q, 'localhost:8080/api/v1/health']
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_CPU_LIMIT:-1.0}
|
||||
memory: ${SIGNOZ_MEMORY_LIMIT:-2G}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_CPU_RESERVATION:-0.25}
|
||||
memory: ${SIGNOZ_MEMORY_RESERVATION:-256M}
|
||||
|
||||
# OTel Collector for receiving telemetry data
|
||||
otel-collector:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-0.102.8}
|
||||
<<: *db-depend
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-v0.144.2}
|
||||
entrypoint: [/bin/sh]
|
||||
command:
|
||||
- --config=/etc/otel-collector-config.yaml
|
||||
- -c
|
||||
- |
|
||||
/signoz-otel-collector migrate sync check &&
|
||||
/signoz-otel-collector --config=/etc/otel-collector-config.yaml --manager-config=/etc/manager-config.yaml --copy-path=/var/tmp/collector-config.yaml
|
||||
volumes:
|
||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml:ro
|
||||
- ./signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml:ro
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- OTEL_RESOURCE_ATTRIBUTES=${SIGNOZ_OTEL_RESOURCE_ATTRIBUTES:-host.name=signoz-host}
|
||||
- OTEL_RESOURCE_ATTRIBUTES=${SIGNOZ_OTEL_RESOURCE_ATTRIBUTES:-host.name=signoz-host,os.type=linux}
|
||||
- LOW_CARDINAL_EXCEPTION_GROUPING=${SIGNOZ_LOW_CARDINAL_EXCEPTION_GROUPING:-false}
|
||||
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_CLUSTER=cluster
|
||||
- SIGNOZ_OTEL_COLLECTOR_CLICKHOUSE_REPLICATION=true
|
||||
- SIGNOZ_OTEL_COLLECTOR_TIMEOUT=10m
|
||||
ports:
|
||||
- '${SIGNOZ_OTEL_GRPC_PORT_OVERRIDE:-4317}:4317' # OTLP gRPC receiver
|
||||
- '${SIGNOZ_OTEL_HTTP_PORT_OVERRIDE:-4318}:4318' # OTLP HTTP receiver
|
||||
depends_on:
|
||||
clickhouse:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: [CMD, bash, -c, echo > /dev/tcp/localhost/13133]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -66,133 +204,9 @@ services:
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_OTEL_COLLECTOR_CPU_RESERVATION:-0.25}
|
||||
memory: ${SIGNOZ_OTEL_COLLECTOR_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:13133/'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
# Query Service for querying data
|
||||
query-service:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/query-service:${SIGNOZ_QUERY_SERVICE_VERSION:-0.55.0}
|
||||
command:
|
||||
- -config=/root/config/prometheus.yml
|
||||
volumes:
|
||||
- ./query-service/prometheus.yml:/root/config/prometheus.yml:ro
|
||||
- signoz_data:/var/lib/signoz
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- ClickHouseUrl=${SIGNOZ_CLICKHOUSE_URL:-tcp://clickhouse:9000/?database=signoz}
|
||||
- STORAGE=${SIGNOZ_STORAGE:-clickhouse}
|
||||
- GODEBUG=${SIGNOZ_GODEBUG:-netdns=go}
|
||||
- TELEMETRY_ENABLED=${SIGNOZ_TELEMETRY_ENABLED:-true}
|
||||
- DEPLOYMENT_TYPE=${SIGNOZ_DEPLOYMENT_TYPE:-docker-standalone-amd}
|
||||
depends_on:
|
||||
clickhouse:
|
||||
condition: service_healthy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_QUERY_SERVICE_CPU_LIMIT:-1.0}
|
||||
memory: ${SIGNOZ_QUERY_SERVICE_MEMORY_LIMIT:-1G}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_QUERY_SERVICE_CPU_RESERVATION:-0.25}
|
||||
memory: ${SIGNOZ_QUERY_SERVICE_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:8080/api/v1/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
# Frontend for the UI
|
||||
frontend:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/frontend:${SIGNOZ_FRONTEND_VERSION:-0.55.0}
|
||||
ports:
|
||||
- '${SIGNOZ_PORT_OVERRIDE:-3301}:3301'
|
||||
volumes:
|
||||
- ./frontend/nginx-config.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
depends_on:
|
||||
query-service:
|
||||
condition: service_healthy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_FRONTEND_CPU_LIMIT:-0.5}
|
||||
memory: ${SIGNOZ_FRONTEND_MEMORY_LIMIT:-512M}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_FRONTEND_CPU_RESERVATION:-0.1}
|
||||
memory: ${SIGNOZ_FRONTEND_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:3301/api/v1/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
# Alert Manager for managing alerts
|
||||
alertmanager:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}signoz/alertmanager:${SIGNOZ_ALERTMANAGER_VERSION:-0.23.5}
|
||||
command:
|
||||
- --queryService.url=http://query-service:8080
|
||||
- --storage.path=/data
|
||||
volumes:
|
||||
- alertmanager_data:/data
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
depends_on:
|
||||
query-service:
|
||||
condition: service_healthy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: ${SIGNOZ_ALERTMANAGER_CPU_LIMIT:-0.5}
|
||||
memory: ${SIGNOZ_ALERTMANAGER_MEMORY_LIMIT:-512M}
|
||||
reservations:
|
||||
cpus: ${SIGNOZ_ALERTMANAGER_CPU_RESERVATION:-0.1}
|
||||
memory: ${SIGNOZ_ALERTMANAGER_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:9093/-/healthy'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
volumes:
|
||||
clickhouse_data:
|
||||
clickhouse_user_scripts:
|
||||
signoz_data:
|
||||
alertmanager_data:
|
||||
zookeeper_data:
|
||||
|
||||
Reference in New Issue
Block a user