summaryrefslogtreecommitdiffstats
path: root/collectors/charts.d.plugin/ap
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2021-02-07 11:45:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2021-02-07 11:45:55 +0000
commita8220ab2d293bb7f4b014b79d16b2fb05090fa93 (patch)
tree77f0a30f016c0925cf7ee9292e644bba183c2774 /collectors/charts.d.plugin/ap
parentAdding upstream version 1.19.0. (diff)
downloadnetdata-a8220ab2d293bb7f4b014b79d16b2fb05090fa93.tar.xz
netdata-a8220ab2d293bb7f4b014b79d16b2fb05090fa93.zip
Adding upstream version 1.29.0.upstream/1.29.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--collectors/charts.d.plugin/ap/README.md19
-rw-r--r--collectors/charts.d.plugin/ap/ap.chart.sh60
-rw-r--r--collectors/charts.d.plugin/apache/README.md129
-rw-r--r--collectors/charts.d.plugin/apache/apache.chart.sh251
-rw-r--r--collectors/charts.d.plugin/apache/apache.conf30
-rw-r--r--collectors/charts.d.plugin/apcupsd/README.md20
-rw-r--r--collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh136
-rw-r--r--collectors/python.d.plugin/alarms/Makefile.inc (renamed from collectors/charts.d.plugin/apache/Makefile.inc)6
8 files changed, 138 insertions, 513 deletions
diff --git a/collectors/charts.d.plugin/ap/README.md b/collectors/charts.d.plugin/ap/README.md
index befe21eec..35a00d65d 100644
--- a/collectors/charts.d.plugin/ap/README.md
+++ b/collectors/charts.d.plugin/ap/README.md
@@ -1,4 +1,10 @@
-# Access Point Plugin (ap)
+<!--
+title: "Access point monitoring with Netdata"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/collectors/charts.d.plugin/ap/README.md
+sidebar_label: "Access points"
+-->
+
+# Access point monitoring with Netdata
The `ap` collector visualizes data related to access points.
@@ -76,8 +82,15 @@ Station 40:b8:37:5a:ed:5e (on wlan0)
## Configuration
-You can only set `ap_update_every=NUMBER` to `/etc/netdata/charts.d/ap.conf`, to give the data collection frequency.
-To edit this file on your system run `/etc/netdata/edit-config charts.d/ap.conf`.
+Edit the `charts.d/ap.conf` configuration file using `edit-config` from the Netdata [config
+directory](/docs/configure/nodes.md), which is typically at `/etc/netdata`.
+
+```bash
+cd /etc/netdata # Replace this path with your Netdata config directory, if different
+sudo ./edit-config charts.d/ap.conf
+```
+
+You can only set `ap_update_every=NUMBER` to change the data collection frequency.
## Auto-detection
diff --git a/collectors/charts.d.plugin/ap/ap.chart.sh b/collectors/charts.d.plugin/ap/ap.chart.sh
index a2d04c0a7..5dd787835 100644
--- a/collectors/charts.d.plugin/ap/ap.chart.sh
+++ b/collectors/charts.d.plugin/ap/ap.chart.sh
@@ -16,9 +16,9 @@ declare -A ap_devs=()
# _check is called once, to find out if this chart should be enabled or not
ap_check() {
- require_cmd iw || return 1
- local ev
- ev=$(run iw dev | awk '
+ require_cmd iw || return 1
+ local ev
+ ev=$(run iw dev | awk '
BEGIN {
i = "";
ssid = "";
@@ -41,26 +41,26 @@ ap_check() {
}
}
')
- eval "${ev}"
+ eval "${ev}"
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
+ # this should return:
+ # - 0 to enable the chart
+ # - 1 to disable the chart
- [ ${#ap_devs[@]} -gt 0 ] && return 0
- error "no devices found in AP mode, with 'iw dev'"
- return 1
+ [ ${#ap_devs[@]} -gt 0 ] && return 0
+ error "no devices found in AP mode, with 'iw dev'"
+ return 1
}
# _create is called once, to create the charts
ap_create() {
- local ssid dev
+ local ssid dev
- for dev in "${!ap_devs[@]}"; do
- ssid="${ap_devs[${dev}]}"
+ for dev in "${!ap_devs[@]}"; do
+ ssid="${ap_devs[${dev}]}"
- # create the chart with 3 dimensions
- cat <<EOF
+ # create the chart with 3 dimensions
+ cat << EOF
CHART ap_clients.${dev} '' "Connected clients to ${ssid} on ${dev}" "clients" ${dev} ap.clients line $((ap_priority + 1)) $ap_update_every
DIMENSION clients '' absolute 1 1
@@ -84,25 +84,25 @@ DIMENSION receive '' absolute 1 1000
DIMENSION transmit '' absolute -1 1000
DIMENSION expected 'expected throughput' absolute 1 1000
EOF
- done
+ done
- return 0
+ return 0
}
# _update is called continuously, to collect the values
ap_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- for dev in "${!ap_devs[@]}"; do
- echo
- echo "DEVICE ${dev}"
- iw "${dev}" station dump
- done | awk '
+ # the first argument to this function is the microseconds since last update
+ # pass this parameter to the BEGIN statement (see bellow).
+
+ # do all the work to collect / calculate the values
+ # for each dimension
+ # remember: KEEP IT SIMPLE AND SHORT
+
+ for dev in "${!ap_devs[@]}"; do
+ echo
+ echo "DEVICE ${dev}"
+ iw "${dev}" station dump
+ done | awk '
function zero_data() {
dev = "";
c = 0;
@@ -175,5 +175,5 @@ ap_update() {
}
'
- return 0
+ return 0
}
diff --git a/collectors/charts.d.plugin/apache/README.md b/collectors/charts.d.plugin/apache/README.md
deleted file mode 100644
index 53f02a5b8..000000000
--- a/collectors/charts.d.plugin/apache/README.md
+++ /dev/null
@@ -1,129 +0,0 @@
-# Apache
-
-> THIS MODULE IS OBSOLETE.
-> USE [THE PYTHON ONE](../../python.d.plugin/apache) - IT SUPPORTS MULTIPLE JOBS AND IT IS MORE EFFICIENT
-
----
-
-The `apache` collector visualizes key performance data for an apache web server.
-
-## Example Netdata charts
-
-For apache 2.2:
-
-![image](https://cloud.githubusercontent.com/assets/2662304/12530273/421c4d14-c1e2-11e5-9fb6-ca6d6dd3b1dd.png)
-
-For apache 2.4:
-
-![image](https://cloud.githubusercontent.com/assets/2662304/12530376/29ec26de-c1e6-11e5-9af1-e48aaf781795.png)
-
-## How it works
-
-It runs `curl "http://apache.host/server-status?auto` to fetch the current status of apache.
-
-It has been tested with apache 2.2 and apache 2.4. The latter also provides connections information (total and break down by status).
-
-Apache 2.2 response:
-
-```sh
-curl "http://127.0.0.1/server-status?auto"
-Total Accesses: 80057
-Total kBytes: 223017
-CPULoad: .018287
-Uptime: 64472
-ReqPerSec: 1.24173
-BytesPerSec: 3542.15
-BytesPerReq: 2852.59
-BusyWorkers: 1
-IdleWorkers: 49
-Scoreboard: _________________________......................................._W_______________________.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
-```
-
-Apache 2.4 response:
-
-```sh
-curl "http://127.0.0.1/server-status?auto"
-127.0.0.1
-ServerVersion: Apache/2.4.18 (Unix)
-ServerMPM: event
-Server Built: Dec 14 2015 08:05:54
-CurrentTime: Saturday, 23-Jan-2016 14:42:06 EET
-RestartTime: Saturday, 23-Jan-2016 04:57:13 EET
-ParentServerConfigGeneration: 2
-ParentServerMPMGeneration: 1
-ServerUptimeSeconds: 35092
-ServerUptime: 9 hours 44 minutes 52 seconds
-Load1: 0.32
-Load5: 0.32
-Load15: 0.27
-Total Accesses: 32403
-Total kBytes: 34464
-CPUUser: 30.37
-CPUSystem: 29.55
-CPUChildrenUser: 0
-CPUChildrenSystem: 0
-CPULoad: .170751
-Uptime: 35092
-ReqPerSec: .923373
-BytesPerSec: 1005.67
-BytesPerReq: 1089.13
-BusyWorkers: 1
-IdleWorkers: 99
-ConnsTotal: 0
-ConnsAsyncWriting: 0
-ConnsAsyncKeepAlive: 0
-ConnsAsyncClosing: 0
-Scoreboard: __________________________________________________________________________________________W_________............................................................................................................................................................................................................................................................................................................
-```
-
-From the apache status output it collects:
-
-- total accesses (incremental value, rendered as requests/s)
-- total bandwidth (incremental value, rendered as bandwidth/s)
-- requests per second (this appears to be calculated by apache as an average for its lifetime, while the one calculated by Netdata using the total accesses counter is real-time)
-- bytes per second (average for the lifetime of the apache server)
-- bytes per request (average for the lifetime of the apache server)
-- workers by status (`busy` and `idle`)
-- total connections (currently active connections - offered by apache 2.4+)
-- async connections per status (`keepalive`, `writing`, `closing` - offered by apache 2.4+)
-
-## Configuration
-
-The configuration is stored in `/etc/netdata/charts.d/apache.conf`.
-To edit this file on your system run `/etc/netdata/edit-config charts.d/apache.conf`.
-
-The internal default is:
-
-```sh
-# the URL your apache server is responding with mod_status information.
-apache_url="http://127.0.0.1:80/server-status?auto"
-
-# use this to set custom curl options you may need
-apache_curl_opts=
-
-# set this to a NUMBER to overwrite the update frequency
-# it is in seconds
-apache_update_every=
-```
-
-The default `apache_update_every` is configured in Netdata.
-
-## Auto-detection
-
-If you have configured your apache server to offer server-status information on localhost clients, the defaults should work fine.
-
-## Apache Configuration
-
-Apache configuration differs between distributions. Please check your distribution's documentation for information on enabling apache's `mod_status` module.
-
-If you are able to run successfully, by hand this command:
-
-```sh
-curl "http://127.0.0.1:80/server-status?auto"
-```
-
-Netdata will be able to do it too.
-
-Notice: You may need to have the default `000-default.conf` website enabled in order for the status mod to work.
-
-[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fapache%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
diff --git a/collectors/charts.d.plugin/apache/apache.chart.sh b/collectors/charts.d.plugin/apache/apache.chart.sh
deleted file mode 100644
index 7d09ee676..000000000
--- a/collectors/charts.d.plugin/apache/apache.chart.sh
+++ /dev/null
@@ -1,251 +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 Costa Tsaousis <costa@tsaousis.gr>
-#
-
-# the URL to download apache status info
-apache_url="http://127.0.0.1:80/server-status?auto"
-apache_curl_opts=
-
-# _update_every is a special variable - it holds the number of seconds
-# between the calls of the _update() function
-apache_update_every=
-
-apache_priority=60000
-
-# convert apache floating point values
-# to integer using this multiplier
-# this only affects precision - the values
-# will be in the proper units
-apache_decimal_detail=1000000
-
-declare -a apache_response=()
-apache_accesses=0
-apache_kbytes=0
-apache_reqpersec=0
-apache_bytespersec=0
-apache_bytesperreq=0
-apache_busyworkers=0
-apache_idleworkers=0
-apache_connstotal=0
-apache_connsasyncwriting=0
-apache_connsasynckeepalive=0
-apache_connsasyncclosing=0
-
-apache_keys_detected=0
-apache_has_conns=0
-apache_key_accesses=
-apache_key_kbytes=
-apache_key_reqpersec=
-apache_key_bytespersec=
-apache_key_bytesperreq=
-apache_key_busyworkers=
-apache_key_idleworkers=
-apache_key_scoreboard=
-apache_key_connstotal=
-apache_key_connsasyncwriting=
-apache_key_connsasynckeepalive=
-apache_key_connsasyncclosing=
-apache_detect() {
- local i=0
- for x in "${@}"; do
- case "${x}" in
- 'Total Accesses') apache_key_accesses=$((i + 1)) ;;
- 'Total kBytes') apache_key_kbytes=$((i + 1)) ;;
- 'ReqPerSec') apache_key_reqpersec=$((i + 1)) ;;
- 'BytesPerSec') apache_key_bytespersec=$((i + 1)) ;;
- 'BytesPerReq') apache_key_bytesperreq=$((i + 1)) ;;
- 'BusyWorkers') apache_key_busyworkers=$((i + 1)) ;;
- 'IdleWorkers') apache_key_idleworkers=$((i + 1)) ;;
- 'ConnsTotal') apache_key_connstotal=$((i + 1)) ;;
- 'ConnsAsyncWriting') apache_key_connsasyncwriting=$((i + 1)) ;;
- 'ConnsAsyncKeepAlive') apache_key_connsasynckeepalive=$((i + 1)) ;;
- 'ConnsAsyncClosing') apache_key_connsasyncclosing=$((i + 1)) ;;
- 'Scoreboard') apache_key_scoreboard=$((i)) ;;
- esac
-
- i=$((i + 1))
- done
-
- # we will not check of the Conns*
- # keys, since these are apache 2.4 specific
- [ -z "${apache_key_accesses}" ] && error "missing 'Total Accesses' from apache server: ${*}" && return 1
- [ -z "${apache_key_kbytes}" ] && error "missing 'Total kBytes' from apache server: ${*}" && return 1
- [ -z "${apache_key_reqpersec}" ] && error "missing 'ReqPerSec' from apache server: ${*}" && return 1
- [ -z "${apache_key_bytespersec}" ] && error "missing 'BytesPerSec' from apache server: ${*}" && return 1
- [ -z "${apache_key_bytesperreq}" ] && error "missing 'BytesPerReq' from apache server: ${*}" && return 1
- [ -z "${apache_key_busyworkers}" ] && error "missing 'BusyWorkers' from apache server: ${*}" && return 1
- [ -z "${apache_key_idleworkers}" ] && error "missing 'IdleWorkers' from apache server: ${*}" && return 1
- [ -z "${apache_key_scoreboard}" ] && error "missing 'Scoreboard' from apache server: ${*}" && return 1
-
- if [ ! -z "${apache_key_connstotal}" ] &&
- [ ! -z "${apache_key_connsasyncwriting}" ] &&
- [ ! -z "${apache_key_connsasynckeepalive}" ] &&
- [ ! -z "${apache_key_connsasyncclosing}" ]; then
- apache_has_conns=1
- else
- apache_has_conns=0
- fi
-
- return 0
-}
-
-apache_get() {
- local oIFS="${IFS}" ret
- # shellcheck disable=2207
- IFS=$':\n' apache_response=($(run curl -Ss ${apache_curl_opts} "${apache_url}"))
- ret=$?
- IFS="${oIFS}"
-
- if [ $ret -ne 0 ] || [ "${#apache_response[@]}" -eq 0 ]; then
- return 1
- fi
-
- # the last line on the apache output is "Scoreboard"
- # we use this label to detect that the output has a new word count
- if [ ${apache_keys_detected} -eq 0 ] || [ "${apache_response[${apache_key_scoreboard}]}" != "Scoreboard" ]; then
- apache_detect "${apache_response[@]}" || return 1
- apache_keys_detected=1
- fi
-
- apache_accesses="${apache_response[${apache_key_accesses}]}"
- apache_kbytes="${apache_response[${apache_key_kbytes}]}"
-
- float2int "${apache_response[${apache_key_reqpersec}]}" ${apache_decimal_detail}
- apache_reqpersec=${FLOAT2INT_RESULT}
-
- float2int "${apache_response[${apache_key_bytespersec}]}" ${apache_decimal_detail}
- apache_bytespersec=${FLOAT2INT_RESULT}
-
- float2int "${apache_response[${apache_key_bytesperreq}]}" ${apache_decimal_detail}
- apache_bytesperreq=${FLOAT2INT_RESULT}
-
- apache_busyworkers="${apache_response[${apache_key_busyworkers}]}"
- apache_idleworkers="${apache_response[${apache_key_idleworkers}]}"
-
- if
- [ -z "${apache_accesses}" ] ||
- [ -z "${apache_kbytes}" ] ||
- [ -z "${apache_reqpersec}" ] ||
- [ -z "${apache_bytespersec}" ] ||
- [ -z "${apache_bytesperreq}" ] ||
- [ -z "${apache_busyworkers}" ]
- [ -z "${apache_idleworkers}" ]
- then
- error "empty values got from apache server: ${apache_response[*]}"
- return 1
- fi
-
- if [ ${apache_has_conns} -eq 1 ]; then
- apache_connstotal="${apache_response[${apache_key_connstotal}]}"
- apache_connsasyncwriting="${apache_response[${apache_key_connsasyncwriting}]}"
- apache_connsasynckeepalive="${apache_response[${apache_key_connsasynckeepalive}]}"
- apache_connsasyncclosing="${apache_response[${apache_key_connsasyncclosing}]}"
- fi
-
- return 0
-}
-
-# _check is called once, to find out if this chart should be enabled or not
-apache_check() {
-
- apache_get
- # shellcheck disable=2181
- if [ $? -ne 0 ]; then
- # shellcheck disable=2154
- error "cannot find stub_status on URL '${apache_url}'. Please set apache_url='http://apache.server:80/server-status?auto' in $confd/apache.conf"
- return 1
- fi
-
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- return 0
-}
-
-# _create is called once, to create the charts
-apache_create() {
- cat <<EOF
-CHART apache_local.bytesperreq '' "apache Lifetime Avg. Response Size" "bytes/request" statistics apache.bytesperreq area $((apache_priority + 8)) $apache_update_every
-DIMENSION size '' absolute 1 ${apache_decimal_detail}
-CHART apache_local.workers '' "apache Workers" "workers" workers apache.workers stacked $((apache_priority + 5)) $apache_update_every
-DIMENSION idle '' absolute 1 1
-DIMENSION busy '' absolute 1 1
-CHART apache_local.reqpersec '' "apache Lifetime Avg. Requests/s" "requests/s" statistics apache.reqpersec line $((apache_priority + 6)) $apache_update_every
-DIMENSION requests '' absolute 1 ${apache_decimal_detail}
-CHART apache_local.bytespersec '' "apache Lifetime Avg. Bandwidth/s" "kilobits/s" statistics apache.bytespersec area $((apache_priority + 7)) $apache_update_every
-DIMENSION sent '' absolute 8 $((apache_decimal_detail * 1000))
-CHART apache_local.requests '' "apache Requests" "requests/s" requests apache.requests line $((apache_priority + 1)) $apache_update_every
-DIMENSION requests '' incremental 1 1
-CHART apache_local.net '' "apache Bandwidth" "kilobits/s" bandwidth apache.net area $((apache_priority + 3)) $apache_update_every
-DIMENSION sent '' incremental 8 1
-EOF
-
- if [ ${apache_has_conns} -eq 1 ]; then
- cat <<EOF2
-CHART apache_local.connections '' "apache Connections" "connections" connections apache.connections line $((apache_priority + 2)) $apache_update_every
-DIMENSION connections '' absolute 1 1
-CHART apache_local.conns_async '' "apache Async Connections" "connections" connections apache.conns_async stacked $((apache_priority + 4)) $apache_update_every
-DIMENSION keepalive '' absolute 1 1
-DIMENSION closing '' absolute 1 1
-DIMENSION writing '' absolute 1 1
-EOF2
- fi
-
- return 0
-}
-
-# _update is called continuously, to collect the values
-apache_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
-
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
-
- apache_get || return 1
-
- # write the result of the work.
- cat <<VALUESEOF
-BEGIN apache_local.requests $1
-SET requests = $((apache_accesses))
-END
-BEGIN apache_local.net $1
-SET sent = $((apache_kbytes))
-END
-BEGIN apache_local.reqpersec $1
-SET requests = $((apache_reqpersec))
-END
-BEGIN apache_local.bytespersec $1
-SET sent = $((apache_bytespersec))
-END
-BEGIN apache_local.bytesperreq $1
-SET size = $((apache_bytesperreq))
-END
-BEGIN apache_local.workers $1
-SET idle = $((apache_idleworkers))
-SET busy = $((apache_busyworkers))
-END
-VALUESEOF
-
- if [ ${apache_has_conns} -eq 1 ]; then
- cat <<VALUESEOF2
-BEGIN apache_local.connections $1
-SET connections = $((apache_connstotal))
-END
-BEGIN apache_local.conns_async $1
-SET keepalive = $((apache_connsasynckeepalive))
-SET closing = $((apache_connsasyncclosing))
-SET writing = $((apache_connsasyncwriting))
-END
-VALUESEOF2
- fi
-
- return 0
-}
diff --git a/collectors/charts.d.plugin/apache/apache.conf b/collectors/charts.d.plugin/apache/apache.conf
deleted file mode 100644
index 50914cf32..000000000
--- a/collectors/charts.d.plugin/apache/apache.conf
+++ /dev/null
@@ -1,30 +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+
-
-# THIS PLUGIN IS DEPRECATED
-# USE THE PYTHON.D ONE
-
-# the URL to download apache status info
-#apache_url="http://127.0.0.1:80/server-status?auto"
-#apache_curl_opts=
-
-# convert apache floating point values
-# to integer using this multiplier
-# this only affects precision - the values
-# will be in the proper units
-#apache_decimal_detail=1000000
-
-# the data collection frequency
-# if unset, will inherit the netdata update frequency
-#apache_update_every=
-
-# the charts priority on the dashboard
-#apache_priority=60000
-
-# the number of retries to do in case of failure
-# before disabling the module
-#apache_retries=10
diff --git a/collectors/charts.d.plugin/apcupsd/README.md b/collectors/charts.d.plugin/apcupsd/README.md
index 51bb6eccd..b5b41e84d 100644
--- a/collectors/charts.d.plugin/apcupsd/README.md
+++ b/collectors/charts.d.plugin/apcupsd/README.md
@@ -1,7 +1,21 @@
-# apcupsd
+<!--
+title: "APC UPS monitoring with Netdata"
+custom_edit_url: https://github.com/netdata/netdata/edit/master/collectors/charts.d.plugin/apcupsd/README.md
+sidebar_label: "APC UPS"
+-->
-_Under construction_
+# APC UPS monitoring with Netdata
-Collects UPS metrics
+Monitors different APC UPS models and retrieves status information using `apcaccess` tool.
+
+## Configuration
+
+Edit the `charts.d/apcupsd.conf` configuration file using `edit-config` from the Netdata [config
+directory](/docs/configure/nodes.md), which is typically at `/etc/netdata`.
+
+```bash
+cd /etc/netdata # Replace this path with your Netdata config directory, if different
+sudo ./edit-config charts.d/apcupsd.conf
+```
[![analytics](https://www.google-analytics.com/collect?v=1&aip=1&t=pageview&_s=1&ds=github&dr=https%3A%2F%2Fgithub.com%2Fnetdata%2Fnetdata&dl=https%3A%2F%2Fmy-netdata.io%2Fgithub%2Fcollectors%2Fcharts.d.plugin%2Fapcupsd%2FREADME&_u=MAC~&cid=5792dfd7-8dc4-476b-af31-da2fdb9f93d2&tid=UA-64295674-3)](<>)
diff --git a/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh b/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh
index 31ff93160..014a9c1de 100644
--- a/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh
+++ b/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh
@@ -11,7 +11,7 @@ apcupsd_ip=
apcupsd_port=
declare -A apcupsd_sources=(
- ["local"]="127.0.0.1:3551"
+ ["local"]="127.0.0.1:3551"
)
# how frequently to collect UPS data
@@ -23,55 +23,63 @@ apcupsd_timeout=3
apcupsd_priority=90000
apcupsd_get() {
- run -t $apcupsd_timeout apcaccess status "$1"
+ run -t $apcupsd_timeout apcaccess status "$1"
+}
+
+is_ups_alive() {
+ local status
+ status="$(apcupsd_get "$1" | sed -e 's/STATUS.*: //' -e 't' -e 'd')"
+ case "$status" in
+ "" | "COMMLOST" | "SHUTTING DOWN") return 1 ;;
+ *) return 0 ;;
+ esac
}
apcupsd_check() {
- # this should return:
- # - 0 to enable the chart
- # - 1 to disable the chart
-
- require_cmd apcaccess || return 1
-
- # backwards compatibility
- if [ "${apcupsd_ip}:${apcupsd_port}" != ":" ]; then
- apcupsd_sources["local"]="${apcupsd_ip}:${apcupsd_port}"
- fi
-
- local host working=0 failed=0
- for host in "${!apcupsd_sources[@]}"; do
- run apcupsd_get "${apcupsd_sources[${host}]}" >/dev/null
- # shellcheck disable=2181
- if [ $? -ne 0 ]; then
- error "cannot get information for apcupsd server ${host} on ${apcupsd_sources[${host}]}."
- failed=$((failed + 1))
- else
- apcupsd_status="$(apcupsd_get ${apcupsd_sources[${host}]} | awk '/^STATUS.*/{ print $3 }')"
- if [ "${apcupsd_status}" != "ONLINE" ] && [ "${apcupsd_status}" != "ONBATT" ]; then
- error "APC UPS ${host} on ${apcupsd_sources[${host}]} is not online."
- failed=$((failed + 1))
- else
- working=$((working + 1))
- fi
- fi
- done
-
- if [ ${working} -eq 0 ]; then
- error "No APC UPSes found available."
- return 1
- fi
-
- return 0
+ # this should return:
+ # - 0 to enable the chart
+ # - 1 to disable the chart
+
+ require_cmd apcaccess || return 1
+
+ # backwards compatibility
+ if [ "${apcupsd_ip}:${apcupsd_port}" != ":" ]; then
+ apcupsd_sources["local"]="${apcupsd_ip}:${apcupsd_port}"
+ fi
+
+ local host working=0 failed=0
+ for host in "${!apcupsd_sources[@]}"; do
+ run apcupsd_get "${apcupsd_sources[${host}]}" > /dev/null
+ # shellcheck disable=2181
+ if [ $? -ne 0 ]; then
+ error "cannot get information for apcupsd server ${host} on ${apcupsd_sources[${host}]}."
+ failed=$((failed + 1))
+ else
+ if ! is_ups_alive ${apcupsd_sources[${host}]}; then
+ error "APC UPS ${host} on ${apcupsd_sources[${host}]} is not online."
+ failed=$((failed + 1))
+ else
+ working=$((working + 1))
+ fi
+ fi
+ done
+
+ if [ ${working} -eq 0 ]; then
+ error "No APC UPSes found available."
+ return 1
+ fi
+
+ return 0
}
apcupsd_create() {
- local host src
- for host in "${!apcupsd_sources[@]}"; do
- src=${apcupsd_sources[${host}]}
+ local host src
+ for host in "${!apcupsd_sources[@]}"; do
+ src=${apcupsd_sources[${host}]}
- # create the charts
- cat <<EOF
+ # create the charts
+ cat << EOF
CHART apcupsd_${host}.charge '' "UPS Charge for ${host} on ${src}" "percentage" ups apcupsd.charge area $((apcupsd_priority + 1)) $apcupsd_update_every
DIMENSION battery_charge charge absolute 1 100
@@ -104,21 +112,21 @@ CHART apcupsd_${host}.online '' "UPS ONLINE flag for ${host} on ${src}" "boolean
DIMENSION online online absolute 0 1
EOF
- done
- return 0
+ done
+ return 0
}
apcupsd_update() {
- # the first argument to this function is the microseconds since last update
- # pass this parameter to the BEGIN statement (see bellow).
+ # the first argument to this function is the microseconds since last update
+ # pass this parameter to the BEGIN statement (see bellow).
- # do all the work to collect / calculate the values
- # for each dimension
- # remember: KEEP IT SIMPLE AND SHORT
+ # do all the work to collect / calculate the values
+ # for each dimension
+ # remember: KEEP IT SIMPLE AND SHORT
- local host working=0 failed=0
- for host in "${!apcupsd_sources[@]}"; do
- apcupsd_get "${apcupsd_sources[${host}]}" | awk "
+ local host working=0 failed=0
+ for host in "${!apcupsd_sources[@]}"; do
+ apcupsd_get "${apcupsd_sources[${host}]}" | awk "
BEGIN {
battery_charge = 0;
@@ -190,16 +198,16 @@ END {
print \"END\"
}
}"
- # shellcheck disable=SC2181
- if [ $? -ne 0 ]; then
- failed=$((failed + 1))
- error "failed to get values for APC UPS ${host} on ${apcupsd_sources[${host}]}" && return 1
- else
- working=$((working + 1))
- fi
- done
-
- [ $working -eq 0 ] && error "failed to get values from all APC UPSes" && return 1
-
- return 0
+ # shellcheck disable=SC2181
+ if [ $? -ne 0 ]; then
+ failed=$((failed + 1))
+ error "failed to get values for APC UPS ${host} on ${apcupsd_sources[${host}]}" && return 1
+ else
+ working=$((working + 1))
+ fi
+ done
+
+ [ $working -eq 0 ] && error "failed to get values from all APC UPSes" && return 1
+
+ return 0
}
diff --git a/collectors/charts.d.plugin/apache/Makefile.inc b/collectors/python.d.plugin/alarms/Makefile.inc
index 4b360eae0..c2de11724 100644
--- a/collectors/charts.d.plugin/apache/Makefile.inc
+++ b/collectors/python.d.plugin/alarms/Makefile.inc
@@ -5,9 +5,9 @@
# IT IS REQUIRED TO REFERENCE ALL FILES RELATIVE TO THE PARENT
# install these files
-dist_charts_DATA += apache/apache.chart.sh
-dist_chartsconfig_DATA += apache/apache.conf
+dist_python_DATA += alarms/alarms.chart.py
+dist_pythonconfig_DATA += alarms/alarms.conf
# do not install these files, but include them in the distribution
-dist_noinst_DATA += apache/README.md apache/Makefile.inc
+dist_noinst_DATA += alarms/README.md alarms/Makefile.inc