-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
147 additions
and
0 deletions.
There are no files selected for viewing
145 changes: 145 additions & 0 deletions
145
...s/infrastructure/host-integrations/host-integrations-list/envoy-integration.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
--- | ||
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: never | ||
--- | ||
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. | ||
|
||
<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> | ||
|
||
|
||
## Install the infrastructure agent [#infra-install] | ||
|
||
You can install the infrastructure agent two different ways: | ||
|
||
* 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/). | ||
|
||
## Configure NRI-Prometheus for Envoy [#configure] | ||
|
||
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: | ||
|
||
```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 (>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 | ||
``` | ||
|
||
## Forward Envoy logs to New Relic | ||
|
||
You can use our [log forwarding](/docs/logs/forward-logs/forward-your-logs-using-infrastructure-agent/) to forward Envoy logs to New Relic. | ||
|
||
On Linux machines, your log file named `logging.yml` should be present in this path: | ||
|
||
```shell | ||
cd /etc/newrelic-infra/logging.d | ||
``` | ||
After creating the log file, add the following script to the `logging.yml` file: | ||
|
||
```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 | ||
``` | ||
Replace `file` in the above file with your envoy log file path if your log_path is different from this. | ||
|
||
## 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). | ||
|
||
|
||
## 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 | ||
``` | ||
|
||
## 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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters