Skip to content

Commit

Permalink
Merge pull request #16441 from sjyothi54/NR-231688
Browse files Browse the repository at this point in the history
Envoy integration documentation
  • Loading branch information
bradleycamacho committed Mar 25, 2024
2 parents 158949e + e70006e commit 117ff5f
Show file tree
Hide file tree
Showing 3 changed files with 154 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
---
title: Envoy integration
tags:
- New Relic integrations
- Envoy integration
metaDescription: Use New Relic infrastructure agent to get a dashboard with metrics from your Envoy.
freshnessValidatedDate: 2024-03-21
---
import envoyDashboard from 'images/infrastructure_screenshot_full-envoy-dashboard.webp'

Gain deep insights into Envoy's operations with seamless data integration into New Relic. Monitor key metrics to ensure the optimal performance of your Envoy backend clusters, listening sockets, HTTP routing, and cryptographic material.

<img
title="Envoy dashboard"
alt="Envoy dashboard"
src={envoyDashboard}
/>
<figcaption>
After setting up our Envoy integration, we give you a dashboard for your Envoy metrics.
</figcaption>


<Steps>
<Step>
## Install the infrastructure agent [#infra-install]

To use the Envoy integration, you need to also [install the infrastructure agent](/docs/infrastructure/install-infrastructure-agent/get-started/install-infrastructure-agent-new-relic/) on the same host. The infrastructure agent monitors the host itself, while the integration you'll install in the next step extends your monitoring with Envoy-specific data.
</Step>
<Step>

## Enable the Envoy integration with nri-prometheus

To set up the Envoy integration, follow these steps:

1. Create a file named `nri-prometheus-config.yml` in the integrations directory:
```shell
touch /etc/newrelic-infra/integrations.d/nri-prometheus-config.yml
```
2. Add the following snippet to your `nri-prometheus-config.yml` file to enable the agent to capture Envoy data:
```yml
integrations:
- name: nri-prometheus
config:
# When standalone is set to false nri-prometheus requires an infrastructure agent to work and send data. Defaults to true
standalone: false

# When running with infrastructure agent emitters will have to include infra-sdk
emitters: infra-sdk

# The name of your cluster. It's important to match other New Relic products to relate the data.
cluster_name: "YOUR_DESIRED_CLUSTER_NAME"

targets:
- description: Envoy metrics list
urls: ["http://<ip-address>:9901/stats/prometheus"]

# tls_config:
# ca_file_path: "/etc/etcd/etcd-client-ca.crt"
# cert_file_path: "/etc/etcd/etcd-client.crt"
# key_file_path: "/etc/etcd/etcd-client.key"

# Whether the integration should run in verbose mode or not. Defaults to false
verbose: false

# Whether the integration should run in audit mode or not. Defaults to false.
# Audit mode logs the uncompressed data sent to New Relic. Use this to log all data sent.
# It does not include verbose mode. This can lead to a high log volume, use with care
audit: false

# The HTTP client timeout when fetching data from endpoints. Defaults to 30s.
# scrape_timeout: "30s"

# Length in time to distribute the scraping from the endpoints
scrape_duration: "5s"

# Number of worker threads used for scraping targets.
# For large clusters with many (&gt;400) endpoints, slowly increase until scrape
# time falls between the desired `scrape_duration`.
# Increasing this value too much will result in huge memory consumption if too
# many metrics are being scraped.
# Default: 4
# worker_threads: 4

# Whether the integration should skip TLS verification or not. Defaults to false
insecure_skip_verify: true
timeout: 10s
```
</Step>
<Step>

## Forward Envoy logs

Follow these steps to forward Envoy logs to New Relic:

1. Create a log file named `logging.yml` in the following path:

```shell
cd /etc/newrelic-infra/logging.d
```
2. Add the following script to the `logging.yml` file. Replace `file` with your Envoy log filepath if needed:

```yml
logs:
- name: envoy.log
file: /tmp/envoy.log
attributes:
logtype: envoy_logs
- name: envoy-admin.log
file: /tmp/admin_access.log
attributes:
logtype: envoy_admin_logs
```

</Step>
<Step>
## Restart the New Relic infrastructure agent

Restart your infrastructure agent.

```shell
sudo systemctl restart newrelic-infra.service
```

In a couple of minutes, your application will send metrics to [one.newrelic.com](https://one.newrelic.com).
</Step>
<Step>
## Find your data

You can choose our pre-built dashboard template named `Envoy` to monitor your Envoy application metrics. Follow these steps to use our pre-built dashboard template:

1. From [one.newrelic.com](https://one.newrelic.com), go to the <DoNotTranslate>**+ Add data**</DoNotTranslate> page
2. Click on <DoNotTranslate>**Dashboards**</DoNotTranslate>
3. In the search bar, type `Envoy`
4. The Envoy dashboard should appear. Click on it to install it

Your Envoy dashboard is considered a custom dashboard and can be found in the <DoNotTranslate>**Dashboards**</DoNotTranslate> UI. For docs on using and editing dashboards, see [our dashboard docs](/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards).

Here is a NRQL query to check the Envoy downstream total connections:

```sql
SELECT latest(envoy_http_downstream_cx_total) as 'Downstream total connections' from Metric
```
</Step>
</Steps>

## What's next?

To learn more about building NRQL queries and generating dashboards, check out these docs:

* [Introduction to the query builder](/docs/query-your-data/explore-query-data/query-builder/introduction-query-builder) to create basic and advanced queries.
* [Introduction to dashboards](/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards) to customize your dashboard and carry out different actions.
* [Manage your dashboard](/docs/query-your-data/explore-query-data/dashboards/manage-your-dashboard) to adjust your dashboards display mode, or to add more content to your dashboard.
Binary file not shown.
2 changes: 2 additions & 0 deletions src/nav/infrastructure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ pages:
path: /docs/infrastructure/host-integrations/host-integrations-list/collectd-integration
- title: Elasticsearch integration
path: /docs/infrastructure/host-integrations/host-integrations-list/elasticsearch/elasticsearch-integration
- title: Envoy integration
path: /docs/infrastructure/host-integrations/host-integrations-list/envoy-integration
- title: F5 integration
path: /docs/infrastructure/host-integrations/host-integrations-list/f5-monitoring-integration
- title: HAProxy integration
Expand Down

0 comments on commit 117ff5f

Please sign in to comment.