Files
NageshbansalandGitHub 272a49f57d fix(clickhouse): templated per-node macros and single-host client DSN (#120)
#### Fixes

- Render templated per-node macros (`shard`, `replica`) in ClickHouse
`config.yaml` so multi-shard/multi-replica clusters get unique Keeper
paths instead of collisions
- Use the first TelemetryStore TCP address (not comma-joined) for
`SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN` and ingester ClickHouse DSNs

 #### Refactors
- `telemetrystore` molding now emits `config-{shard}-{replica}.yaml` per
node (mirrors `telemetrykeeper` per-replica pattern)

Related: https://github.com/SigNoz/platform-pod/issues/1332
2026-05-20 17:48:14 +05:30

826 lines
27 KiB
Plaintext

apiVersion: v1alpha1
kind: Installation
metadata:
name: signoz
spec:
deployment:
flavor: kustomize
mode: kubernetes
ingester:
spec:
cluster:
replicas: 1
config:
data:
ingester.yaml: |
connectors:
signozmeter:
metrics_flush_interval: 1h
dimensions:
- name: service.name
- name: deployment.environment
- name: host.name
receivers:
otlp:
protocols:
grpc:
endpoint: "0.0.0.0:4317"
http:
endpoint: "0.0.0.0:4318"
processors:
batch:
send_batch_size: 50000
send_batch_max_size: 55000
timeout: 5s
batch/meter:
send_batch_size: 20000
send_batch_max_size: 25000
timeout: 5s
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
- name: signoz.collector.id
- name: service.version
exporters:
clickhousetraces:
datasource: tcp://signoz-clickhouse:9000/signoz_traces
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
use_new_schema: true
timeout: 45s
sending_queue:
enabled: false
signozclickhousemetrics:
dsn: tcp://signoz-clickhouse:9000/signoz_metrics
timeout: 45s
sending_queue:
enabled: false
clickhouselogsexporter:
dsn: tcp://signoz-clickhouse:9000/signoz_logs
use_new_schema: true
timeout: 45s
sending_queue:
enabled: false
signozclickhousemeter:
dsn: tcp://signoz-clickhouse:9000/signoz_meter
timeout: 45s
sending_queue:
enabled: false
metadataexporter:
enabled: true
dsn: tcp://signoz-clickhouse:9000/signoz_metadata
timeout: 45s
cache:
provider: in_memory
extensions:
signoz_health_check:
endpoint: "0.0.0.0:13133"
pprof:
endpoint: "0.0.0.0:1777"
service:
telemetry:
logs:
encoding: json
extensions:
- signoz_health_check
- pprof
pipelines:
traces:
receivers:
- otlp
processors:
- signozspanmetrics/delta
- batch
exporters:
- clickhousetraces
- signozmeter
- metadataexporter
metrics:
receivers:
- otlp
processors:
- batch
exporters:
- signozclickhousemetrics
- signozmeter
- metadataexporter
logs:
receivers:
- otlp
processors:
- batch
exporters:
- clickhouselogsexporter
- signozmeter
- metadataexporter
metrics/meter:
receivers:
- signozmeter
processors:
- batch/meter
exporters:
- signozclickhousemeter
opamp.yaml: |
server_endpoint: ws://signoz-signoz:4320/v1/opamp
enabled: true
env:
SIGNOZ_OTEL_COLLECTOR_TIMEOUT: 10m
image: signoz/signoz-otel-collector:latest
version: latest
status:
addresses:
otlp: null
config:
data:
ingester.yaml: |
connectors:
signozmeter:
metrics_flush_interval: 1h
dimensions:
- name: service.name
- name: deployment.environment
- name: host.name
receivers:
otlp:
protocols:
grpc:
endpoint: "0.0.0.0:4317"
http:
endpoint: "0.0.0.0:4318"
processors:
batch:
send_batch_size: 50000
send_batch_max_size: 55000
timeout: 5s
batch/meter:
send_batch_size: 20000
send_batch_max_size: 25000
timeout: 5s
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
- name: signoz.collector.id
- name: service.version
exporters:
clickhousetraces:
datasource: tcp://signoz-clickhouse:9000/signoz_traces
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
use_new_schema: true
timeout: 45s
sending_queue:
enabled: false
signozclickhousemetrics:
dsn: tcp://signoz-clickhouse:9000/signoz_metrics
timeout: 45s
sending_queue:
enabled: false
clickhouselogsexporter:
dsn: tcp://signoz-clickhouse:9000/signoz_logs
use_new_schema: true
timeout: 45s
sending_queue:
enabled: false
signozclickhousemeter:
dsn: tcp://signoz-clickhouse:9000/signoz_meter
timeout: 45s
sending_queue:
enabled: false
metadataexporter:
enabled: true
dsn: tcp://signoz-clickhouse:9000/signoz_metadata
timeout: 45s
cache:
provider: in_memory
extensions:
signoz_health_check:
endpoint: "0.0.0.0:13133"
pprof:
endpoint: "0.0.0.0:1777"
service:
telemetry:
logs:
encoding: json
extensions:
- signoz_health_check
- pprof
pipelines:
traces:
receivers:
- otlp
processors:
- signozspanmetrics/delta
- batch
exporters:
- clickhousetraces
- signozmeter
- metadataexporter
metrics:
receivers:
- otlp
processors:
- batch
exporters:
- signozclickhousemetrics
- signozmeter
- metadataexporter
logs:
receivers:
- otlp
processors:
- batch
exporters:
- clickhouselogsexporter
- signozmeter
- metadataexporter
metrics/meter:
receivers:
- signozmeter
processors:
- batch/meter
exporters:
- signozclickhousemeter
opamp.yaml: |
server_endpoint: ws://signoz-signoz:4320/v1/opamp
env:
SIGNOZ_OTEL_COLLECTOR_TIMEOUT: 10m
metastore:
kind: postgres
spec:
cluster:
replicas: 1
config: {}
enabled: true
env:
POSTGRES_DB: signoz
POSTGRES_PASSWORD: signoz
POSTGRES_USER: signoz
image: postgres:16
version: "16"
status:
addresses:
dsn:
- postgres://signoz-metastore:5432
config: {}
env:
POSTGRES_DB: signoz
POSTGRES_PASSWORD: signoz
POSTGRES_USER: signoz
signoz:
spec:
cluster:
replicas: 1
config: {}
enabled: true
env:
SIGNOZ_SQLSTORE_POSTGRES_DSN: postgres://signoz:signoz@signoz-metastore:5432/signoz?sslmode=disable
SIGNOZ_SQLSTORE_PROVIDER: postgres
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN: tcp://signoz-clickhouse:9000
SIGNOZ_TELEMETRYSTORE_PROVIDER: clickhouse
image: signoz/signoz:latest
version: latest
status:
addresses:
apiserver: null
opamp:
- ws://signoz-signoz:4320
config: {}
env:
SIGNOZ_SQLSTORE_POSTGRES_DSN: postgres://signoz:signoz@signoz-metastore:5432/signoz?sslmode=disable
SIGNOZ_SQLSTORE_PROVIDER: postgres
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN: tcp://signoz-clickhouse:9000
SIGNOZ_TELEMETRYSTORE_PROVIDER: clickhouse
telemetrykeeper:
kind: clickhousekeeper
spec:
cluster:
replicas: 1
config:
data:
keeper-0.yaml: |
listen_host: 0.0.0.0
logger:
level: information
console: true
keeper_server:
four_letter_word_white_list: "*"
coordination_settings:
operation_timeout_ms: 10000
raft_logs_level: warning
session_timeout_ms: 30000
force_sync: false
snapshot_distance: 100000
snapshots_to_keep: 3
log_storage_path: /var/lib/clickhouse/coordination/log
raft_configuration:
server:
- hostname: signoz-clickhouse-keeper-0
port: 9234
id: 0
server_id: 0
snapshot_storage_path: /var/lib/clickhouse/coordination/snapshots
tcp_port: 9181
enabled: true
image: clickhouse/clickhouse-keeper:25.5.6
version: 25.5.6
status:
addresses:
client:
- tcp://signoz-clickhouse-keeper-0:9181
raft:
- tcp://signoz-clickhouse-keeper-0:9234
config:
data:
keeper-0.yaml: |
listen_host: 0.0.0.0
logger:
level: information
console: true
keeper_server:
four_letter_word_white_list: "*"
coordination_settings:
operation_timeout_ms: 10000
raft_logs_level: warning
session_timeout_ms: 30000
force_sync: false
snapshot_distance: 100000
snapshots_to_keep: 3
log_storage_path: /var/lib/clickhouse/coordination/log
raft_configuration:
server:
- hostname: signoz-clickhouse-keeper-0
port: 9234
id: 0
server_id: 0
snapshot_storage_path: /var/lib/clickhouse/coordination/snapshots
tcp_port: 9181
telemetrystore:
kind: clickhouse
spec:
cluster:
replicas: 0
shards: 1
config:
data:
config-0-0.yaml: |
async_load_databases: false
asynchronous_metric_log:
ttl: event_date + INTERVAL 1 DAY DELETE
dictionaries_config: '*_dictionary.xml'
display_name: cluster
distributed_ddl:
path: /clickhouse/task_queue/ddl
error_log:
ttl: event_date + INTERVAL 7 DAY DELETE
format_schema_path: /etc/clickhouse-server/config.d/
http_port: 8123
interserver_http_port: 9009
latency_log:
ttl: event_date + INTERVAL 3 DAY DELETE
listen_host: 0.0.0.0
logger:
console: 1
count: 10
formatting:
names:
date_time: date_time
level: level
logger_name: logger_name
message: message
query_id: query_id
source_file: source_file
source_line: source_line
thread_id: thread_id
thread_name: thread_name
type: json
level: information
size: 1000M
macros:
replica: "00"
shard: "00"
merge_tree:
storage_policy: data
metric_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 1 DAY DELETE
part_log:
ttl: event_date + INTERVAL 1 DAY DELETE
path: /var/lib/clickhouse/
processors_profile_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 1 DAY DELETE
profiles:
admin:
max_threads: 16
query_plan_max_limit_for_lazy_materialization: "0"
secondary_indices_enable_bulk_filtering: "0"
default:
allow_experimental_window_functions: "1"
allow_nondeterministic_mutations: "1"
allow_simdjson: 0
load_balancing: random
log_queries: 1
max_threads: 16
query_plan_max_limit_for_lazy_materialization: "0"
secondary_indices_enable_bulk_filtering: "0"
prometheus:
endpoint: /metrics
port: 9363
query_log:
flush_interval_milliseconds: 30000
partition_by: toYYYYMM(event_date)
ttl: event_date + INTERVAL 1 DAY DELETE
query_metric_log:
ttl: event_date + INTERVAL 3 DAY DELETE
query_thread_log:
ttl: event_date + INTERVAL 1 DAY DELETE
query_views_log:
ttl: event_date + INTERVAL 1 DAY DELETE
quotas:
default:
interval:
duration: 3600
errors: 0
execution_time: 0
queries: 0
read_rows: 0
result_rows: 0
remote_servers:
cluster:
shard:
- replica:
- host: signoz-clickhouse
port: 9000
send_crash_reports:
enabled: false
session_log:
ttl: event_date + INTERVAL 1 DAY DELETE
storage_configuration:
disks:
data0:
keep_free_space_bytes: 10485760
path: /mnt/data-0/
default: {}
policies:
data:
volumes:
data0:
disk: data0
default:
volumes:
default:
disk: default
tcp_port: 9000
text_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 3 DAY DELETE
tmp_path: /var/lib/clickhouse/tmp/
trace_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 1 DAY DELETE
user_defined_executable_functions_config: /etc/clickhouse-server/functions/custom-functions.xml
user_directories:
users_xml:
path: users.xml
user_files_path: /var/lib/clickhouse/user_files/
user_scripts_path: /var/lib/clickhouse/user_scripts/
users:
admin:
networks:
ip:
- 10.0.0.0/8
- 100.64.0.0/10
- 172.16.0.0/12
- 192.0.0.0/24
- 198.18.0.0/15
- 192.168.0.0/16
password: 27ff0399-0d3a-4bd8-919d-17c2181e6fb9
profile: default
quota: default
default:
access_management: 1
named_collection_control: 1
networks:
ip: ::/0
password: ""
profile: default
quota: default
show_named_collection: 1
show_named_collection_secrets: 1
zookeeper:
node:
- host: signoz-clickhouse-keeper-0
port: 9181
zookeeper_log:
ttl: event_date + INTERVAL 1 DAY DELETE
functions.yaml: |
functions:
argument:
- name: buckets
type: Array(Float64)
- name: counts
type: Array(Float64)
- name: quantile
type: Array(Float64)
command: ./histogramQuantile
format: CSV
name: histogramQuantile
return_type: Float64
type: executable
enabled: true
image: clickhouse/clickhouse-server:25.5.6
version: 25.5.6
status:
addresses:
tcp:
- tcp://signoz-clickhouse:9000
config:
data:
config-0-0.yaml: |
async_load_databases: false
asynchronous_metric_log:
ttl: event_date + INTERVAL 1 DAY DELETE
dictionaries_config: '*_dictionary.xml'
display_name: cluster
distributed_ddl:
path: /clickhouse/task_queue/ddl
error_log:
ttl: event_date + INTERVAL 7 DAY DELETE
format_schema_path: /etc/clickhouse-server/config.d/
http_port: 8123
interserver_http_port: 9009
latency_log:
ttl: event_date + INTERVAL 3 DAY DELETE
listen_host: 0.0.0.0
logger:
console: 1
count: 10
formatting:
names:
date_time: date_time
level: level
logger_name: logger_name
message: message
query_id: query_id
source_file: source_file
source_line: source_line
thread_id: thread_id
thread_name: thread_name
type: json
level: information
size: 1000M
macros:
replica: "00"
shard: "00"
merge_tree:
storage_policy: data
metric_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 1 DAY DELETE
part_log:
ttl: event_date + INTERVAL 1 DAY DELETE
path: /var/lib/clickhouse/
processors_profile_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 1 DAY DELETE
profiles:
admin:
max_threads: 16
query_plan_max_limit_for_lazy_materialization: "0"
secondary_indices_enable_bulk_filtering: "0"
default:
allow_experimental_window_functions: "1"
allow_nondeterministic_mutations: "1"
allow_simdjson: 0
load_balancing: random
log_queries: 1
max_threads: 16
query_plan_max_limit_for_lazy_materialization: "0"
secondary_indices_enable_bulk_filtering: "0"
prometheus:
endpoint: /metrics
port: 9363
query_log:
flush_interval_milliseconds: 30000
partition_by: toYYYYMM(event_date)
ttl: event_date + INTERVAL 1 DAY DELETE
query_metric_log:
ttl: event_date + INTERVAL 3 DAY DELETE
query_thread_log:
ttl: event_date + INTERVAL 1 DAY DELETE
query_views_log:
ttl: event_date + INTERVAL 1 DAY DELETE
quotas:
default:
interval:
duration: 3600
errors: 0
execution_time: 0
queries: 0
read_rows: 0
result_rows: 0
remote_servers:
cluster:
shard:
- replica:
- host: signoz-clickhouse
port: 9000
send_crash_reports:
enabled: false
session_log:
ttl: event_date + INTERVAL 1 DAY DELETE
storage_configuration:
disks:
data0:
keep_free_space_bytes: 10485760
path: /mnt/data-0/
default: {}
policies:
data:
volumes:
data0:
disk: data0
default:
volumes:
default:
disk: default
tcp_port: 9000
text_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 3 DAY DELETE
tmp_path: /var/lib/clickhouse/tmp/
trace_log:
flush_interval_milliseconds: 30000
ttl: event_date + INTERVAL 1 DAY DELETE
user_defined_executable_functions_config: /etc/clickhouse-server/functions/custom-functions.xml
user_directories:
users_xml:
path: users.xml
user_files_path: /var/lib/clickhouse/user_files/
user_scripts_path: /var/lib/clickhouse/user_scripts/
users:
admin:
networks:
ip:
- 10.0.0.0/8
- 100.64.0.0/10
- 172.16.0.0/12
- 192.0.0.0/24
- 198.18.0.0/15
- 192.168.0.0/16
password: 27ff0399-0d3a-4bd8-919d-17c2181e6fb9
profile: default
quota: default
default:
access_management: 1
named_collection_control: 1
networks:
ip: ::/0
password: ""
profile: default
quota: default
show_named_collection: 1
show_named_collection_secrets: 1
zookeeper:
node:
- host: signoz-clickhouse-keeper-0
port: 9181
zookeeper_log:
ttl: event_date + INTERVAL 1 DAY DELETE
functions.yaml: |
functions:
argument:
- name: buckets
type: Array(Float64)
- name: counts
type: Array(Float64)
- name: quantile
type: Array(Float64)
command: ./histogramQuantile
format: CSV
name: histogramQuantile
return_type: Float64
type: executable
extras:
_overrides: |
async_load_databases: false
error_log:
ttl: event_date + INTERVAL 7 DAY DELETE
format_schema_path: /etc/clickhouse-server/config.d/
latency_log:
ttl: event_date + INTERVAL 3 DAY DELETE
logger:
formatting:
names:
date_time: date_time
level: level
logger_name: logger_name
message: message
query_id: query_id
source_file: source_file
source_line: source_line
thread_id: thread_id
thread_name: thread_name
type: json
merge_tree:
storage_policy: data
profiles:
admin:
max_threads: 16
query_plan_max_limit_for_lazy_materialization: "0"
secondary_indices_enable_bulk_filtering: "0"
default:
allow_experimental_window_functions: "1"
allow_nondeterministic_mutations: "1"
max_threads: 16
query_plan_max_limit_for_lazy_materialization: "0"
secondary_indices_enable_bulk_filtering: "0"
prometheus:
endpoint: /metrics
port: 9363
query_metric_log:
ttl: event_date + INTERVAL 3 DAY DELETE
send_crash_reports:
enabled: false
storage_configuration:
disks:
data0:
keep_free_space_bytes: 10485760
path: /mnt/data-0/
default: {}
policies:
data:
volumes:
data0:
disk: data0
default:
volumes:
default:
disk: default
text_log:
ttl: event_date + INTERVAL 3 DAY DELETE
user_defined_executable_functions_config: /etc/clickhouse-server/functions/custom-functions.xml
users:
admin:
networks:
ip:
- 10.0.0.0/8
- 100.64.0.0/10
- 172.16.0.0/12
- 192.0.0.0/24
- 198.18.0.0/15
- 192.168.0.0/16
password: 27ff0399-0d3a-4bd8-919d-17c2181e6fb9
profile: default
quota: default