github.com/netdata/go.d.plugin@v0.58.1/modules/envoy/integrations/envoy.md (about)

     1  <!--startmeta
     2  custom_edit_url: "https://github.com/netdata/go.d.plugin/edit/master/modules/envoy/README.md"
     3  meta_yaml: "https://github.com/netdata/go.d.plugin/edit/master/modules/envoy/metadata.yaml"
     4  sidebar_label: "Envoy"
     5  learn_status: "Published"
     6  learn_rel_path: "Data Collection/Web Servers and Web Proxies"
     7  most_popular: True
     8  message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
     9  endmeta-->
    10  
    11  # Envoy
    12  
    13  
    14  <img src="https://netdata.cloud/img/envoy.svg" width="150"/>
    15  
    16  
    17  Plugin: go.d.plugin
    18  Module: envoy
    19  
    20  <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
    21  
    22  ## Overview
    23  
    24  This collector monitors Envoy proxies. It collects server, cluster, and listener metrics.
    25  
    26  
    27  
    28  
    29  This collector is supported on all platforms.
    30  
    31  This collector supports collecting metrics from multiple instances of this integration, including remote instances.
    32  
    33  
    34  ### Default Behavior
    35  
    36  #### Auto-Detection
    37  
    38  By default, it detects Envoy instances running on localhost.
    39  
    40  
    41  #### Limits
    42  
    43  The default configuration for this integration does not impose any limits on data collection.
    44  
    45  #### Performance Impact
    46  
    47  The default configuration for this integration is not expected to impose a significant performance impact on the system.
    48  
    49  
    50  ## Metrics
    51  
    52  Metrics grouped by *scope*.
    53  
    54  The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
    55  
    56  
    57  
    58  ### Per Envoy instance
    59  
    60  Envoy exposes metrics in Prometheus format. All metric labels are added to charts.
    61  
    62  This scope has no labels.
    63  
    64  Metrics:
    65  
    66  | Metric | Dimensions | Unit |
    67  |:------|:----------|:----|
    68  | envoy.server_state | live, draining, pre_initializing, initializing | state |
    69  | envoy.server_connections_count | connections | connections |
    70  | envoy.server_parent_connections_count | connections | connections |
    71  | envoy.server_memory_allocated_size | allocated | bytes |
    72  | envoy.server_memory_heap_size | heap | bytes |
    73  | envoy.server_memory_physical_size | physical | bytes |
    74  | envoy.server_uptime | uptime | seconds |
    75  | envoy.cluster_manager_cluster_count | active, not_active | clusters |
    76  | envoy.cluster_manager_cluster_changes_rate | added, modified, removed | clusters/s |
    77  | envoy.cluster_manager_cluster_updates_rate | cluster | updates/s |
    78  | envoy.cluster_manager_cluster_updated_via_merge_rate | via_merge | updates/s |
    79  | envoy.cluster_manager_update_merge_cancelled_rate | merge_cancelled | updates/s |
    80  | envoy.cluster_manager_update_out_of_merge_window_rate | out_of_merge_window | updates/s |
    81  | envoy.cluster_membership_endpoints_count | healthy, degraded, excluded | endpoints |
    82  | envoy.cluster_membership_changes_rate | membership | changes/s |
    83  | envoy.cluster_membership_updates_rate | success, failure, empty, no_rebuild | updates/s |
    84  | envoy.cluster_upstream_cx_active_count | active | connections |
    85  | envoy.cluster_upstream_cx_rate | created | connections/s |
    86  | envoy.cluster_upstream_cx_http_rate | http1, http2, http3 | connections/s |
    87  | envoy.cluster_upstream_cx_destroy_rate | local, remote | connections/s |
    88  | envoy.cluster_upstream_cx_connect_fail_rate | failed | connections/s |
    89  | envoy.cluster_upstream_cx_connect_timeout_rate | timeout | connections/s |
    90  | envoy.cluster_upstream_cx_bytes_rate | received, sent | bytes/s |
    91  | envoy.cluster_upstream_cx_bytes_buffered_size | received, send | bytes |
    92  | envoy.cluster_upstream_rq_active_count | active | requests |
    93  | envoy.cluster_upstream_rq_rate | requests | requests/s |
    94  | envoy.cluster_upstream_rq_failed_rate | cancelled, maintenance_mode, timeout, max_duration_reached, per_try_timeout, reset_local, reset_remote | requests/s |
    95  | envoy.cluster_upstream_rq_pending_active_count | active_pending | requests |
    96  | envoy.cluster_upstream_rq_pending_rate | pending | requests/s |
    97  | envoy.cluster_upstream_rq_pending_failed_rate | overflow, failure_eject | requests/s |
    98  | envoy.cluster_upstream_rq_retry_rate | request | retries/s |
    99  | envoy.cluster_upstream_rq_retry_success_rate | success | retries/s |
   100  | envoy.cluster_upstream_rq_retry_backoff_rate | exponential, ratelimited | retries/s |
   101  | envoy.listener_manager_listeners_count | active, warming, draining | listeners |
   102  | envoy.listener_manager_listener_changes_rate | added, modified, removed, stopped | listeners/s |
   103  | envoy.listener_manager_listener_object_events_rate | create_success, create_failure, in_place_updated | objects/s |
   104  | envoy.listener_admin_downstream_cx_active_count | active | connections |
   105  | envoy.listener_admin_downstream_cx_rate | created | connections/s |
   106  | envoy.listener_admin_downstream_cx_destroy_rate | destroyed | connections/s |
   107  | envoy.listener_admin_downstream_cx_transport_socket_connect_timeout_rate | timeout | connections/s |
   108  | envoy.listener_admin_downstream_cx_rejected_rate | overflow, overload, global_overflow | connections/s |
   109  | envoy.listener_admin_downstream_listener_filter_remote_close_rate | closed | connections/s |
   110  | envoy.listener_admin_downstream_listener_filter_error_rate | read | errors/s |
   111  | envoy.listener_admin_downstream_pre_cx_active_count | active | sockets |
   112  | envoy.listener_admin_downstream_pre_cx_timeout_rate | timeout | sockets/s |
   113  | envoy.listener_downstream_cx_active_count | active | connections |
   114  | envoy.listener_downstream_cx_rate | created | connections/s |
   115  | envoy.listener_downstream_cx_destroy_rate | destroyed | connections/s |
   116  | envoy.listener_downstream_cx_transport_socket_connect_timeout_rate | timeout | connections/s |
   117  | envoy.listener_downstream_cx_rejected_rate | overflow, overload, global_overflow | connections/s |
   118  | envoy.listener_downstream_listener_filter_remote_close_rate | closed | connections/s |
   119  | envoy.listener_downstream_listener_filter_error_rate | read | errors/s |
   120  | envoy.listener_downstream_pre_cx_active_count | active | sockets |
   121  | envoy.listener_downstream_pre_cx_timeout_rate | timeout | sockets/s |
   122  
   123  
   124  
   125  ## Alerts
   126  
   127  There are no alerts configured by default for this integration.
   128  
   129  
   130  ## Setup
   131  
   132  ### Prerequisites
   133  
   134  No action required.
   135  
   136  ### Configuration
   137  
   138  #### File
   139  
   140  The configuration file name for this integration is `go.d/envoy.conf`.
   141  
   142  
   143  You can edit the configuration file using the `edit-config` script from the
   144  Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
   145  
   146  ```bash
   147  cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
   148  sudo ./edit-config go.d/envoy.conf
   149  ```
   150  #### Options
   151  
   152  The following options can be defined globally: update_every, autodetection_retry.
   153  
   154  
   155  <details><summary>Config options</summary>
   156  
   157  | Name | Description | Default | Required |
   158  |:----|:-----------|:-------|:--------:|
   159  | update_every | Data collection frequency. | 1 | no |
   160  | autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |
   161  | url | Server URL. | http://127.0.0.1:9091/stats/prometheus | yes |
   162  | timeout | HTTP request timeout. | 1 | no |
   163  | username | Username for basic HTTP authentication. |  | no |
   164  | password | Password for basic HTTP authentication. |  | no |
   165  | proxy_url | Proxy URL. |  | no |
   166  | proxy_username | Username for proxy basic HTTP authentication. |  | no |
   167  | proxy_password | Password for proxy basic HTTP authentication. |  | no |
   168  | method | HTTP request method. | GET | no |
   169  | body | HTTP request body. |  | no |
   170  | headers | HTTP request headers. |  | no |
   171  | not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |
   172  | tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |
   173  | tls_ca | Certification authority that the client uses when verifying the server's certificates. |  | no |
   174  | tls_cert | Client TLS certificate. |  | no |
   175  | tls_key | Client TLS key. |  | no |
   176  
   177  </details>
   178  
   179  #### Examples
   180  
   181  ##### Basic
   182  
   183  A basic example configuration.
   184  
   185  ```yaml
   186  jobs:
   187    - name: local
   188      url: http://127.0.0.1:9901/stats/prometheus
   189  
   190  ```
   191  ##### HTTP authentication
   192  
   193  Basic HTTP authentication.
   194  
   195  <details><summary>Config</summary>
   196  
   197  ```yaml
   198  jobs:
   199    - name: local
   200      url: http://127.0.0.1:9901/stats/prometheus
   201      username: username
   202      password: password
   203  
   204  ```
   205  </details>
   206  
   207  ##### HTTPS with self-signed certificate
   208  
   209  Do not validate server certificate chain and hostname.
   210  
   211  
   212  <details><summary>Config</summary>
   213  
   214  ```yaml
   215  jobs:
   216    - name: local
   217      url: https://127.0.0.1:9901/stats/prometheus
   218      tls_skip_verify: yes
   219  
   220  ```
   221  </details>
   222  
   223  ##### Multi-instance
   224  
   225  > **Note**: When you define multiple jobs, their names must be unique.
   226  
   227  Collecting metrics from local and remote instances.
   228  
   229  
   230  <details><summary>Config</summary>
   231  
   232  ```yaml
   233  jobs:
   234    - name: local
   235      url: http://127.0.0.1:9901/stats/prometheus
   236  
   237    - name: remote
   238      url: http://192.0.2.1:9901/stats/prometheus
   239  
   240  ```
   241  </details>
   242  
   243  
   244  
   245  ## Troubleshooting
   246  
   247  ### Debug Mode
   248  
   249  To troubleshoot issues with the `envoy` collector, run the `go.d.plugin` with the debug option enabled. The output
   250  should give you clues as to why the collector isn't working.
   251  
   252  - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
   253    your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
   254  
   255    ```bash
   256    cd /usr/libexec/netdata/plugins.d/
   257    ```
   258  
   259  - Switch to the `netdata` user.
   260  
   261    ```bash
   262    sudo -u netdata -s
   263    ```
   264  
   265  - Run the `go.d.plugin` to debug the collector:
   266  
   267    ```bash
   268    ./go.d.plugin -d -m envoy
   269    ```
   270  
   271