master
yaml 630 lines 24.7 KB
Raw
1 plugin_name: go.d.plugin
2 modules:
3 - meta:
4 id: collector-go.d.plugin-powerstore
5 plugin_name: go.d.plugin
6 module_name: powerstore
7 monitored_instance:
8 name: Dell PowerStore
9 link: https://www.dell.com/en-us/dt/storage/powerstore-storage-appliance.htm
10 icon_filename: dell.svg
11 categories:
12 - data-collection.storage
13 keywords:
14 - powerstore
15 - dell
16 - storage
17 - san
18 - nas
19 - block
20 - file
21 related_resources:
22 integrations:
23 list: []
24 info_provided_to_referring_integrations:
25 description: ""
26 overview:
27 data_collection:
28 metrics_description: |
29 This collector monitors Dell PowerStore storage arrays via the PowerStore REST API.
30
31 It collects metrics for the following components:
32
33 - **Cluster Capacity** — physical and logical space usage, efficiency ratios (data reduction, snapshot savings, thin provisioning)
34 - **Appliance Performance** — IOPS, bandwidth, latency, CPU utilization, and space usage per appliance
35 - **Volume Performance** — IOPS, bandwidth, latency, provisioned/used space, and thin savings per volume
36 - **Node Performance** — IOPS, bandwidth, latency, and current login count per node
37 - **FC Port Performance** — IOPS, bandwidth, latency, and link status per Fibre Channel port
38 - **Ethernet Port Performance** — bytes/packets rate, error rates, and link status per Ethernet port
39 - **File System Performance** — IOPS, bandwidth, and latency per file system
40 - **Hardware Health** — component-level status counts (fans, PSUs, drives, batteries, nodes) by health state (OK, degraded, failed, unknown)
41 - **Active Alerts** — count of currently active alerts by severity (critical, major, minor, info)
42 - **Drive Wear** — SSD endurance remaining percentage per drive
43 - **NAS Server Status** — operational status counts (started, stopped, degraded, unknown)
44 - **Replication** — data remaining, data transferred, and transfer rate across appliances
45 method_description: |
46 The collector uses the PowerStore REST API (`/api/rest/*` endpoints) to fetch data.
47 Authentication uses HTTP Basic Auth — the collector calls `/api/rest/login_session` to obtain
48 a session cookie and a `DELL-EMC-TOKEN` CSRF token, which are reused for subsequent requests.
49 Sessions are automatically refreshed on HTTP 403 (token expiry).
50
51 Discovery runs on startup and then every 5 collection cycles to refresh the hardware inventory,
52 appliances, volumes, nodes, ports, file systems, and NAS servers.
53
54 Performance and space metrics are collected via the `/api/rest/metrics/generate` endpoint using
55 the PowerStore metrics generation API. The collector requests `Five_Mins` interval data for
56 performance metrics and `One_Day` for cluster space metrics, taking the most recent data point.
57
58 Discovery API calls use pagination (2000 items per page, HTTP 206 for partial results).
59 Performance metrics for different entities are collected concurrently (up to 10 parallel API calls).
60 supported_platforms:
61 include: []
62 exclude: []
63 multi_instance: true
64 additional_permissions:
65 description: |
66 A user account on the PowerStore array is required. Any role with API read access
67 is sufficient (e.g., the built-in `Operator` role). The account does not need write permissions.
68 default_behavior:
69 auto_detection:
70 description: |
71 The collector does not auto-detect PowerStore arrays. You must configure the management IP address,
72 username, and password explicitly.
73 limits:
74 description: |
75 The collector makes multiple API calls per collection cycle: discovery calls (once every 5 cycles)
76 plus per-entity metrics calls (appliances, volumes, nodes, ports, file systems, drives, and
77 replication — one API call per entity). With many volumes or ports, the number of API calls
78 scales linearly. The default 30-second collection interval provides ample headroom.
79 performance_impact:
80 description: |
81 The PowerStore REST API is lightweight and read-only. The collector uses the metrics generation
82 API which returns pre-aggregated data, imposing minimal load on the array. Session tokens and
83 CSRF tokens are cached across collection cycles.
84 setup:
85 prerequisites:
86 list:
87 - title: PowerStore API access
88 description: |
89 1. A user account on the PowerStore array with at least read-only access.
90 The built-in `Operator` role is sufficient.
91 2. Network connectivity from the Netdata Agent to the PowerStore management IP (HTTPS, port 443).
92 3. The PowerStore management REST API must be accessible (enabled by default).
93 - title: TLS certificate
94 description: |
95 PowerStore arrays typically use self-signed TLS certificates. You will likely need to set
96 `tls_skip_verify: yes` in the configuration, or provide the array's CA certificate via `tls_ca`.
97 configuration:
98 file:
99 name: go.d/powerstore.conf
100 options:
101 description: |
102 The following options can be defined globally: update_every, autodetection_retry.
103 folding:
104 title: Config options
105 enabled: true
106 list:
107 - name: update_every
108 description: Data collection interval (seconds).
109 default_value: 30
110 required: false
111 group: Collection
112 - name: autodetection_retry
113 description: Autodetection retry interval (seconds). Set 0 to disable.
114 default_value: 0
115 required: false
116 group: Collection
117
118 - name: url
119 description: PowerStore management URL.
120 default_value: https://127.0.0.1
121 required: true
122 group: Target
123 - name: timeout
124 description: HTTP request timeout (seconds).
125 default_value: 30
126 required: false
127 group: Target
128
129 - name: username
130 description: Username for PowerStore API authentication.
131 default_value: ""
132 required: true
133 group: HTTP Auth
134 - name: password
135 description: Password for PowerStore API authentication.
136 default_value: ""
137 required: true
138 group: HTTP Auth
139
140 - name: volume_selector
141 description: |
142 Space-separated [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#readme)
143 to filter which volumes to monitor. Use `*` for wildcards, `!` prefix to exclude.
144 An empty value or `*` monitors all volumes.
145 default_value: "*"
146 required: false
147 group: Filtering
148
149 - name: tls_skip_verify
150 description: Skip TLS certificate and hostname verification (insecure, but often needed for self-signed certs on storage arrays).
151 default_value: no
152 required: false
153 group: TLS
154 - name: tls_ca
155 description: Path to CA bundle used to validate the server certificate.
156 default_value: ""
157 required: false
158 group: TLS
159 - name: tls_cert
160 description: Path to client TLS certificate (for mTLS).
161 default_value: ""
162 required: false
163 group: TLS
164 - name: tls_key
165 description: Path to client TLS private key (for mTLS).
166 default_value: ""
167 required: false
168 group: TLS
169
170 - name: proxy_url
171 description: HTTP proxy URL.
172 default_value: ""
173 required: false
174 group: Proxy
175 - name: proxy_username
176 description: Username for proxy Basic HTTP authentication.
177 default_value: ""
178 required: false
179 group: Proxy
180 - name: proxy_password
181 description: Password for proxy Basic HTTP authentication.
182 default_value: ""
183 required: false
184 group: Proxy
185
186 - name: headers
187 description: "Additional HTTP headers (one per line as key: value)."
188 default_value: ""
189 required: false
190 group: Request
191 - name: not_follow_redirects
192 description: Do not follow HTTP redirects.
193 default_value: no
194 required: false
195 group: Request
196
197 - name: vnode
198 description: Associates this data collection job with a [Virtual Node](https://learn.netdata.cloud/docs/netdata-agent/configuration/organize-systems-metrics-and-alerts#virtual-nodes).
199 default_value: ""
200 required: false
201 group: Virtual Node
202 examples:
203 folding:
204 title: Config
205 enabled: true
206 list:
207 - name: Basic
208 description: A minimal configuration connecting to a PowerStore array with a self-signed certificate.
209 config: |
210 jobs:
211 - name: ps-lab
212 url: https://10.0.0.1
213 username: monitor
214 password: monitor123
215 tls_skip_verify: yes
216 - name: With volume filtering
217 description: Monitor only production volumes, excluding temporary and test volumes.
218 config: |
219 jobs:
220 - name: ps-prod
221 url: https://10.0.0.1
222 username: monitor
223 password: monitor123
224 tls_skip_verify: yes
225 volume_selector: "prod-* !*-temp !*-test"
226 - name: Multi-instance
227 description: |
228 > **Note**: When you define multiple jobs, their names must be unique.
229
230 Monitoring multiple PowerStore arrays.
231 config: |
232 jobs:
233 - name: ps-site-a
234 url: https://10.0.0.1
235 username: monitor
236 password: monitor123
237 tls_skip_verify: yes
238
239 - name: ps-site-b
240 url: https://10.0.0.2
241 username: monitor
242 password: monitor456
243 tls_skip_verify: yes
244 troubleshooting:
245 problems:
246 list:
247 - name: Authentication failure
248 description: |
249 If the collector fails with `login failed`:
250
251 1. Verify the username and password are correct.
252 2. Ensure the user account has at least `Operator` role privileges.
253 3. Check that the account is not locked or expired on the array.
254 - name: Connection refused or timeout
255 description: |
256 If the collector fails with connection errors:
257
258 1. Verify the `url` points to the management IP of the PowerStore array.
259 2. Ensure HTTPS port 443 is reachable from the Netdata Agent host.
260 3. If using a firewall, allow outbound HTTPS to the array.
261 4. Try increasing `timeout` if the array is on a high-latency link.
262 - name: TLS certificate errors
263 description: |
264 PowerStore arrays ship with self-signed certificates. If you see TLS errors:
265
266 1. Set `tls_skip_verify: yes` in the configuration (most common solution).
267 2. Alternatively, export the array's certificate and provide it via `tls_ca`.
268 - name: HTTP 403 errors
269 description: |
270 PowerStore returns HTTP 403 when the session/CSRF token is stale. The collector
271 automatically re-authenticates on 403, but if you see persistent 403 errors:
272
273 1. Verify the user account still has API access.
274 2. Check if the array's security policy has been changed to restrict API access.
275 3. Ensure no IP-based access controls are blocking the Netdata Agent host.
276 alerts: []
277 metrics:
278 folding:
279 title: Metrics
280 enabled: false
281 description: ""
282 availability: []
283 scopes:
284 - name: global
285 description: These metrics refer to the entire monitored PowerStore cluster.
286 labels: []
287 metrics:
288 - name: powerstore.cluster_space_usage
289 description: Cluster Space Usage
290 unit: bytes
291 chart_type: line
292 dimensions:
293 - name: used
294 - name: total
295 - name: powerstore.cluster_space_logical
296 description: Cluster Logical Space
297 unit: bytes
298 chart_type: line
299 dimensions:
300 - name: provisioned
301 - name: used
302 - name: data_physical
303 - name: shared
304 - name: powerstore.cluster_space_efficiency
305 description: Cluster Space Efficiency Ratios
306 unit: ratio
307 chart_type: line
308 dimensions:
309 - name: efficiency
310 - name: data_reduction
311 - name: snapshot_savings
312 - name: thin_savings
313 - name: powerstore.hardware_health_fan
314 description: Fan Health Status
315 unit: fans
316 chart_type: stacked
317 dimensions:
318 - name: ok
319 - name: degraded
320 - name: failed
321 - name: unknown
322 - name: powerstore.hardware_health_psu
323 description: Power Supply Health Status
324 unit: PSUs
325 chart_type: stacked
326 dimensions:
327 - name: ok
328 - name: degraded
329 - name: failed
330 - name: unknown
331 - name: powerstore.hardware_health_drive
332 description: Drive Health Status
333 unit: drives
334 chart_type: stacked
335 dimensions:
336 - name: ok
337 - name: degraded
338 - name: failed
339 - name: unknown
340 - name: powerstore.hardware_health_battery
341 description: Battery Health Status
342 unit: batteries
343 chart_type: stacked
344 dimensions:
345 - name: ok
346 - name: degraded
347 - name: failed
348 - name: unknown
349 - name: powerstore.hardware_health_node
350 description: Node Health Status
351 unit: nodes
352 chart_type: stacked
353 dimensions:
354 - name: ok
355 - name: degraded
356 - name: failed
357 - name: unknown
358 - name: powerstore.alerts_active
359 description: Active Alerts by Severity
360 unit: alerts
361 chart_type: stacked
362 dimensions:
363 - name: critical
364 - name: major
365 - name: minor
366 - name: info
367 - name: powerstore.nas_server_status
368 description: NAS Server Status
369 unit: servers
370 chart_type: stacked
371 dimensions:
372 - name: started
373 - name: stopped
374 - name: degraded
375 - name: unknown
376 - name: powerstore.copy_data
377 description: Replication Data
378 unit: bytes
379 chart_type: line
380 dimensions:
381 - name: remaining
382 - name: transferred
383 - name: powerstore.copy_transfer_rate
384 description: Replication Transfer Rate
385 unit: bytes/s
386 chart_type: line
387 dimensions:
388 - name: rate
389 - name: appliance
390 description: These metrics refer to individual PowerStore appliances.
391 labels:
392 - name: appliance
393 description: Appliance name (e.g., `Appliance-WX-D8031`).
394 metrics:
395 - name: powerstore.appliance_iops
396 description: Appliance IOPS
397 unit: ops/s
398 chart_type: area
399 dimensions:
400 - name: read
401 - name: write
402 - name: powerstore.appliance_bandwidth
403 description: Appliance Bandwidth
404 unit: bytes/s
405 chart_type: area
406 dimensions:
407 - name: read
408 - name: write
409 - name: powerstore.appliance_latency
410 description: Appliance Latency
411 unit: microseconds
412 chart_type: line
413 dimensions:
414 - name: read
415 - name: write
416 - name: avg
417 - name: powerstore.appliance_cpu
418 description: Appliance IO Workload CPU Utilization
419 unit: percentage
420 chart_type: line
421 dimensions:
422 - name: utilization
423 - name: powerstore.appliance_space
424 description: Appliance Space Usage
425 unit: bytes
426 chart_type: line
427 dimensions:
428 - name: used
429 - name: total
430 - name: powerstore.appliance_space_logical
431 description: Appliance Logical Space
432 unit: bytes
433 chart_type: line
434 dimensions:
435 - name: provisioned
436 - name: used
437 - name: data_physical
438 - name: shared
439 - name: powerstore.appliance_space_efficiency
440 description: Appliance Space Efficiency Ratios
441 unit: ratio
442 chart_type: line
443 dimensions:
444 - name: efficiency
445 - name: data_reduction
446 - name: snapshot_savings
447 - name: thin_savings
448 - name: volume
449 description: These metrics refer to individual PowerStore volumes. Volumes can be filtered using the `volume_selector` configuration option.
450 labels:
451 - name: volume
452 description: Volume name (e.g., `prod-db-01`).
453 metrics:
454 - name: powerstore.volume_iops
455 description: Volume IOPS
456 unit: ops/s
457 chart_type: area
458 dimensions:
459 - name: read
460 - name: write
461 - name: powerstore.volume_bandwidth
462 description: Volume Bandwidth
463 unit: bytes/s
464 chart_type: area
465 dimensions:
466 - name: read
467 - name: write
468 - name: powerstore.volume_latency
469 description: Volume Latency
470 unit: microseconds
471 chart_type: line
472 dimensions:
473 - name: read
474 - name: write
475 - name: avg
476 - name: powerstore.volume_space
477 description: Volume Space Usage
478 unit: bytes
479 chart_type: line
480 dimensions:
481 - name: provisioned
482 - name: used
483 - name: powerstore.volume_space_savings
484 description: Volume Thin Savings
485 unit: ratio
486 chart_type: line
487 dimensions:
488 - name: thin_savings
489 - name: node
490 description: These metrics refer to individual PowerStore nodes within an appliance.
491 labels:
492 - name: node
493 description: Node name (e.g., `Appliance-WX-D8031-node-A`).
494 metrics:
495 - name: powerstore.node_iops
496 description: Node IOPS
497 unit: ops/s
498 chart_type: area
499 dimensions:
500 - name: read
501 - name: write
502 - name: powerstore.node_bandwidth
503 description: Node Bandwidth
504 unit: bytes/s
505 chart_type: area
506 dimensions:
507 - name: read
508 - name: write
509 - name: powerstore.node_latency
510 description: Node Latency
511 unit: microseconds
512 chart_type: line
513 dimensions:
514 - name: read
515 - name: write
516 - name: avg
517 - name: powerstore.node_logins
518 description: Node Current Logins
519 unit: logins
520 chart_type: line
521 dimensions:
522 - name: logins
523 - name: fc port
524 description: These metrics refer to individual Fibre Channel ports used for host connectivity.
525 labels:
526 - name: fc_port
527 description: FC port name (e.g., `Appliance-WX-D8031-node-A-Port-0`).
528 metrics:
529 - name: powerstore.fc_port_iops
530 description: FC Port IOPS
531 unit: ops/s
532 chart_type: area
533 dimensions:
534 - name: read
535 - name: write
536 - name: powerstore.fc_port_bandwidth
537 description: FC Port Bandwidth
538 unit: bytes/s
539 chart_type: area
540 dimensions:
541 - name: read
542 - name: write
543 - name: powerstore.fc_port_latency
544 description: FC Port Latency
545 unit: microseconds
546 chart_type: line
547 dimensions:
548 - name: read
549 - name: write
550 - name: avg
551 - name: powerstore.fc_port_link_status
552 description: FC Port Link Status
553 unit: status
554 chart_type: line
555 dimensions:
556 - name: up
557 - name: ethernet port
558 description: These metrics refer to individual Ethernet ports (management and iSCSI connectivity).
559 labels:
560 - name: eth_port
561 description: Ethernet port name (e.g., `Appliance-WX-D8031-node-A-Port-eth0`).
562 metrics:
563 - name: powerstore.eth_port_bytes
564 description: Ethernet Port Bytes Rate
565 unit: bytes/s
566 chart_type: area
567 dimensions:
568 - name: received
569 - name: sent
570 - name: powerstore.eth_port_packets
571 description: Ethernet Port Packets Rate
572 unit: packets/s
573 chart_type: area
574 dimensions:
575 - name: received
576 - name: sent
577 - name: powerstore.eth_port_errors
578 description: Ethernet Port Errors Rate
579 unit: errors/s
580 chart_type: stacked
581 dimensions:
582 - name: rx_crc
583 - name: rx_no_buffer
584 - name: tx_error
585 - name: powerstore.eth_port_link_status
586 description: Ethernet Port Link Status
587 unit: status
588 chart_type: line
589 dimensions:
590 - name: up
591 - name: file system
592 description: These metrics refer to individual file systems (NFS/SMB shares).
593 labels:
594 - name: filesystem
595 description: File system name (e.g., `nfs-share-01`).
596 metrics:
597 - name: powerstore.filesystem_iops
598 description: File System IOPS
599 unit: ops/s
600 chart_type: area
601 dimensions:
602 - name: read
603 - name: write
604 - name: powerstore.filesystem_bandwidth
605 description: File System Bandwidth
606 unit: bytes/s
607 chart_type: area
608 dimensions:
609 - name: read
610 - name: write
611 - name: powerstore.filesystem_latency
612 description: File System Latency
613 unit: microseconds
614 chart_type: line
615 dimensions:
616 - name: read
617 - name: write
618 - name: avg
619 - name: drive
620 description: These metrics refer to individual physical drives (SSDs).
621 labels:
622 - name: drive
623 description: Drive name (e.g., `Drive_0_0_25`).
624 metrics:
625 - name: powerstore.drive_endurance
626 description: Drive Endurance Remaining
627 unit: percentage
628 chart_type: line
629 dimensions:
630 - name: remaining