otel-collector-config.yaml•1.93 kB
# OpenTelemetry Collector Configuration for MCP
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
# Prometheus scraping
prometheus:
config:
scrape_configs:
- job_name: "envoy"
scrape_interval: 10s
static_configs:
- targets: ["envoy:9901"]
- job_name: "mcp-api"
scrape_interval: 15s
static_configs:
- targets: ["mcp-api:8000"]
processors:
batch:
timeout: 10s
send_batch_size: 1024
# Add resource attributes
resource:
attributes:
- key: service.name
value: mcp-orchestrator
action: upsert
- key: deployment.environment
value: ${ENVIRONMENT:-production}
action: upsert
# Memory limiter to prevent OOM
memory_limiter:
check_interval: 1s
limit_mib: 512
exporters:
# Export to ClickHouse for storage
clickhouse:
endpoint: tcp://clickhouse:9000?database=mcp
ttl: 72h
traces_table_name: otel_traces
metrics_table_name: otel_metrics
logs_table_name: otel_logs
# Export to Prometheus
prometheus:
endpoint: "0.0.0.0:8888"
# Logging exporter for debugging
logging:
loglevel: info
# Optional: Export to Jaeger for tracing
# jaeger:
# endpoint: jaeger:14250
# tls:
# insecure: true
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter, batch, resource]
exporters: [clickhouse, logging]
metrics:
receivers: [otlp, prometheus]
processors: [memory_limiter, batch, resource]
exporters: [clickhouse, prometheus, logging]
logs:
receivers: [otlp]
processors: [memory_limiter, batch, resource]
exporters: [clickhouse, logging]
extensions: []
telemetry:
logs:
level: info
metrics:
level: detailed
address: 0.0.0.0:8888