| 1 | plugin_name: go.d.plugin |
| 2 | modules: |
| 3 | - meta: |
| 4 | id: collector-go.d.plugin-nvme |
| 5 | plugin_name: go.d.plugin |
| 6 | module_name: nvme |
| 7 | monitored_instance: |
| 8 | name: NVMe devices |
| 9 | link: "" |
| 10 | icon_filename: nvme.svg |
| 11 | categories: |
| 12 | - data-collection.storage |
| 13 | keywords: |
| 14 | - nvme |
| 15 | related_resources: |
| 16 | integrations: |
| 17 | list: [] |
| 18 | info_provided_to_referring_integrations: |
| 19 | description: "" |
| 20 | overview: |
| 21 | data_collection: |
| 22 | metrics_description: > |
| 23 | This collector monitors the health of NVMe devices. |
| 24 | It relies on the [`nvme`](https://github.com/linux-nvme/nvme-cli#nvme-cli) CLI tool but avoids directly executing the binary. |
| 25 | Instead, it utilizes `ndsudo`, a Netdata helper specifically designed to run privileged commands securely within the Netdata environment. |
| 26 | This approach eliminates the need to use `sudo`, improving security and potentially simplifying permission management. |
| 27 | method_description: "" |
| 28 | supported_platforms: |
| 29 | include: [Linux, BSD] |
| 30 | exclude: [] |
| 31 | multi_instance: true |
| 32 | additional_permissions: |
| 33 | description: "" |
| 34 | default_behavior: |
| 35 | auto_detection: |
| 36 | description: "" |
| 37 | limits: |
| 38 | description: "" |
| 39 | performance_impact: |
| 40 | description: "" |
| 41 | setup: |
| 42 | prerequisites: |
| 43 | list: |
| 44 | - title: Install nvme-cli |
| 45 | description: | |
| 46 | See [Distro Support](https://github.com/linux-nvme/nvme-cli#distro-support). Install `nvme-cli` using your distribution's package manager. |
| 47 | - title: "For Netdata running in a Docker container: grant NVMe device access" |
| 48 | description: | |
| 49 | Your NVMe devices need to be accessible within the Docker container for Netdata to monitor them. |
| 50 | |
| 51 | Include the following option in your `docker run` command or add the device mapping in your `docker-compose.yml` file: |
| 52 | |
| 53 | - `docker run` |
| 54 | |
| 55 | ```bash |
| 56 | --device '/dev/nvme0n1:/dev/nvme0n1' |
| 57 | ``` |
| 58 | |
| 59 | - `docker-compose.yml` |
| 60 | |
| 61 | ```yaml |
| 62 | services: |
| 63 | netdata: |
| 64 | devices: |
| 65 | - "/dev/nvme0n1:/dev/nvme0n1" |
| 66 | ``` |
| 67 | |
| 68 | **Note**: Replace `/dev/nvme0n1` with your actual NVMe device name. |
| 69 | configuration: |
| 70 | file: |
| 71 | name: go.d/nvme.conf |
| 72 | options: |
| 73 | description: | |
| 74 | The following options can be defined globally: update_every, autodetection_retry. |
| 75 | folding: |
| 76 | title: Config options |
| 77 | enabled: true |
| 78 | list: |
| 79 | - name: update_every |
| 80 | description: Data collection frequency. |
| 81 | default_value: 10 |
| 82 | required: false |
| 83 | - name: autodetection_retry |
| 84 | description: Recheck interval in seconds. Zero means no recheck will be scheduled. |
| 85 | default_value: 0 |
| 86 | required: false |
| 87 | - name: timeout |
| 88 | description: nvme binary execution timeout. |
| 89 | default_value: 2 |
| 90 | required: false |
| 91 | examples: |
| 92 | folding: |
| 93 | title: Config |
| 94 | enabled: true |
| 95 | list: |
| 96 | - name: Custom update_every |
| 97 | description: Allows you to override the default data collection interval. |
| 98 | config: | |
| 99 | jobs: |
| 100 | - name: nvme |
| 101 | update_every: 5 # Collect NVMe metrics every 5 seconds |
| 102 | troubleshooting: |
| 103 | problems: |
| 104 | list: [] |
| 105 | alerts: |
| 106 | - name: nvme_device_critical_warnings_state |
| 107 | metric: nvme.device_critical_warnings_state |
| 108 | info: "NVMe device ${label:device} has critical warnings" |
| 109 | link: https://github.com/netdata/netdata/blob/master/src/health/health.d/nvme.conf |
| 110 | metrics: |
| 111 | folding: |
| 112 | title: Metrics |
| 113 | enabled: false |
| 114 | description: "" |
| 115 | availability: [] |
| 116 | scopes: |
| 117 | - name: device |
| 118 | description: These metrics refer to the NVME device. |
| 119 | labels: |
| 120 | - name: device |
| 121 | description: NVMe device name |
| 122 | - name: model_number |
| 123 | description: NVMe device model |
| 124 | metrics: |
| 125 | - name: nvme.device_estimated_endurance_perc |
| 126 | description: Estimated endurance |
| 127 | unit: '%' |
| 128 | chart_type: line |
| 129 | dimensions: |
| 130 | - name: used |
| 131 | - name: nvme.device_available_spare_perc |
| 132 | description: Remaining spare capacity |
| 133 | unit: '%' |
| 134 | chart_type: line |
| 135 | dimensions: |
| 136 | - name: spare |
| 137 | - name: nvme.device_composite_temperature |
| 138 | description: Composite temperature |
| 139 | unit: celsius |
| 140 | chart_type: line |
| 141 | dimensions: |
| 142 | - name: temperature |
| 143 | - name: nvme.device_io_transferred_count |
| 144 | description: Amount of data transferred to and from device |
| 145 | unit: bytes |
| 146 | chart_type: area |
| 147 | dimensions: |
| 148 | - name: read |
| 149 | - name: written |
| 150 | - name: nvme.device_power_cycles_count |
| 151 | description: Power cycles |
| 152 | unit: cycles |
| 153 | chart_type: line |
| 154 | dimensions: |
| 155 | - name: power |
| 156 | - name: nvme.device_power_on_time |
| 157 | description: Power-on time |
| 158 | unit: seconds |
| 159 | chart_type: line |
| 160 | dimensions: |
| 161 | - name: power-on |
| 162 | - name: nvme.device_critical_warnings_state |
| 163 | description: Critical warnings state |
| 164 | unit: state |
| 165 | chart_type: line |
| 166 | dimensions: |
| 167 | - name: available_spare |
| 168 | - name: temp_threshold |
| 169 | - name: nvm_subsystem_reliability |
| 170 | - name: read_only |
| 171 | - name: volatile_mem_backup_failed |
| 172 | - name: persistent_memory_read_only |
| 173 | - name: nvme.device_unsafe_shutdowns_count |
| 174 | description: Unsafe shutdowns |
| 175 | unit: shutdowns |
| 176 | chart_type: line |
| 177 | dimensions: |
| 178 | - name: unsafe |
| 179 | - name: nvme.device_media_errors_rate |
| 180 | description: Media and data integrity errors |
| 181 | unit: errors/s |
| 182 | chart_type: line |
| 183 | dimensions: |
| 184 | - name: media |
| 185 | - name: nvme.device_error_log_entries_rate |
| 186 | description: Error log entries |
| 187 | unit: entries/s |
| 188 | chart_type: line |
| 189 | dimensions: |
| 190 | - name: error_log |
| 191 | - name: nvme.device_warning_composite_temperature_time |
| 192 | description: Warning composite temperature time |
| 193 | unit: seconds |
| 194 | chart_type: line |
| 195 | dimensions: |
| 196 | - name: wctemp |
| 197 | - name: nvme.device_critical_composite_temperature_time |
| 198 | description: Critical composite temperature time |
| 199 | unit: seconds |
| 200 | chart_type: line |
| 201 | dimensions: |
| 202 | - name: cctemp |
| 203 | - name: nvme.device_thermal_mgmt_temp1_transitions_rate |
| 204 | description: Thermal management temp1 transitions |
| 205 | unit: transitions/s |
| 206 | chart_type: line |
| 207 | dimensions: |
| 208 | - name: temp1 |
| 209 | - name: nvme.device_thermal_mgmt_temp2_transitions_rate |
| 210 | description: Thermal management temp2 transitions |
| 211 | unit: transitions/s |
| 212 | chart_type: line |
| 213 | dimensions: |
| 214 | - name: temp2 |
| 215 | - name: nvme.device_thermal_mgmt_temp1_time |
| 216 | description: Thermal management temp1 time |
| 217 | unit: seconds |
| 218 | chart_type: line |
| 219 | dimensions: |
| 220 | - name: temp1 |
| 221 | - name: nvme.device_thermal_mgmt_temp2_time |
| 222 | description: Thermal management temp2 time |
| 223 | unit: seconds |
| 224 | chart_type: line |
| 225 | dimensions: |
| 226 | - name: temp2 |