| 1 | <!--startmeta |
| 2 | custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/exporting/prometheus/integrations/new_relic.md" |
| 3 | meta_yaml: "https://github.com/netdata/netdata/edit/master/src/exporting/prometheus/metadata.yaml" |
| 4 | sidebar_label: "New Relic" |
| 5 | learn_status: "Published" |
| 6 | learn_rel_path: "Exporting Metrics/Connectors" |
| 7 | keywords: ['exporter', 'Prometheus', 'remote write', 'time series'] |
| 8 | message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE EXPORTER'S metadata.yaml FILE" |
| 9 | endmeta--> |
| 10 | |
| 11 | # New Relic |
| 12 | |
| 13 | |
| 14 | <img src="https://netdata.cloud/img/newrelic.svg" width="150"/> |
| 15 | |
| 16 | |
| 17 | Use the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis. |
| 18 | |
| 19 | |
| 20 | <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" /> |
| 21 | |
| 22 | ## Limitations |
| 23 | |
| 24 | The remote write exporting connector does not support buffer on failures. |
| 25 | |
| 26 | ## Setup |
| 27 | |
| 28 | |
| 29 | ### Prerequisites |
| 30 | |
| 31 | #### |
| 32 | |
| 33 | - Netdata and the external storage provider of your choice, installed, configured and operational. |
| 34 | - `protobuf` and `snappy` libraries installed. |
| 35 | - Netdata reinstalled after the libraries. |
| 36 | |
| 37 | |
| 38 | |
| 39 | ### Configuration |
| 40 | |
| 41 | #### Options |
| 42 | |
| 43 | The following options can be defined for this exporter. |
| 44 | |
| 45 | <details open><summary>Config options</summary> |
| 46 | |
| 47 | |
| 48 | |
| 49 | | Option | Description | Default | Required | |
| 50 | |:-----|:------------|:--------|:---------:| |
| 51 | | enabled | Enables or disables an exporting connector instance (yes/no). | no | yes | |
| 52 | | [destination](#option-destination) | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | no | yes | |
| 53 | | username | Username for HTTP authentication | my_username | no | |
| 54 | | password | Password for HTTP authentication | my_password | no | |
| 55 | | data source | Selects the kind of data that will be sent to the external database. (as collected/average/sum) | | no | |
| 56 | | hostname | The hostname to be used for sending data to the external database server. | [global].hostname | no | |
| 57 | | prefix | The prefix to add to all metrics. | netdata | no | |
| 58 | | [update every](#option-update-every) | Frequency of sending sending data to the external database, in seconds. | 10 | no | |
| 59 | | [buffer on failures](#option-buffer-on-failures) | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available. | 10 | no | |
| 60 | | timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | 20000 | no | |
| 61 | | [send hosts matching](#option-send-hosts-matching) | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#simple-patterns). | localhost * | no | |
| 62 | | [send charts matching](#option-send-charts-matching) | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name. | * | no | |
| 63 | | [send names instead of ids](#option-send-names-instead-of-ids) | Controls the metric names Netdata should send to the external database (yes/no). | | no | |
| 64 | | send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes/no). | | no | |
| 65 | | send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes/no). | | no | |
| 66 | |
| 67 | <a id="option-destination"></a> |
| 68 | ##### destination |
| 69 | |
| 70 | The format of each item in this list, is: [PROTOCOL:]IP[:PORT]. |
| 71 | - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine. |
| 72 | - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port. |
| 73 | - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used. |
| 74 | |
| 75 | Example IPv4: |
| 76 | ```yaml |
| 77 | destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003 |
| 78 | ``` |
| 79 | Example IPv6 and IPv4 together: |
| 80 | ```yaml |
| 81 | destination = [ffff:...:0001]:2003 10.11.12.1:2003 |
| 82 | ``` |
| 83 | When multiple servers are defined, Netdata will try the next one when the previous one fails. |
| 84 | |
| 85 | |
| 86 | <a id="option-update-every"></a> |
| 87 | ##### update every |
| 88 | |
| 89 | Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers |
| 90 | send data to the same database. This randomness does not affect the quality of the data, only the time they are sent. |
| 91 | |
| 92 | |
| 93 | <a id="option-buffer-on-failures"></a> |
| 94 | ##### buffer on failures |
| 95 | |
| 96 | If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it). |
| 97 | |
| 98 | |
| 99 | <a id="option-send-hosts-matching"></a> |
| 100 | ##### send hosts matching |
| 101 | |
| 102 | Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern). |
| 103 | The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to |
| 104 | filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts. |
| 105 | |
| 106 | A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`, |
| 107 | use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative). |
| 108 | |
| 109 | |
| 110 | <a id="option-send-charts-matching"></a> |
| 111 | ##### send charts matching |
| 112 | |
| 113 | A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads, |
| 114 | use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used, |
| 115 | positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter |
| 116 | has a higher priority than the configuration option. |
| 117 | |
| 118 | |
| 119 | <a id="option-send-names-instead-of-ids"></a> |
| 120 | ##### send names instead of ids |
| 121 | |
| 122 | Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names |
| 123 | are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are |
| 124 | different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc. |
| 125 | |
| 126 | |
| 127 | |
| 128 | </details> |
| 129 | |
| 130 | |
| 131 | |
| 132 | #### via File |
| 133 | |
| 134 | The configuration file name for this integration is `exporting.conf`. |
| 135 | |
| 136 | |
| 137 | You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-configuration-files) script from the |
| 138 | Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#locate-your-config-directory). |
| 139 | |
| 140 | ```bash |
| 141 | cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata |
| 142 | sudo ./edit-config exporting.conf |
| 143 | ``` |
| 144 | |
| 145 | ##### Examples |
| 146 | |
| 147 | ###### Example configuration |
| 148 | |
| 149 | Basic example configuration for Prometheus remote write. |
| 150 | |
| 151 | ```yaml |
| 152 | [prometheus_remote_write:my_instance] |
| 153 | enabled = yes |
| 154 | destination = 10.11.14.2:2003 |
| 155 | remote write URL path = /receive |
| 156 | |
| 157 | ``` |
| 158 | ###### Example configuration with HTTPS and HTTP authentication |
| 159 | |
| 160 | Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`. |
| 161 | |
| 162 | ```yaml |
| 163 | [prometheus_remote_write:https:my_instance] |
| 164 | enabled = yes |
| 165 | destination = 10.11.14.2:2003 |
| 166 | remote write URL path = /receive |
| 167 | username = my_username |
| 168 | password = my_password |
| 169 | |
| 170 | ``` |
| 171 |