Skip to content

Commit

Permalink
Merge branch 'NR-231688' of https://github.com/sjyothi54/docs-website
Browse files Browse the repository at this point in the history
…into NR-231688
  • Loading branch information
sjyothi54 committed Mar 22, 2024
2 parents 6fea2a5 + 9bc7050 commit eaa6409
Showing 1 changed file with 79 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ tags:
- New Relic integrations
- Envoy integration
metaDescription: Use New Relic infrastructure agent to get a dashboard with metrics from your Envoy.
freshnessValidatedDate: never
freshnessValidatedDate: 03/21/2024
---
import envoyDashboard from 'images/infrastructure_screenshot_full-envoy-dashboard.webp'

Our Envoy integration meticulously monitors the operational efficiency of your Envoy applications, ensuring optimal performance and fine-tuning of Envoy clusters.
Gain deep insights into Envoy performance with seamless data integration into New Relic. Monitor key metrics to ensure the optimal performance of your Envoy clusters. Create alerts to stay ahead of spikes, build custom dashboards for tailored views, and proactively optimize your database monitoring.

<img
title="Envoy dashboard"
Expand All @@ -20,80 +20,84 @@ After setting up our Envoy integration, we give you a dashboard for your Envoy m
</figcaption>


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

You can install the infrastructure agent two different ways:
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>

* Our [guided install](https://one.newrelic.com/nr1-core?state=4f81feab-35f7-e97e-9903-52510f8542bd) is a CLI tool that inspects your system and installs the infrastructure agent alongside the application monitoring agent that best works for your system. To learn more about how our guided install works, check out our [Guided install overview](/docs/infrastructure/host-integrations/installation/new-relic-guided-install-overview).
* If you'd rather install our infrastructure agent manually, you can follow a tutorial for manual installation for [Linux](/docs/infrastructure/install-infrastructure-agent/linux-installation/install-infrastructure-monitoring-agent-linux), [Windows](/docs/infrastructure/install-infrastructure-agent/windows-installation/install-infrastructure-monitoring-agent-windows/), or [macOS](/docs/infrastructure/install-infrastructure-agent/macos-installation/install-infrastructure-monitoring-agent-macos/).
## Enable the Envoy integration

## Configure NRI-Prometheus for Envoy [#configure]
To set up the Envoy integration, follow these steps:

1. Create a file named `nri-prometheus-config.yml` in this path:
```shell
cd /etc/newrelic-infra/integrations.d
```
2. Add a snippet to your `nri-prometheus-config.yml` file that enables the agent to capture Envoy data. Your configuration file should match our snippet in the [nri-prometheus](https://github.com/newrelic/nri-prometheus/blob/main/configs/nri-prometheus-config.yml.sample) repository:
1. Create a file named `nri-prometheus-config.yml` in the integrations directory:
```shell
touch /etc/newrelic-infra/integrations.d
```
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

```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
```
# When running with infrastructure agent emitters will have to include infra-sdk
emitters: infra-sdk

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

You can use our [log forwarding](/docs/logs/forward-logs/forward-your-logs-using-infrastructure-agent/) to forward Envoy logs to New Relic.
targets:
- description: Envoy metrics list
urls: ["http://<ip-address>:9901/stats/prometheus"]

On Linux machines, your log file named `logging.yml` should be present in this path:
# 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"

```shell
cd /etc/newrelic-infra/logging.d
```
After creating the log file, add the following script to the `logging.yml` file:
# 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:
Expand All @@ -106,8 +110,9 @@ logs:
attributes:
logtype: envoy_admin_logs
```
Replace `file` in the above file with your envoy log file path if your log_path is different from this.


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

Restart your infrastructure agent.
Expand All @@ -116,9 +121,9 @@ Restart your infrastructure agent.
sudo systemctl restart newrelic-infra.service
```

In a couple of minutes, your application will send metrics to [one.newrelic.com](https://one.newrelic.com).


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:
Expand All @@ -134,7 +139,9 @@ 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?

Expand Down

0 comments on commit eaa6409

Please sign in to comment.