diff --git a/public/svgs/signoz.svg b/public/svgs/signoz.svg
new file mode 100644
index 000000000..ac47e1c93
--- /dev/null
+++ b/public/svgs/signoz.svg
@@ -0,0 +1,30 @@
+
diff --git a/templates/compose/signoz.yaml b/templates/compose/signoz.yaml
new file mode 100644
index 000000000..42e21790c
--- /dev/null
+++ b/templates/compose/signoz.yaml
@@ -0,0 +1,627 @@
+# documentation: https://signoz.io/docs/introduction/
+# slogan: An observability platform native to OpenTelemetry with logs, traces and metrics.
+# tags: telemetry, server, applications, interface, logs, monitoring, traces, metrics
+# logo: svgs/signoz.svg
+# port: 8080
+
+services:
+ init-clickhouse:
+ image: clickhouse/clickhouse-server:25.5.6-alpine
+ 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
+ mkdir -p /var/lib/clickhouse/user_scripts/histogramQuantile
+ mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
+ restart: on-failure
+ exclude_from_hc: true
+ logging:
+ options:
+ max-size: 50m
+ max-file: "3"
+
+ zookeeper:
+ image: signoz/zookeeper:3.9.3
+ user: root
+ healthcheck:
+ test:
+ - CMD-SHELL
+ - curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
+ interval: 30s
+ timeout: 5s
+ retries: 3
+ logging:
+ options:
+ max-size: 50m
+ max-file: "3"
+ volumes:
+ - zookeeper:/bitnami/zookeeper
+ environment:
+ - ALLOW_ANONYMOUS_LOGIN=${ZOO_ALLOW_ANONYMOUS_LOGIN:-yes}
+ - ZOO_AUTOPURGE_INTERVAL=${ZOO_AUTOPURGE_INTERVAL:-1}
+ - ZOO_ENABLE_PROMETHEUS_METRICS=${ZOO_ENABLE_PROMETHEUS_METRICS:-yes}
+ - ZOO_PROMETHEUS_METRICS_PORT_NUMBER=${ZOO_PROMETHEUS_METRICS_PORT_NUMBER:-9141}
+
+ clickhouse:
+ # addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
+ image: clickhouse/clickhouse-server:25.5.6-alpine
+ tty: true
+ depends_on:
+ init-clickhouse:
+ condition: service_completed_successfully
+ zookeeper:
+ 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
+ logging:
+ options:
+ max-size: 50m
+ max-file: "3"
+ environment:
+ - "CLICKHOUSE_SKIP_USER_SETUP=1"
+ volumes:
+ - type: volume
+ source: clickhouse
+ target: /var/lib/clickhouse/
+ - type: bind
+ source: ./clickhouse/custom-function.xml
+ target: /etc/clickhouse-server/custom-function.xml
+ content: |
+
+
+ executable
+ histogramQuantile
+ Float64
+
+ Array(Float64)
+ buckets
+
+
+ Array(Float64)
+ counts
+
+
+ Float64
+ quantile
+
+ CSV
+ ./histogramQuantile
+
+
+ - type: bind
+ source: ./clickhouse/cluster.xml
+ target: /etc/clickhouse-server/config.d/cluster.xml
+ content: |
+
+
+
+
+
+ zookeeper
+ 2181
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ clickhouse
+ 9000
+
+
+
+
+
+
+
+
+ - type: bind
+ source: ./clickhouse/users.xml
+ target: /etc/clickhouse-server/users.xml
+ content: |
+
+
+
+
+
+
+
+
+
+ 10000000000
+
+
+ random
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ ::/0
+
+
+
+ default
+
+
+ default
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3600
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+ - type: bind
+ source: ./clickhouse/config.xml
+ target: /etc/clickhouse-server/config.xml
+ content: |
+
+
+ 4096
+ 3
+ 100
+ 5368709120
+ 1000
+ 134217728
+ 10000
+
+ *_dictionary.xml
+ *function.xml
+ /var/lib/clickhouse/user_scripts/
+ 8123
+ 9000
+ 9004
+ 9005
+ 9009
+
+ information
+
+ json
+
+
+
+ 01
+ example01-01-1
+
+
+ /metrics
+ 9363
+ true
+ true
+ true
+ true
+
+
+ engine MergeTree
+ partition by toYYYYMM(finish_date)
+ order by (finish_date, finish_time_us, trace_id)
+
+
+
+ hide encrypt/decrypt arguments
+ ((?:aes_)?(?:encrypt|decrypt)(?:_mysql)?)\s*\(\s*(?:'(?:\\'|.)+'|.*?)\s*\)
+ \1(???)
+
+
+
+ false
+ false
+ https://6f33034cfe684dd7a3ab9875e57b1c8d@o388870.ingest.sentry.io/5226277
+
+
+ 268435456
+ true
+
+
+
+
+ users.xml
+
+
+
+ /var/lib/clickhouse/access/
+
+
+ default
+
+
+ /clickhouse/task_queue/ddl
+
+
+
+ signoz:
+ image: signoz/signoz:v0.97.1
+ depends_on:
+ clickhouse:
+ condition: service_healthy
+ schema-migrator-sync:
+ condition: service_completed_successfully
+ logging:
+ options:
+ max-size: 50m
+ max-file: "3"
+ command:
+ - --config=/root/config/prometheus.yml
+ volumes:
+ - type: bind
+ source: ./prometheus.yml
+ target: /root/config/prometheus.yml
+ content: |
+ # my global config
+ global:
+ scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
+ evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
+ # scrape_timeout is set to the global default (10s).
+
+ # Alertmanager configuration
+ alerting:
+ alertmanagers:
+ - static_configs:
+ - targets:
+ - alertmanager:9093
+
+ # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
+ rule_files: []
+ # - "first_rules.yml"
+ # - "second_rules.yml"
+ # - 'alerts.yml'
+
+ # A scrape configuration containing exactly one endpoint to scrape:
+ # Here it's Prometheus itself.
+ scrape_configs: []
+
+ remote_read:
+ - url: tcp://clickhouse:9000/signoz_metrics
+ - type: volume
+ source: sqlite
+ target: /var/lib/signoz/
+ environment:
+ - SERVICE_URL_SIGNOZ_8080
+ - SIGNOZ_JWT_SECRET=${SERVICE_REALBASE64_JWTSECRET}
+ - 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
+ - DEPLOYMENT_TYPE=docker-standalone-amd
+ - SIGNOZ_STATSREPORTER_ENABLED=${SIGNOZ_STATSREPORTER_ENABLED:-true}
+ - SIGNOZ_EMAILING_ENABLED=${SIGNOZ_EMAILING_ENABLED:-false}
+ - SIGNOZ_EMAILING_SMTP_ADDRESS=${SIGNOZ_EMAILING_SMTP_ADDRESS}
+ - SIGNOZ_EMAILING_SMTP_FROM=${SIGNOZ_EMAILING_SMTP_FROM}
+ - SIGNOZ_EMAILING_SMTP_AUTH_USERNAME=${SIGNOZ_EMAILING_SMTP_AUTH_USERNAME}
+ - SIGNOZ_EMAILING_SMTP_AUTH_PASSWORD=${SIGNOZ_EMAILING_SMTP_AUTH_PASSWORD}
+ - SIGNOZ_ALERTMANAGER_PROVIDER=signoz
+ - SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__PASSWORD=${SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__PASSWORD}
+ - SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__USERNAME=${SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__AUTH__USERNAME}
+ - SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__FROM=${SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__FROM}
+ - SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__SMARTHOST=${SIGNOZ_ALERTMANAGER_SIGNOZ_GLOBAL_SMTP__SMARTHOST}
+ - DOT_METRICS_ENABELD=true
+ healthcheck:
+ test:
+ - CMD
+ - wget
+ - --spider
+ - -q
+ - localhost:8080/api/v1/health
+ interval: 30s
+ timeout: 5s
+ retries: 3
+
+ otel-collector:
+ image: signoz/signoz-otel-collector:v0.129.7
+ depends_on:
+ clickhouse:
+ condition: service_healthy
+ schema-migrator-sync:
+ condition: service_completed_successfully
+ signoz:
+ condition: service_healthy
+ 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:
+ - type: bind
+ source: ./otel-collector-config.yaml
+ target: /etc/otel-collector-config.yaml
+ content: |
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ prometheus:
+ config:
+ global:
+ scrape_interval: 60s
+ scrape_configs:
+ - job_name: otel-collector
+ static_configs:
+ - targets:
+ - localhost:8888
+ labels:
+ job_name: otel-collector
+ processors:
+ batch:
+ send_batch_size: 10000
+ send_batch_max_size: 11000
+ timeout: 10s
+ resourcedetection:
+ # Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
+ detectors: [env, system]
+ timeout: 2s
+ signozspanmetrics/delta:
+ metrics_exporter: signozclickhousemetrics
+ metrics_flush_interval: 60s
+ latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
+ dimensions_cache_size: 100000
+ aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
+ enable_exp_histogram: true
+ dimensions:
+ - name: service.namespace
+ default: default
+ - name: deployment.environment
+ default: default
+ # This is added to ensure the uniqueness of the timeseries
+ # Otherwise, identical timeseries produced by multiple replicas of
+ # collectors result in incorrect APM metrics
+ - name: signoz.collector.id
+ - name: service.version
+ - name: browser.platform
+ - name: browser.mobile
+ - name: k8s.cluster.name
+ - name: k8s.node.name
+ - name: k8s.namespace.name
+ - name: host.name
+ - name: host.type
+ - name: container.name
+ extensions:
+ health_check:
+ endpoint: 0.0.0.0:13133
+ pprof:
+ endpoint: 0.0.0.0:1777
+ exporters:
+ clickhousetraces:
+ datasource: tcp://clickhouse:9000/signoz_traces
+ low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
+ use_new_schema: true
+ signozclickhousemetrics:
+ dsn: tcp://clickhouse:9000/signoz_metrics
+ clickhouselogsexporter:
+ dsn: tcp://clickhouse:9000/signoz_logs
+ timeout: 10s
+ use_new_schema: true
+ service:
+ telemetry:
+ logs:
+ encoding: json
+ extensions:
+ - health_check
+ - pprof
+ pipelines:
+ traces:
+ receivers: [otlp]
+ processors: [signozspanmetrics/delta, batch]
+ exporters: [clickhousetraces]
+ metrics:
+ receivers: [otlp]
+ processors: [batch]
+ exporters: [signozclickhousemetrics]
+ metrics/prometheus:
+ receivers: [prometheus]
+ processors: [batch]
+ exporters: [signozclickhousemetrics]
+ logs:
+ receivers: [otlp]
+ processors: [batch]
+ exporters: [clickhouselogsexporter]
+ - type: bind
+ source: ./otel-collector-opamp-config.yaml
+ target: /etc/manager-config.yaml
+ content: |
+ server_endpoint: ws://signoz:4320/v1/opamp
+ environment:
+ - SERVICE_URL_OTELCOLLECTORHTTP_4318
+ - OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
+ - LOW_CARDINAL_EXCEPTION_GROUPING=false
+ healthcheck:
+ test: bash -c "exec 6<> /dev/tcp/localhost/13133"
+ interval: 30s
+ timeout: 5s
+ retries: 3
+
+ schema-migrator-sync:
+ image: signoz/signoz-schema-migrator:v0.129.7
+ command:
+ - sync
+ - --dsn=tcp://clickhouse:9000
+ - --up=
+ depends_on:
+ clickhouse:
+ condition: service_healthy
+ restart: on-failure
+ exclude_from_hc: true
+ logging:
+ options:
+ max-size: 50m
+ max-file: "3"
+
+ schema-migrator-async:
+ image: signoz/signoz-schema-migrator:v0.129.7
+ depends_on:
+ clickhouse:
+ condition: service_healthy
+ schema-migrator-sync:
+ condition: service_completed_successfully
+ restart: on-failure
+ exclude_from_hc: true
+ logging:
+ options:
+ max-size: 50m
+ max-file: "3"
+ command:
+ - async
+ - --dsn=tcp://clickhouse:9000
+ - --up=