Fix SigNoz OTel Collector configuration and disable OpAMP

Root Cause Analysis:
- OTel Collector was starting but OpAMP was overwriting config with "nop" receivers/exporters
- ClickHouse authentication was failing due to missing credentials in DSN strings
- Redis/PostgreSQL/RabbitMQ receivers had missing TLS certs causing startup failures

Changes:
1. Fixed ClickHouse Exporters:
   - Added admin credentials to clickhousetraces datasource
   - Added admin credentials to clickhouselogsexporter dsn
   - Now using: tcp://admin:27ff0399-0d3a-4bd8-919d-17c2181e6fb9@signoz-clickhouse:9000/

2. Disabled Unconfigured Receivers:
   - Commented out PostgreSQL receivers (no monitor users configured)
   - Commented out Redis receiver (TLS certificates not available)
   - Commented out RabbitMQ receiver (credentials not configured)
   - Updated metrics pipeline to use only OTLP receiver

3. OpAMP Disabled:
   - OpAMP was causing collector to use nop exporters/receivers
   - Cannot disable via Helm (extraArgs appends, doesn't replace)
   - Must apply kubectl patch after Helm install:
     kubectl patch deployment signoz-otel-collector --type=json -p='[{"op":"replace","path":"/spec/template/spec/containers/0/args","value":["--config=/conf/otel-collector-config.yaml","--feature-gates=-pkg.translator.prometheus.NormalizeName"]}]'

Results:
 OTel Collector successfully receiving traces (97+ spans)
 Services connecting without UNAVAILABLE errors
 No ClickHouse authentication failures
 All pipelines active (traces, metrics, logs)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Urtzi Alfaro
2026-01-09 11:51:03 +01:00
parent 43a3f35bd1
commit 1329bae784

View File

@@ -146,6 +146,10 @@ otelCollector:
repository: signoz/signoz-otel-collector repository: signoz/signoz-otel-collector
tag: v0.129.12 # Latest recommended version tag: v0.129.12 # Latest recommended version
# NOTE: OpAMP is disabled via kubectl patch on the deployment
# Cannot disable via Helm values as extraArgs appends instead of replaces
# Patch command: kubectl patch deployment signoz-otel-collector --type=json -p='[{"op":"replace","path":"/spec/template/spec/containers/0/args","value":["--config=/conf/otel-collector-config.yaml","--feature-gates=-pkg.translator.prometheus.NormalizeName"]}]'
# Service configuration - expose both gRPC and HTTP endpoints # Service configuration - expose both gRPC and HTTP endpoints
service: service:
type: ClusterIP type: ClusterIP
@@ -204,36 +208,37 @@ otelCollector:
- "*" - "*"
# PostgreSQL receivers for database metrics # PostgreSQL receivers for database metrics
# DISABLED: Monitor users not configured yet
# Collects metrics directly from PostgreSQL databases # Collects metrics directly from PostgreSQL databases
postgresql/auth: # postgresql/auth:
endpoint: auth-db-service.bakery-ia:5432 # endpoint: auth-db-service.bakery-ia:5432
username: ${POSTGRES_MONITOR_USER} # username: ${POSTGRES_MONITOR_USER}
password: ${POSTGRES_MONITOR_PASSWORD} # password: ${POSTGRES_MONITOR_PASSWORD}
databases: # databases:
- auth_db # - auth_db
collection_interval: 60s # collection_interval: 60s
tls: # tls:
insecure: false # insecure: false
postgresql/inventory: # postgresql/inventory:
endpoint: inventory-db-service.bakery-ia:5432 # endpoint: inventory-db-service.bakery-ia:5432
username: ${POSTGRES_MONITOR_USER} # username: ${POSTGRES_MONITOR_USER}
password: ${POSTGRES_MONITOR_PASSWORD} # password: ${POSTGRES_MONITOR_PASSWORD}
databases: # databases:
- inventory_db # - inventory_db
collection_interval: 60s # collection_interval: 60s
tls: # tls:
insecure: false # insecure: false
postgresql/orders: # postgresql/orders:
endpoint: orders-db-service.bakery-ia:5432 # endpoint: orders-db-service.bakery-ia:5432
username: ${POSTGRES_MONITOR_USER} # username: ${POSTGRES_MONITOR_USER}
password: ${POSTGRES_MONITOR_PASSWORD} # password: ${POSTGRES_MONITOR_PASSWORD}
databases: # databases:
- orders_db # - orders_db
collection_interval: 60s # collection_interval: 60s
tls: # tls:
insecure: false # insecure: false
# Add more PostgreSQL databases as needed # Add more PostgreSQL databases as needed
# postgresql/SERVICE: # postgresql/SERVICE:
@@ -241,22 +246,24 @@ otelCollector:
# ... # ...
# Redis receiver for cache metrics # Redis receiver for cache metrics
redis: # DISABLED: TLS certificates not configured yet
endpoint: redis-service.bakery-ia:6379 # redis:
password: ${REDIS_PASSWORD} # endpoint: redis-service.bakery-ia:6379
collection_interval: 60s # password: ${REDIS_PASSWORD}
tls: # collection_interval: 60s
insecure: false # tls:
cert_file: /etc/redis-tls/redis-cert.pem # insecure: false
key_file: /etc/redis-tls/redis-key.pem # cert_file: /etc/redis-tls/redis-cert.pem
ca_file: /etc/redis-tls/ca-cert.pem # key_file: /etc/redis-tls/redis-key.pem
# ca_file: /etc/redis-tls/ca-cert.pem
# RabbitMQ receiver via management API # RabbitMQ receiver via management API
rabbitmq: # DISABLED: RabbitMQ credentials not configured yet
endpoint: http://rabbitmq-service.bakery-ia:15672 # rabbitmq:
username: ${RABBITMQ_USER} # endpoint: http://rabbitmq-service.bakery-ia:15672
password: ${RABBITMQ_PASSWORD} # username: ${RABBITMQ_USER}
collection_interval: 60s # password: ${RABBITMQ_PASSWORD}
# collection_interval: 60s
processors: processors:
# Batch processor for better performance (optimized for high throughput) # Batch processor for better performance (optimized for high throughput)
@@ -299,7 +306,7 @@ otelCollector:
exporters: exporters:
# ClickHouse exporter for traces # ClickHouse exporter for traces
clickhousetraces: clickhousetraces:
datasource: tcp://signoz-clickhouse:9000/?database=signoz_traces datasource: tcp://admin:27ff0399-0d3a-4bd8-919d-17c2181e6fb9@signoz-clickhouse:9000/?database=signoz_traces
timeout: 10s timeout: 10s
retry_on_failure: retry_on_failure:
enabled: true enabled: true
@@ -326,7 +333,7 @@ otelCollector:
# ClickHouse exporter for logs # ClickHouse exporter for logs
clickhouselogsexporter: clickhouselogsexporter:
dsn: tcp://signoz-clickhouse:9000/?database=signoz_logs dsn: tcp://admin:27ff0399-0d3a-4bd8-919d-17c2181e6fb9@signoz-clickhouse:9000/?database=signoz_logs
timeout: 10s timeout: 10s
retry_on_failure: retry_on_failure:
enabled: true enabled: true
@@ -356,7 +363,7 @@ otelCollector:
# Metrics pipeline # Metrics pipeline
metrics: metrics:
receivers: [otlp, postgresql/auth, postgresql/inventory, postgresql/orders, redis, rabbitmq] receivers: [otlp] # Database/cache receivers disabled until credentials configured
processors: [memory_limiter, batch, resourcedetection] processors: [memory_limiter, batch, resourcedetection]
exporters: [signozclickhousemetrics] exporters: [signozclickhousemetrics]