Hello,
I’m deploying Consul Helm chart 2.0.0 on Minikube and I’m trying to export Envoy sidecar and API Gateway metrics to an OpenTelemetry Collector using the built-in Telemetry Collector.
My setup:
-
Consul Helm chart: 2.0.0
-
Minikube
-
OpenTelemetry Collector receiving OTLP HTTP on port 4318
-
Prometheus scraping metrics exposed by the OTel Collector
Consul configuration:
global:
name: consul
datacenter: minikube
tls:
enabled: true
enableAutoEncrypt: true
acls:
manageSystemACLs: true
gossipEncryption:
autoGenerate: true
metrics:
enabled: true
enableAgentMetrics: true
enableTelemetryCollector: true
server:
replicas: 1
client:
enabled: true
connectInject:
enabled: true
cni:
enabled: true
telemetryCollector:
enabled: true
customExporterConfig: |
{"http_collector_endpoint": "http://otel-collector-opentelemetry-collector.observability:4318"}
ui:
enabled: true
service:
type: ClusterIP
metrics:
enabled: true
baseURL: "http://prometheus-kube-prometheus-prometheus.observability:9090"
dashboardURLTemplates:
service: "http://localhost:3000/d/heHhNSFf6Na8vIZWRs8H/envoy-global?orgId=1&var-service={{Service.Name}}&var-namespace={{Service.Namespace}}&var-dc={{Datacenter}}"
OTel Collector configuration:
mode: deployment
image:
repository: otel/opentelemetry-collector-contrib
ports:
prometheus:
enabled: true
containerPort: 8889
servicePort: 8889
protocol: TCP
serviceMonitor:
enabled: true
metricsEndpoints:
- port: prometheus
path: /metrics
interval: 15s
config:
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4318
exporters:
prometheus:
endpoint: 0.0.0.0:8889
enable_open_metrics: true
otlphttp/jaeger:
endpoint: http://jaeger:4318
tls:
insecure: true
processors:
batch: { }
service:
pipelines:
traces:
receivers: [ otlp ]
processors: [ batch ]
exporters: [ otlphttp/jaeger ]
metrics:
receivers: [ otlp ]
processors: [ batch ]
exporters: [ prometheus ]
What I observe:
-
Application metrics sent directly to the OTel Collector are visible in Prometheus.
-
Telemetry Collector starts successfully and reports no export errors.
-
Telemetry Collector logs show metrics being received.
-
I can manually access Envoy metrics on port 20200 from injected sidecars.
-
However, no Envoy or API Gateway metrics appear in Prometheus through the Telemetry Collector pipeline.
Has anyone successfully used Consul Telemetry Collector in Consul 2.0.0 to export Envoy/API Gateway metrics to an OpenTelemetry Collector?
Are there any additional settings required to enable Envoy metric collection, or is this a known limitation/issue in Consul 2.0.0?
Thanks.