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:
@@ -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]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user