The OpenTelemetry Collector, when configured with a Prometheus receiver, provides an integration with Envoy to ingest metrics. The Collector fetches metrics from the configured path in the Envoy configuration file and sends it to the Prometheus exporter. From there the metrics are received and processed by the Prometheus receiver and exported to Cloud Observability.
To complete the integration, you will:
You’ve configured the Collector to export metric data to Cloud Observability.
In your envoy.yaml
files, configure the Envoy to enable the administration interface and then to publish Prometheus metrics at the path /stats/prometheus
.
The details of your configuration will vary with the infrastructure that you run.
1
2
3
4
5
admin:
address:
socket_address:
address: 0.0.0.0
port_value: 8001
This example shows a simple setup of Envoy with a front proxy for multiple service metrics using a Docker compose files.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
front-envoy:
build:
context: .
dockerfile: Dockerfile-frontenvoy
ports:
- "8080:8080"
- "8443:8443"
- "8001:8001"
service1:
image: envoyproxy:tracing
volumes:
- ./service-envoy.yaml:/etc/service-envoy.yaml
environment:
- SERVICE_NAME=1
...
For more details about using Envoy with the Prometheus exporter, see the official Envoy documentation.
In the OpenTelemetry Collector configuration file, configure the Prometheus receiver to use the Envoy endpoint as a scrape target.
1
2
3
4
5
6
7
8
receivers:
prometheus:
config:
scrape_configs:
- job_name: otel-envoy-eg
metrics_path: /stats/prometheus
static_configs:
- targets: ["front-envoy:8001"]
The OpenTelemetry repo’s readme provides additional details about Prometheus receiver configuration.
Once the Envoy receiver is configured, enable it by adding it to one or more pipelines as described in the Collector configuration documentation.
You can validate that metrics are reporting to Cloud Observability on the Metrics details page in Settings.
In Cloud Observability, click Settings > Metric details.
Search for Envoy metric names.
If needed, click on the metric to edit the description and how the units are displayed in Cloud Observability.
For a more complete example that’s ready to run, see the Envoy integration in Cloud Observability OpenTelemetry Examples.
Updated Dec 1, 2022