SigNoz — Commands & Recipes¶
Runnable commands, configuration snippets, and troubleshooting recipes for SigNoz.
Installation¶
Helm (Kubernetes)¶
helm repo add signoz https://charts.signoz.io
helm repo update
kubectl create namespace signoz
helm install signoz signoz/signoz --namespace signoz
Docker Compose¶
git clone https://github.com/SigNoz/signoz.git
cd signoz/deploy/docker/clickhouse-setup
docker compose up -d
Operational Recipes¶
Check ClickHouse Disk Usage¶
kubectl exec -n signoz $(kubectl get pod -n signoz -l app=clickhouse -o name | head -1) -- \
clickhouse-client --query "
SELECT database, table,
formatReadableSize(sum(bytes_on_disk)) as size,
sum(rows) as rows
FROM system.parts
WHERE active
GROUP BY database, table
ORDER BY sum(bytes_on_disk) DESC"
Adjust Retention via ClickHouse TTL¶
# Set traces retention to 14 days
kubectl exec -n signoz $(kubectl get pod -n signoz -l app=clickhouse -o name | head -1) -- \
clickhouse-client --query "
ALTER TABLE signoz_traces.signoz_index_v2
MODIFY TTL timestamp + INTERVAL 14 DAY"
# Set logs retention to 30 days
kubectl exec -n signoz $(kubectl get pod -n signoz -l app=clickhouse -o name | head -1) -- \
clickhouse-client --query "
ALTER TABLE signoz_logs.logs
MODIFY TTL timestamp + INTERVAL 30 DAY"
View Collector Metrics¶
# Check OTel Collector internal metrics
kubectl port-forward -n signoz svc/signoz-otel-collector 8888:8888
curl http://localhost:8888/metrics | grep otelcol_receiver_accepted
Restart Components¶
# Restart query service
kubectl rollout restart deployment signoz-query-service -n signoz
# Restart frontend
kubectl rollout restart deployment signoz-frontend -n signoz
# Restart OTel Collector
kubectl rollout restart deployment signoz-otel-collector -n signoz
Check Logs¶
# Query service logs
kubectl logs -n signoz -l app=signoz-query-service --tail=100
# Collector logs
kubectl logs -n signoz -l app=signoz-otel-collector --tail=100
# Docker Compose
docker compose logs -f signoz-query-service
docker compose logs -f signoz-otel-collector
Upgrade¶
helm repo update signoz
helm upgrade signoz signoz/signoz -n signoz -f values.yaml
# Verify
kubectl get pods -n signoz
Useful ClickHouse Queries¶
-- Top services by trace count (last 1h)
SELECT serviceName, count() as cnt
FROM signoz_traces.signoz_index_v2
WHERE timestamp >= now() - INTERVAL 1 HOUR
GROUP BY serviceName
ORDER BY cnt DESC
LIMIT 20;
-- Error rate by service (last 1h)
SELECT serviceName,
countIf(statusCode = 2) / count() as error_rate
FROM signoz_traces.signoz_index_v2
WHERE timestamp >= now() - INTERVAL 1 HOUR
GROUP BY serviceName
HAVING count() > 100
ORDER BY error_rate DESC;
-- Log volume by severity (last 1h)
SELECT severityText, count() as cnt
FROM signoz_logs.logs
WHERE timestamp >= now() - INTERVAL 1 HOUR
GROUP BY severityText
ORDER BY cnt DESC;