mirror of
https://github.com/netdata/netdata.git
synced 2025-04-13 01:08:11 +00:00
remove charts.d/nut (#16230)
This commit is contained in:
parent
18ebff22c4
commit
2bc3c2544a
10 changed files with 0 additions and 773 deletions
|
@ -45,6 +45,5 @@ include ap/Makefile.inc
|
|||
include apcupsd/Makefile.inc
|
||||
include example/Makefile.inc
|
||||
include libreswan/Makefile.inc
|
||||
include nut/Makefile.inc
|
||||
include opensips/Makefile.inc
|
||||
include sensors/Makefile.inc
|
||||
|
|
|
@ -36,7 +36,6 @@
|
|||
# ap=yes
|
||||
# apcupsd=yes
|
||||
# libreswan=yes
|
||||
# nut=yes
|
||||
# opensips=yes
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# THIS IS NOT A COMPLETE Makefile
|
||||
# IT IS INCLUDED BY ITS PARENT'S Makefile.am
|
||||
# IT IS REQUIRED TO REFERENCE ALL FILES RELATIVE TO THE PARENT
|
||||
|
||||
# install these files
|
||||
dist_charts_DATA += nut/nut.chart.sh
|
||||
dist_chartsconfig_DATA += nut/nut.conf
|
||||
|
||||
# do not install these files, but include them in the distribution
|
||||
dist_noinst_DATA += nut/README.md nut/Makefile.inc
|
||||
|
|
@ -1 +0,0 @@
|
|||
integrations/network_ups_tools_nut.md
|
|
@ -1,207 +0,0 @@
|
|||
<!--startmeta
|
||||
custom_edit_url: "https://github.com/netdata/netdata/edit/master/collectors/charts.d.plugin/nut/README.md"
|
||||
meta_yaml: "https://github.com/netdata/netdata/edit/master/collectors/charts.d.plugin/nut/metadata.yaml"
|
||||
sidebar_label: "Network UPS Tools (NUT)"
|
||||
learn_status: "Published"
|
||||
learn_rel_path: "Data Collection/UPS"
|
||||
message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
|
||||
endmeta-->
|
||||
|
||||
# Network UPS Tools (NUT)
|
||||
|
||||
|
||||
<img src="https://netdata.cloud/img/plug-circle-bolt.svg" width="150"/>
|
||||
|
||||
|
||||
Plugin: charts.d.plugin
|
||||
Module: nut
|
||||
|
||||
<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
|
||||
|
||||
## Overview
|
||||
|
||||
Examine UPS/PDU metrics with Netdata for insights into power device performance. Improve your power device performance with comprehensive dashboards and anomaly detection.
|
||||
|
||||
This collector uses the `nut` (Network UPS Tools) to query statistics for multiple UPS devices.
|
||||
|
||||
This collector is supported on all platforms.
|
||||
|
||||
This collector supports collecting metrics from multiple instances of this integration, including remote instances.
|
||||
|
||||
|
||||
### Default Behavior
|
||||
|
||||
#### Auto-Detection
|
||||
|
||||
This integration doesn't support auto-detection.
|
||||
|
||||
#### Limits
|
||||
|
||||
The default configuration for this integration does not impose any limits on data collection.
|
||||
|
||||
#### Performance Impact
|
||||
|
||||
The default configuration for this integration is not expected to impose a significant performance impact on the system.
|
||||
|
||||
|
||||
## Metrics
|
||||
|
||||
Metrics grouped by *scope*.
|
||||
|
||||
The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
|
||||
|
||||
|
||||
|
||||
### Per ups
|
||||
|
||||
Metrics related to UPS. Each UPS provides its own set of the following metrics.
|
||||
|
||||
This scope has no labels.
|
||||
|
||||
Metrics:
|
||||
|
||||
| Metric | Dimensions | Unit |
|
||||
|:------|:----------|:----|
|
||||
| nut.charge | charge | percentage |
|
||||
| nut.runtime | runtime | seconds |
|
||||
| nut.battery.voltage | voltage, high, low, nominal | Volts |
|
||||
| nut.input.voltage | voltage, fault, nominal | Volts |
|
||||
| nut.input.current | nominal | Ampere |
|
||||
| nut.input.frequency | frequency, nominal | Hz |
|
||||
| nut.output.voltage | voltage | Volts |
|
||||
| nut.load | load | percentage |
|
||||
| nut.load_usage | load_usage | Watts |
|
||||
| nut.temperature | temp | temperature |
|
||||
| nut.clients | clients | clients |
|
||||
|
||||
|
||||
|
||||
## Alerts
|
||||
|
||||
|
||||
The following alerts are available:
|
||||
|
||||
| Alert name | On metric | Description |
|
||||
|:------------|:----------|:------------|
|
||||
| [ nut_ups_charge ](https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf) | nut.charge | average UPS charge over the last minute |
|
||||
| [ nut_10min_ups_load ](https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf) | nut.load | average UPS load over the last 10 minutes |
|
||||
| [ nut_last_collected_secs ](https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf) | nut.load | number of seconds since the last successful data collection |
|
||||
|
||||
|
||||
## Setup
|
||||
|
||||
### Prerequisites
|
||||
|
||||
#### Install charts.d plugin
|
||||
|
||||
If [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.
|
||||
|
||||
|
||||
#### Required software
|
||||
|
||||
Make sure the Network UPS Tools (`nut`) is installed and can detect your UPS devices.
|
||||
|
||||
|
||||
### Configuration
|
||||
|
||||
#### File
|
||||
|
||||
The configuration file name for this integration is `charts.d/nut.conf`.
|
||||
|
||||
|
||||
You can edit the configuration file using the `edit-config` script from the
|
||||
Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
|
||||
|
||||
```bash
|
||||
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
|
||||
sudo ./edit-config charts.d/nut.conf
|
||||
```
|
||||
#### Options
|
||||
|
||||
The config file is sourced by the charts.d plugin. It's a standard bash file.
|
||||
|
||||
The following collapsed table contains all the options that can be configured for the nut collector.
|
||||
|
||||
|
||||
<details><summary>Config options</summary>
|
||||
|
||||
| Name | Description | Default | Required |
|
||||
|:----|:-----------|:-------|:--------:|
|
||||
| nut_ups | A space separated list of UPS names. If empty, the list returned by `upsc -l` will be used. | | False |
|
||||
| nut_names | Each line represents an alias for one UPS. If empty, the FQDN will be used. | | False |
|
||||
| nut_timeout | How long to wait for nut to respond. | 2 | False |
|
||||
| nut_clients_chart | Set this to 1 to enable another chart showing the number of UPS clients connected to `upsd`. | 1 | False |
|
||||
| nut_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 2 | False |
|
||||
| nut_priority | The charts priority on the dashboard | 90000 | False |
|
||||
| nut_retries | The number of retries to do in case of failure before disabling the collector. | 10 | False |
|
||||
|
||||
</details>
|
||||
|
||||
#### Examples
|
||||
|
||||
##### Provide names to UPS devices
|
||||
|
||||
Map aliases to UPS devices
|
||||
|
||||
<details><summary>Config</summary>
|
||||
|
||||
```yaml
|
||||
# a space separated list of UPS names
|
||||
# if empty, the list returned by 'upsc -l' will be used
|
||||
#nut_ups=
|
||||
|
||||
# each line represents an alias for one UPS
|
||||
# if empty, the FQDN will be used
|
||||
nut_names["XXXXXX"]="UPS-office"
|
||||
nut_names["YYYYYY"]="UPS-rack"
|
||||
|
||||
# how much time in seconds, to wait for nut to respond
|
||||
#nut_timeout=2
|
||||
|
||||
# set this to 1, to enable another chart showing the number
|
||||
# of UPS clients connected to upsd
|
||||
#nut_clients_chart=1
|
||||
|
||||
# the data collection frequency
|
||||
# if unset, will inherit the netdata update frequency
|
||||
#nut_update_every=2
|
||||
|
||||
# the charts priority on the dashboard
|
||||
#nut_priority=90000
|
||||
|
||||
# the number of retries to do in case of failure
|
||||
# before disabling the module
|
||||
#nut_retries=10
|
||||
|
||||
```
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Debug Mode
|
||||
|
||||
To troubleshoot issues with the `nut` collector, run the `charts.d.plugin` with the debug option enabled. The output
|
||||
should give you clues as to why the collector isn't working.
|
||||
|
||||
- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
|
||||
your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
|
||||
|
||||
```bash
|
||||
cd /usr/libexec/netdata/plugins.d/
|
||||
```
|
||||
|
||||
- Switch to the `netdata` user.
|
||||
|
||||
```bash
|
||||
sudo -u netdata -s
|
||||
```
|
||||
|
||||
- Run the `charts.d.plugin` to debug the collector:
|
||||
|
||||
```bash
|
||||
./charts.d.plugin debug 1 nut
|
||||
```
|
||||
|
||||
|
|
@ -1,222 +0,0 @@
|
|||
plugin_name: charts.d.plugin
|
||||
modules:
|
||||
- meta:
|
||||
plugin_name: charts.d.plugin
|
||||
module_name: nut
|
||||
monitored_instance:
|
||||
name: Network UPS Tools (NUT)
|
||||
link: ''
|
||||
categories:
|
||||
- data-collection.ups
|
||||
icon_filename: 'plug-circle-bolt.svg'
|
||||
related_resources:
|
||||
integrations:
|
||||
list: []
|
||||
info_provided_to_referring_integrations:
|
||||
description: ''
|
||||
keywords:
|
||||
- nut
|
||||
- network ups tools
|
||||
- ups
|
||||
- pdu
|
||||
most_popular: false
|
||||
overview:
|
||||
data_collection:
|
||||
metrics_description: 'Examine UPS/PDU metrics with Netdata for insights into power device performance. Improve your power device performance with comprehensive dashboards and anomaly detection.'
|
||||
method_description: 'This collector uses the `nut` (Network UPS Tools) to query statistics for multiple UPS devices.'
|
||||
supported_platforms:
|
||||
include: []
|
||||
exclude: []
|
||||
multi_instance: true
|
||||
additional_permissions:
|
||||
description: ''
|
||||
default_behavior:
|
||||
auto_detection:
|
||||
description: ''
|
||||
limits:
|
||||
description: ''
|
||||
performance_impact:
|
||||
description: ''
|
||||
setup:
|
||||
prerequisites:
|
||||
list:
|
||||
- title: "Install charts.d plugin"
|
||||
description: |
|
||||
If [using our official native DEB/RPM packages](https://github.com/netdata/netdata/blob/master/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed.
|
||||
- title: "Required software"
|
||||
description: "Make sure the Network UPS Tools (`nut`) is installed and can detect your UPS devices."
|
||||
configuration:
|
||||
file:
|
||||
name: charts.d/nut.conf
|
||||
options:
|
||||
description: |
|
||||
The config file is sourced by the charts.d plugin. It's a standard bash file.
|
||||
|
||||
The following collapsed table contains all the options that can be configured for the nut collector.
|
||||
folding:
|
||||
title: "Config options"
|
||||
enabled: true
|
||||
list:
|
||||
- name: nut_ups
|
||||
description: A space separated list of UPS names. If empty, the list returned by `upsc -l` will be used.
|
||||
default_value: ""
|
||||
required: false
|
||||
- name: nut_names
|
||||
description: Each line represents an alias for one UPS. If empty, the FQDN will be used.
|
||||
default_value: ""
|
||||
required: false
|
||||
- name: nut_timeout
|
||||
description: How long to wait for nut to respond.
|
||||
default_value: 2
|
||||
required: false
|
||||
- name: nut_clients_chart
|
||||
description: Set this to 1 to enable another chart showing the number of UPS clients connected to `upsd`.
|
||||
default_value: 1
|
||||
required: false
|
||||
- name: nut_update_every
|
||||
description: The data collection frequency. If unset, will inherit the netdata update frequency.
|
||||
default_value: 2
|
||||
required: false
|
||||
- name: nut_priority
|
||||
description: The charts priority on the dashboard
|
||||
default_value: 90000
|
||||
required: false
|
||||
- name: nut_retries
|
||||
description: The number of retries to do in case of failure before disabling the collector.
|
||||
default_value: 10
|
||||
required: false
|
||||
examples:
|
||||
folding:
|
||||
enabled: true
|
||||
title: "Config"
|
||||
list:
|
||||
- name: Provide names to UPS devices
|
||||
description: Map aliases to UPS devices
|
||||
config: |
|
||||
# a space separated list of UPS names
|
||||
# if empty, the list returned by 'upsc -l' will be used
|
||||
#nut_ups=
|
||||
|
||||
# each line represents an alias for one UPS
|
||||
# if empty, the FQDN will be used
|
||||
nut_names["XXXXXX"]="UPS-office"
|
||||
nut_names["YYYYYY"]="UPS-rack"
|
||||
|
||||
# how much time in seconds, to wait for nut to respond
|
||||
#nut_timeout=2
|
||||
|
||||
# set this to 1, to enable another chart showing the number
|
||||
# of UPS clients connected to upsd
|
||||
#nut_clients_chart=1
|
||||
|
||||
# the data collection frequency
|
||||
# if unset, will inherit the netdata update frequency
|
||||
#nut_update_every=2
|
||||
|
||||
# the charts priority on the dashboard
|
||||
#nut_priority=90000
|
||||
|
||||
# the number of retries to do in case of failure
|
||||
# before disabling the module
|
||||
#nut_retries=10
|
||||
troubleshooting:
|
||||
problems:
|
||||
list: []
|
||||
alerts:
|
||||
- name: nut_ups_charge
|
||||
link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
|
||||
metric: nut.charge
|
||||
info: average UPS charge over the last minute
|
||||
os: "*"
|
||||
- name: nut_10min_ups_load
|
||||
link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
|
||||
metric: nut.load
|
||||
info: average UPS load over the last 10 minutes
|
||||
os: "*"
|
||||
- name: nut_last_collected_secs
|
||||
link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
|
||||
metric: nut.load
|
||||
info: number of seconds since the last successful data collection
|
||||
metrics:
|
||||
folding:
|
||||
title: Metrics
|
||||
enabled: false
|
||||
description: ""
|
||||
availability: []
|
||||
scopes:
|
||||
- name: ups
|
||||
description: "Metrics related to UPS. Each UPS provides its own set of the following metrics."
|
||||
labels: []
|
||||
metrics:
|
||||
- name: nut.charge
|
||||
description: UPS Charge
|
||||
unit: "percentage"
|
||||
chart_type: area
|
||||
dimensions:
|
||||
- name: charge
|
||||
- name: nut.runtime
|
||||
description: UPS Runtime
|
||||
unit: "seconds"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: runtime
|
||||
- name: nut.battery.voltage
|
||||
description: UPS Battery Voltage
|
||||
unit: "Volts"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: voltage
|
||||
- name: high
|
||||
- name: low
|
||||
- name: nominal
|
||||
- name: nut.input.voltage
|
||||
description: UPS Input Voltage
|
||||
unit: "Volts"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: voltage
|
||||
- name: fault
|
||||
- name: nominal
|
||||
- name: nut.input.current
|
||||
description: UPS Input Current
|
||||
unit: "Ampere"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: nominal
|
||||
- name: nut.input.frequency
|
||||
description: UPS Input Frequency
|
||||
unit: "Hz"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: frequency
|
||||
- name: nominal
|
||||
- name: nut.output.voltage
|
||||
description: UPS Output Voltage
|
||||
unit: "Volts"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: voltage
|
||||
- name: nut.load
|
||||
description: UPS Load
|
||||
unit: "percentage"
|
||||
chart_type: area
|
||||
dimensions:
|
||||
- name: load
|
||||
- name: nut.load_usage
|
||||
description: UPS Load Usage
|
||||
unit: "Watts"
|
||||
chart_type: area
|
||||
dimensions:
|
||||
- name: load_usage
|
||||
- name: nut.temperature
|
||||
description: UPS Temperature
|
||||
unit: "temperature"
|
||||
chart_type: line
|
||||
dimensions:
|
||||
- name: temp
|
||||
- name: nut.clients
|
||||
description: UPS Connected Clients
|
||||
unit: "clients"
|
||||
chart_type: area
|
||||
dimensions:
|
||||
- name: clients
|
|
@ -1,244 +0,0 @@
|
|||
# shellcheck shell=bash
|
||||
# no need for shebang - this file is loaded from charts.d.plugin
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# netdata
|
||||
# real-time performance and health monitoring, done right!
|
||||
# (C) 2016-2017 Costa Tsaousis <costa@tsaousis.gr>
|
||||
#
|
||||
|
||||
# a space separated list of UPS names
|
||||
# if empty, the list returned by 'upsc -l' will be used
|
||||
nut_ups=
|
||||
|
||||
# how frequently to collect UPS data
|
||||
nut_update_every=2
|
||||
|
||||
# how much time in seconds, to wait for nut to respond
|
||||
nut_timeout=2
|
||||
|
||||
# set this to 1, to enable another chart showing the number
|
||||
# of UPS clients connected to upsd
|
||||
nut_clients_chart=0
|
||||
|
||||
# the priority of nut related to other charts
|
||||
nut_priority=90000
|
||||
|
||||
declare -A nut_ids=()
|
||||
declare -A nut_names=()
|
||||
|
||||
nut_get_all() {
|
||||
run -t $nut_timeout upsc -l
|
||||
}
|
||||
|
||||
nut_get() {
|
||||
run -t $nut_timeout upsc "$1"
|
||||
|
||||
if [ "${nut_clients_chart}" -eq "1" ]; then
|
||||
printf "ups.connected_clients: "
|
||||
run -t $nut_timeout upsc -c "$1" | wc -l
|
||||
fi
|
||||
}
|
||||
|
||||
nut_check() {
|
||||
|
||||
# this should return:
|
||||
# - 0 to enable the chart
|
||||
# - 1 to disable the chart
|
||||
|
||||
local x
|
||||
|
||||
require_cmd upsc || return 1
|
||||
|
||||
[ -z "$nut_ups" ] && nut_ups="$(nut_get_all)"
|
||||
|
||||
for x in $nut_ups; do
|
||||
nut_get "$x" > /dev/null
|
||||
# shellcheck disable=SC2181
|
||||
if [ $? -eq 0 ]; then
|
||||
if [ -n "${nut_names[${x}]}" ]; then
|
||||
nut_ids[$x]="$(fixid "${nut_names[${x}]}")"
|
||||
else
|
||||
nut_ids[$x]="$(fixid "$x")"
|
||||
fi
|
||||
continue
|
||||
fi
|
||||
error "cannot get information for NUT UPS '$x'."
|
||||
done
|
||||
|
||||
if [ ${#nut_ids[@]} -eq 0 ]; then
|
||||
# shellcheck disable=SC2154
|
||||
error "Cannot find UPSes - please set nut_ups='ups_name' in $confd/nut.conf"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
nut_create() {
|
||||
# create the charts
|
||||
local x
|
||||
|
||||
for x in "${nut_ids[@]}"; do
|
||||
cat << EOF
|
||||
CHART nut_$x.charge '' "UPS Charge" "percentage" ups nut.charge area $((nut_priority + 2)) $nut_update_every
|
||||
DIMENSION battery_charge charge absolute 1 100
|
||||
|
||||
CHART nut_$x.runtime '' "UPS Runtime" "seconds" ups nut.runtime area $((nut_priority + 3)) $nut_update_every
|
||||
DIMENSION battery_runtime runtime absolute 1 100
|
||||
|
||||
CHART nut_$x.battery_voltage '' "UPS Battery Voltage" "Volts" ups nut.battery.voltage line $((nut_priority + 4)) $nut_update_every
|
||||
DIMENSION battery_voltage voltage absolute 1 100
|
||||
DIMENSION battery_voltage_high high absolute 1 100
|
||||
DIMENSION battery_voltage_low low absolute 1 100
|
||||
DIMENSION battery_voltage_nominal nominal absolute 1 100
|
||||
|
||||
CHART nut_$x.input_voltage '' "UPS Input Voltage" "Volts" input nut.input.voltage line $((nut_priority + 5)) $nut_update_every
|
||||
DIMENSION input_voltage voltage absolute 1 100
|
||||
DIMENSION input_voltage_fault fault absolute 1 100
|
||||
DIMENSION input_voltage_nominal nominal absolute 1 100
|
||||
|
||||
CHART nut_$x.input_current '' "UPS Input Current" "Ampere" input nut.input.current line $((nut_priority + 6)) $nut_update_every
|
||||
DIMENSION input_current_nominal nominal absolute 1 100
|
||||
|
||||
CHART nut_$x.input_frequency '' "UPS Input Frequency" "Hz" input nut.input.frequency line $((nut_priority + 7)) $nut_update_every
|
||||
DIMENSION input_frequency frequency absolute 1 100
|
||||
DIMENSION input_frequency_nominal nominal absolute 1 100
|
||||
|
||||
CHART nut_$x.output_voltage '' "UPS Output Voltage" "Volts" output nut.output.voltage line $((nut_priority + 8)) $nut_update_every
|
||||
DIMENSION output_voltage voltage absolute 1 100
|
||||
|
||||
CHART nut_$x.load '' "UPS Load" "percentage" ups nut.load area $((nut_priority)) $nut_update_every
|
||||
DIMENSION load load absolute 1 100
|
||||
|
||||
CHART nut_$x.load_usage '' "UPS Load Usage" "Watts" ups nut.load_usage area $((nut_priority + 1)) $nut_update_every
|
||||
DIMENSION load_usage load_usage absolute 1 100
|
||||
|
||||
CHART nut_$x.temp '' "UPS Temperature" "temperature" ups nut.temperature line $((nut_priority + 9)) $nut_update_every
|
||||
DIMENSION temp temp absolute 1 100
|
||||
EOF
|
||||
|
||||
if [ "${nut_clients_chart}" = "1" ]; then
|
||||
cat << EOF2
|
||||
CHART nut_$x.clients '' "UPS Connected Clients" "clients" ups nut.clients area $((nut_priority + 10)) $nut_update_every
|
||||
DIMENSION clients '' absolute 1 1
|
||||
EOF2
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
nut_update() {
|
||||
# the first argument to this function is the microseconds since last update
|
||||
# pass this parameter to the BEGIN statement (see below).
|
||||
|
||||
# do all the work to collect / calculate the values
|
||||
# for each dimension
|
||||
# remember: KEEP IT SIMPLE AND SHORT
|
||||
|
||||
local i x
|
||||
for i in "${!nut_ids[@]}"; do
|
||||
x="${nut_ids[$i]}"
|
||||
nut_get "$i" | awk "
|
||||
BEGIN {
|
||||
battery_charge = 0;
|
||||
battery_runtime = 0;
|
||||
battery_voltage = 0;
|
||||
battery_voltage_high = 0;
|
||||
battery_voltage_low = 0;
|
||||
battery_voltage_nominal = 0;
|
||||
input_voltage = 0;
|
||||
input_voltage_fault = 0;
|
||||
input_voltage_nominal = 0;
|
||||
input_current_nominal = 0;
|
||||
input_frequency = 0;
|
||||
input_frequency_nominal = 0;
|
||||
output_voltage = 0;
|
||||
load = 0;
|
||||
load_usage = 0;
|
||||
nompower = 0;
|
||||
temp = 0;
|
||||
client = 0;
|
||||
do_clients = ${nut_clients_chart};
|
||||
}
|
||||
/^battery.charge: .*/ { battery_charge = \$2 * 100 };
|
||||
/^battery.runtime: .*/ { battery_runtime = \$2 * 100 };
|
||||
/^battery.voltage: .*/ { battery_voltage = \$2 * 100 };
|
||||
/^battery.voltage.high: .*/ { battery_voltage_high = \$2 * 100 };
|
||||
/^battery.voltage.low: .*/ { battery_voltage_low = \$2 * 100 };
|
||||
/^battery.voltage.nominal: .*/ { battery_voltage_nominal = \$2 * 100 };
|
||||
/^input.voltage: .*/ { input_voltage = \$2 * 100 };
|
||||
/^input.voltage.fault: .*/ { input_voltage_fault = \$2 * 100 };
|
||||
/^input.voltage.nominal: .*/ { input_voltage_nominal = \$2 * 100 };
|
||||
/^input.current.nominal: .*/ { input_current_nominal = \$2 * 100 };
|
||||
/^input.frequency: .*/ { input_frequency = \$2 * 100 };
|
||||
/^input.frequency.nominal: .*/ { input_frequency_nominal = \$2 * 100 };
|
||||
/^output.voltage: .*/ { output_voltage = \$2 * 100 };
|
||||
/^ups.load: .*/ { load = \$2 * 100 };
|
||||
/^ups.realpower.nominal: .*/ { nompower = \$2 };
|
||||
/^ups.temperature: .*/ { temp = \$2 * 100 };
|
||||
/^ups.connected_clients: .*/ { clients = \$2 };
|
||||
END {
|
||||
{ load_usage = nompower * load / 100 };
|
||||
|
||||
print \"BEGIN nut_$x.charge $1\";
|
||||
print \"SET battery_charge = \" battery_charge;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.runtime $1\";
|
||||
print \"SET battery_runtime = \" battery_runtime;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.battery_voltage $1\";
|
||||
print \"SET battery_voltage = \" battery_voltage;
|
||||
print \"SET battery_voltage_high = \" battery_voltage_high;
|
||||
print \"SET battery_voltage_low = \" battery_voltage_low;
|
||||
print \"SET battery_voltage_nominal = \" battery_voltage_nominal;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.input_voltage $1\";
|
||||
print \"SET input_voltage = \" input_voltage;
|
||||
print \"SET input_voltage_fault = \" input_voltage_fault;
|
||||
print \"SET input_voltage_nominal = \" input_voltage_nominal;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.input_current $1\";
|
||||
print \"SET input_current_nominal = \" input_current_nominal;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.input_frequency $1\";
|
||||
print \"SET input_frequency = \" input_frequency;
|
||||
print \"SET input_frequency_nominal = \" input_frequency_nominal;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.output_voltage $1\";
|
||||
print \"SET output_voltage = \" output_voltage;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.load $1\";
|
||||
print \"SET load = \" load;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.load_usage $1\";
|
||||
print \"SET load_usage = \" load_usage;
|
||||
print \"END\"
|
||||
|
||||
print \"BEGIN nut_$x.temp $1\";
|
||||
print \"SET temp = \" temp;
|
||||
print \"END\"
|
||||
|
||||
if(do_clients) {
|
||||
print \"BEGIN nut_$x.clients $1\";
|
||||
print \"SET clients = \" clients;
|
||||
print \"END\"
|
||||
}
|
||||
}"
|
||||
# shellcheck disable=2181
|
||||
[ $? -ne 0 ] && unset "nut_ids[$i]" && error "failed to get values for '$i', disabling it."
|
||||
done
|
||||
|
||||
[ ${#nut_ids[@]} -eq 0 ] && error "no UPSes left active." && return 1
|
||||
return 0
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
# no need for shebang - this file is loaded from charts.d.plugin
|
||||
|
||||
# netdata
|
||||
# real-time performance and health monitoring, done right!
|
||||
# (C) 2018 Costa Tsaousis <costa@tsaousis.gr>
|
||||
# GPL v3+
|
||||
|
||||
# a space separated list of UPS names
|
||||
# if empty, the list returned by 'upsc -l' will be used
|
||||
#nut_ups=
|
||||
|
||||
# each line represents an alias for one UPS
|
||||
# if empty, the FQDN will be used
|
||||
#nut_names["FQDN1"]="alias"
|
||||
#nut_names["FQDN2"]="alias"
|
||||
|
||||
# how much time in seconds, to wait for nut to respond
|
||||
#nut_timeout=2
|
||||
|
||||
# set this to 1, to enable another chart showing the number
|
||||
# of UPS clients connected to upsd
|
||||
#nut_clients_chart=1
|
||||
|
||||
# the data collection frequency
|
||||
# if unset, will inherit the netdata update frequency
|
||||
#nut_update_every=2
|
||||
|
||||
# the charts priority on the dashboard
|
||||
#nut_priority=90000
|
||||
|
||||
# the number of retries to do in case of failure
|
||||
# before disabling the module
|
||||
#nut_retries=10
|
|
@ -68,7 +68,6 @@ dist_healthconfig_DATA = \
|
|||
health.d/net.conf \
|
||||
health.d/netfilter.conf \
|
||||
health.d/nvme.conf \
|
||||
health.d/nut.conf \
|
||||
health.d/pihole.conf \
|
||||
health.d/plugin.conf \
|
||||
health.d/ping.conf \
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
# you can disable an alarm notification by setting the 'to' line to: silent
|
||||
|
||||
template: nut_10min_ups_load
|
||||
on: nut.load
|
||||
class: Utilization
|
||||
type: Power Supply
|
||||
component: UPS
|
||||
os: *
|
||||
hosts: *
|
||||
lookup: average -10m unaligned of load
|
||||
units: %
|
||||
every: 1m
|
||||
warn: $this > (($status >= $WARNING) ? (70) : (80))
|
||||
crit: $this > (($status == $CRITICAL) ? (85) : (95))
|
||||
delay: down 10m multiplier 1.5 max 1h
|
||||
summary: UPS load
|
||||
info: UPS average load over the last 10 minutes
|
||||
to: sitemgr
|
||||
|
||||
template: nut_ups_charge
|
||||
on: nut.charge
|
||||
class: Errors
|
||||
type: Power Supply
|
||||
component: UPS
|
||||
os: *
|
||||
hosts: *
|
||||
lookup: average -60s unaligned of battery_charge
|
||||
units: %
|
||||
every: 60s
|
||||
warn: $this < 75
|
||||
crit: $this < 40
|
||||
delay: down 10m multiplier 1.5 max 1h
|
||||
summary: UPS battery charge
|
||||
info: UPS average battery charge over the last minute
|
||||
to: sitemgr
|
||||
|
||||
template: nut_last_collected_secs
|
||||
on: nut.load
|
||||
class: Latency
|
||||
type: Power Supply
|
||||
component: UPS device
|
||||
calc: $now - $last_collected_t
|
||||
every: 10s
|
||||
units: seconds ago
|
||||
warn: $this > (($status >= $WARNING) ? ($update_every) : ( 5 * $update_every))
|
||||
crit: $this > (($status == $CRITICAL) ? ($update_every) : (60 * $update_every))
|
||||
delay: down 5m multiplier 1.5 max 1h
|
||||
summary: NUT last collected
|
||||
info: Number of seconds since the last successful data collection
|
||||
to: sitemgr
|
Loading…
Add table
Reference in a new issue