Files
home/Projects/kompose/trace/compose.yaml
2025-10-10 21:12:43 +02:00

223 lines
7.2 KiB
YAML

name: trace
x-common: &common
networks:
- signoz
- kompose_network
restart: unless-stopped
logging:
options:
max-size: 50m
max-file: "3"
x-clickhouse-defaults: &clickhouse-defaults
<<: *common
image: ${CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:25.5.6}
tty: true
labels:
signoz.io/scrape: "true"
signoz.io/port: "9363"
signoz.io/path: "/metrics"
depends_on:
init-clickhouse:
condition: service_completed_successfully
zookeeper-1:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "0.0.0.0:8123/ping"]
interval: 30s
timeout: 5s
retries: 3
ulimits:
nproc: 65535
nofile:
soft: 262144
hard: 262144
environment:
CLICKHOUSE_SKIP_USER_SETUP: 1
x-zookeeper-defaults: &zookeeper-defaults
<<: *common
image: ${ZOOKEEPER_IMAGE:-signoz/zookeeper:3.7.1}
user: root
labels:
signoz.io/scrape: "true"
signoz.io/port: "9141"
signoz.io/path: "/metrics"
healthcheck:
test: ["CMD-SHELL", "curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null"]
interval: 30s
timeout: 5s
retries: 3
x-db-depend: &db-depend
<<: *common
depends_on:
clickhouse:
condition: service_healthy
schema-migrator-sync:
condition: service_completed_successfully
services:
init-clickhouse:
<<: *common
image: ${CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:25.5.6}
container_name: ${COMPOSE_PROJECT_NAME}_init_clickhouse
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
restart: on-failure
volumes:
- ./common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
zookeeper-1:
<<: *zookeeper-defaults
container_name: ${COMPOSE_PROJECT_NAME}_zookeeper
volumes:
- zookeeper_data:/bitnami/zookeeper
environment:
ZOO_SERVER_ID: 1
ALLOW_ANONYMOUS_LOGIN: yes
ZOO_AUTOPURGE_INTERVAL: 1
ZOO_ENABLE_PROMETHEUS_METRICS: yes
ZOO_PROMETHEUS_METRICS_PORT_NUMBER: 9141
clickhouse:
<<: *clickhouse-defaults
container_name: ${COMPOSE_PROJECT_NAME}_clickhouse
volumes:
- ./common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
- ./common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
- ./common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
- ./common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
- ./common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
- clickhouse_data:/var/lib/clickhouse/
signoz:
<<: *db-depend
image: ${SIGNOZ_IMAGE:-signoz/signoz:v0.96.1}
container_name: ${COMPOSE_PROJECT_NAME}_app
command:
- --config=/root/config/prometheus.yml
volumes:
- ./common/signoz/prometheus.yml:/root/config/prometheus.yml
- ./common/dashboards:/root/config/dashboards
- signoz_data:/var/lib/signoz/
environment:
SIGNOZ_ALERTMANAGER_PROVIDER: signoz
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN: tcp://clickhouse:9000
SIGNOZ_SQLSTORE_SQLITE_PATH: /var/lib/signoz/signoz.db
DASHBOARDS_PATH: /root/config/dashboards
STORAGE: clickhouse
GODEBUG: netdns=go
TELEMETRY_ENABLED: ${TELEMETRY_ENABLED:-true}
DEPLOYMENT_TYPE: docker-standalone-amd
DOT_METRICS_ENABLED: ${DOT_METRICS_ENABLED:-true}
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "localhost:8080/api/v1/health"]
interval: 30s
timeout: 5s
retries: 3
ports:
- 7070:${APP_PORT}
networks:
- kompose_network
- signoz
# labels:
# - 'traefik.enable=true'
# - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-redirect-web-secure.redirectscheme.scheme=https'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.middlewares=$COMPOSE_PROJECT_NAME-redirect-web-secure'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.rule=Host(`$TRAEFIK_HOST`)'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web.entrypoints=web'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.rule=Host(`$TRAEFIK_HOST`)'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.tls.certresolver=resolver'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.entrypoints=web-secure'
# - 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-web-secure-compress.compress=true'
# - 'traefik.http.routers.$COMPOSE_PROJECT_NAME-web-secure.middlewares=$COMPOSE_PROJECT_NAME-web-secure-compress'
# - 'traefik.http.services.$COMPOSE_PROJECT_NAME-web-secure.loadbalancer.server.port=$APP_PORT'
# - 'traefik.docker.network=kompose_network'
otel-collector:
image: ${OTELCOL_IMAGE:-signoz/signoz-otel-collector:v0.129.6}
container_name: ${COMPOSE_PROJECT_NAME}_otel_collector
privileged: true
pid: host
user: 0:0
networks:
- kompose_network
- signoz
restart: unless-stopped
logging:
options:
max-size: 50m
max-file: "3"
command:
- --config=/etc/otel-collector-config.yaml
- --manager-config=/etc/manager-config.yaml
- --copy-path=/var/tmp/collector-config.yaml
- --feature-gates=-pkg.translator.prometheus.NormalizeName
volumes:
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
- ./common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc:/hostfs/proc:ro
- /sys:/hostfs/sys:ro
- /:/hostfs:ro
environment:
OTEL_RESOURCE_ATTRIBUTES: host.name=signoz-host,os.type=linux
LOW_CARDINAL_EXCEPTION_GROUPING: false
HOST_PROC: /hostfs/proc
HOST_SYS: /hostfs/sys
HOST_ROOT: /hostfs
depends_on:
signoz:
condition: service_healthy
schema-migrator-sync:
<<: *common
image: ${OTELCOL_IMAGE:-signoz/signoz-schema-migrator:v0.129.6}
container_name: ${COMPOSE_PROJECT_NAME}_migrator_sync
command:
- sync
- --dsn=tcp://clickhouse:9000
- --up=
depends_on:
clickhouse:
condition: service_healthy
restart: on-failure
schema-migrator-async:
<<: *db-depend
image: ${OTELCOL_IMAGE:-signoz/signoz-schema-migrator:v0.129.6}
container_name: ${COMPOSE_PROJECT_NAME}_migrator_async
command:
- async
- --dsn=tcp://clickhouse:9000
- --up=
restart: on-failure
networks:
signoz:
name: signoz
kompose_network:
name: ${NETWORK_NAME:-kompose}
external: true
volumes:
clickhouse_data:
name: ${COMPOSE_PROJECT_NAME}_clickhouse
signoz_data:
name: ${COMPOSE_PROJECT_NAME}_signoz
zookeeper_data:
name: ${COMPOSE_PROJECT_NAME}_zookeeper