> ## Documentation Index
> Fetch the complete documentation index at: https://docs-xcor.paloaltonetworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Envoy

> Envoy listener, cluster, and traffic metrics.

The Envoy integration requires CXDOT Collector 1.4.0 or greater.

[Envoy](https://www.envoyproxy.io/) is an open source edge and service proxy for
cloud-native applications. Use the Envoy CXDOT Collector integration with the CXDOT
collector to collect listener, cluster, and traffic metrics from Envoy proxies running
in your environment.

## Supported telemetry types

The Envoy CXDOT Collector integration supports these telemetry types:

| Type | Supported |
| - | - |
| Logs | No |
| Metrics | Yes |
| Traces | No |
| Events | No |

## Prerequisites

The Envoy CXDOT Collector integration has the following prerequisites:

* Configure Envoy to expose metrics at `/stats/prometheus`.
* Make the Envoy metrics endpoint reachable from the CXDOT collector.

## Configure

To configure the Envoy CXDOT Collector integration, follow these steps:

1. Choose how the CXDOT collector finds your Envoy proxies:

   * For Envoy pods that listen on port `8001` or `9901`, add the
     `app.kubernetes.io/name: envoy` label to the pod template.
   * For Envoy pods or Services that use another port or metrics path, add
     autodiscovery annotations that provide the complete metrics endpoint URL.

   For more information, see
   [autodiscovery](https://docs-xcor.paloaltonetworks.com/ingest/xcor/collector/discover/kubernetes).

2. Optional: Configure static targets to collect metrics from Envoy proxies that
   autodiscovery doesn't reach. For example, add the following to the `values.yaml` for
   your Helm chart:

   ```yaml theme={null}
   config:
     integrations:
       envoy:
         endpoints:
           - endpoint: 10.0.0.5:8001
   ```

   When you configure static targets, this integration instance collects from exactly
   those targets instead of discovered targets.

3. Optional: Configure a second integration instance to collect from both discovered
   pods and static targets. For example, add the following to the `values.yaml` for
   your Helm chart:

   ```yaml theme={null}
   config:
     integrations:
       envoy: {}
       envoy/edge:
         endpoints:
           - endpoint: 10.0.0.5:8001
   ```

   The `envoy/edge` key defines a named instance for the static targets. The bare
   `envoy` key continues to use autodiscovery.

### Validate

To validate the Envoy CXDOT Collector integration, follow these steps:

1. In the Live Telemetry Analyzer, filter for `cxdot.integration.name=envoy`. Confirm
   that the Envoy metric names appear.

2. In Metrics Explorer, run the following query:

   ```text theme={null}
   {"cxdot.integration.target.health", "cxdot.integration.name"="envoy"}
   ```

   Confirm that the query returns one time series for each Envoy proxy you expect,
   with the scraped URL in the `cxdot.integration.target` attribute, and that each
   reachable proxy reports `1`.

3. In Metrics Explorer, run the following query:

   ```text theme={null}
   count by ("url.full") ({"envoy.server.live"})
   ```

   Confirm that every Envoy proxy you expect appears in the results.

## Configuration reference

Configure one Envoy integration instance with the following settings. In Helm values, place
these settings under `config.integrations.envoy`. In a Collector configuration file, place them
under `cxdot.integrations.envoy`.

### Optional settings

* **`enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this Envoy integration instance. If true, the Collector collects metrics
  from Envoy targets. If false, it doesn't run this integration instance.

* **`endpoints`**
  Type: `array of object`. Optional. Default: `[]`.
  Static Envoy targets as `host:port` values or complete HTTP or HTTPS URLs. For `host:port`,
  the Collector requests `/stats/prometheus` over HTTP. A nonempty list disables automatic
  discovery for this integration instance, and the Collector scrapes only the listed targets.

* **`endpoints[].endpoint`**
  Type: `string`. Required.
  Envoy target as `host:port` or a complete HTTP or HTTPS URL. For `host:port`, the Collector
  requests `/stats/prometheus` over HTTP.

* **`collection_interval`**
  Type: `duration`. Optional. Default: `10s`.
  How often the Collector requests metrics from each Envoy target.

* **`timeout`**
  Type: `duration`. Optional. Default: `10s`.
  Maximum time the Collector waits for an Envoy metrics request to complete.

* **`metrics`**
  Type: `object`. Optional.
  Settings for collecting and naming Envoy metrics.

* **`metrics.include`**
  Type: `array of string`. Optional. Default: `[]`.
  Metrics to collect, in addition to the default set. Each entry is a regular expression matched
  against the metric name.

* **`metrics.exclude`**
  Type: `array of string`. Optional. Default: `[]`.
  Metrics to drop, matched the same way as `include`. Applied afterwards, so it subtracts from
  what `include` chose.

* **`metrics.rename`**
  Type: `object`. Optional. Default: `{}`.
  Renames metrics, as `{old: new}`. User-configured renames take precedence over default
  renames.

* **`labels`**
  Type: `object`. Optional.
  Which samples to drop, by label value.

* **`labels.sample_drop_rules`**
  Type: `object`. Optional. Default: `{}`.
  Drops a whole sample when one of its labels matches. Each key is a label name. The value is a
  list of regular expressions matched against the label's value. To drop every sample the label
  appears on with a non-empty value, use `".+"`.


## Related topics

- [Setting monitor muting rules](/investigate/alerts/muting-rules.md)
- [Drop rules](/control/shaping/shape-metrics/rules/drop-rules.md)
- [CXDOT Collector integrations](/ingest/xcor/integrations/collector.md)
- [CreateDerivedLabel](/tooling/api-info/definition/operations/CreateDerivedLabel.md)
- [ListDerivedLabels](/tooling/api-info/definition/operations/ListDerivedLabels.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.