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:

  • Configure Envoy to use the Prometheus exporter.
  • Configure the Collector to use the Envoy endpoint as a scrape target for the Prometheus receiver.
  • Enable the integration by adding it to a pipeline

Prerequisites

You’ve configured the Collector to export metric data to Cloud Observability.

Configure Envoy reporting

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.

Configure the Collector receiver

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.

Enable the Collector receiver

Once the Envoy receiver is configured, enable it by adding it to one or more pipelines as described in the Collector configuration documentation.

Validate metrics are reporting to Cloud Observability

You can validate that metrics are reporting to Cloud Observability on the Metrics details page in Settings.

  1. In Cloud Observability, click Settings > Metric details.

  2. Search for Envoy metric names. Search for metric

  3. If needed, click on the metric to edit the description and how the units are displayed in Cloud Observability.

Additional resources

For a more complete example that’s ready to run, see the Envoy integration in Cloud Observability OpenTelemetry Examples.

See also

Create and manage dashboards

Create alerts

Updated Dec 1, 2022