From 83ba6762cc43d9db581b979bb5e3445669e46cc2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 25 Nov 2024 18:33:56 +0100 Subject: Merging upstream version 2.0.3+dfsg (Closes: #923993, #1042533, #1045145). Signed-off-by: Daniel Baumann --- src/collectors/charts.d.plugin/README.md | 9 +- src/collectors/charts.d.plugin/apcupsd/README.md | 1 - .../charts.d.plugin/apcupsd/apcupsd.chart.sh | 306 --------------------- .../charts.d.plugin/apcupsd/apcupsd.conf | 25 -- .../apcupsd/integrations/apc_ups.md | 237 ---------------- .../charts.d.plugin/apcupsd/metadata.yaml | 256 ----------------- src/collectors/charts.d.plugin/example/README.md | 9 - .../libreswan/integrations/libreswan.md | 6 +- .../opensips/integrations/opensips.md | 6 +- src/collectors/charts.d.plugin/sensors/README.md | 1 - .../sensors/integrations/linux_sensors_sysfs.md | 235 ---------------- .../charts.d.plugin/sensors/metadata.yaml | 182 ------------ .../charts.d.plugin/sensors/sensors.chart.sh | 250 ----------------- .../charts.d.plugin/sensors/sensors.conf | 32 --- 14 files changed, 10 insertions(+), 1545 deletions(-) delete mode 120000 src/collectors/charts.d.plugin/apcupsd/README.md delete mode 100644 src/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh delete mode 100644 src/collectors/charts.d.plugin/apcupsd/apcupsd.conf delete mode 100644 src/collectors/charts.d.plugin/apcupsd/integrations/apc_ups.md delete mode 100644 src/collectors/charts.d.plugin/apcupsd/metadata.yaml delete mode 120000 src/collectors/charts.d.plugin/sensors/README.md delete mode 100644 src/collectors/charts.d.plugin/sensors/integrations/linux_sensors_sysfs.md delete mode 100644 src/collectors/charts.d.plugin/sensors/metadata.yaml delete mode 100644 src/collectors/charts.d.plugin/sensors/sensors.chart.sh delete mode 100644 src/collectors/charts.d.plugin/sensors/sensors.conf (limited to 'src/collectors/charts.d.plugin') diff --git a/src/collectors/charts.d.plugin/README.md b/src/collectors/charts.d.plugin/README.md index 3558985db..309f60e63 100644 --- a/src/collectors/charts.d.plugin/README.md +++ b/src/collectors/charts.d.plugin/README.md @@ -7,8 +7,7 @@ 3. It communicates with Netdata via a unidirectional pipe (sending data to the `netdata` daemon) 4. Supports any number of data collection **modules** -To better understand the guidelines and the API behind our External plugins, please have a look at the [Introduction to External plugins](/src/collectors/plugins.d/README.md) prior to reading this page. - +To better understand the guidelines and the API behind our External plugins, please have a look at the [Introduction to External plugins](/src/plugins.d/README.md) prior to reading this page. `charts.d.plugin` has been designed so that the actual script that will do data collection will be permanently in memory, collecting data with as little overheads as possible @@ -21,11 +20,11 @@ By default, `charts.d.plugin` is not included as part of the install when using ## Configuration -`charts.d.plugin` itself can be [configured](/docs/netdata-agent/configuration/README.md#edit-netdataconf)using the configuration file `/etc/netdata/charts.d.conf`. This file is also a BASH script. +`charts.d.plugin` itself can be [configured](/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config)using the configuration file `/etc/netdata/charts.d.conf`. This file is also a BASH script. In this file, you can place statements like this: -```conf +```text enable_all_charts="yes" X="yes" Y="no" @@ -121,7 +120,7 @@ Using the above, if the command `mysql` is not available in the system, the `mys `fixid()` will get a string and return a properly formatted id for a chart or dimension. This is an expensive function that should not be used in `X_update()`. -You can keep the generated id in a BASH associative array to have the values availables in `X_update()`, like this: +You can keep the generated id in a BASH associative array to have the values available in `X_update()`, like this: ```sh declare -A X_ids=() diff --git a/src/collectors/charts.d.plugin/apcupsd/README.md b/src/collectors/charts.d.plugin/apcupsd/README.md deleted file mode 120000 index fc6681fe6..000000000 --- a/src/collectors/charts.d.plugin/apcupsd/README.md +++ /dev/null @@ -1 +0,0 @@ -integrations/apc_ups.md \ No newline at end of file diff --git a/src/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh b/src/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh deleted file mode 100644 index 58132024b..000000000 --- a/src/collectors/charts.d.plugin/apcupsd/apcupsd.chart.sh +++ /dev/null @@ -1,306 +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 -# - -apcupsd_ip= -apcupsd_port= - -declare -A apcupsd_sources=( - ["local"]="127.0.0.1:3551" -) - -# how frequently to collect UPS data -apcupsd_update_every=10 - -apcupsd_timeout=3 - -# the priority of apcupsd related to other charts -apcupsd_priority=90000 - -apcupsd_get() { - 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 - 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 - for host in "${!apcupsd_sources[@]}"; do - # create the charts - cat < -# GPL v3+ - -# add all your APC UPSes in this array - uncomment it too -#declare -A apcupsd_sources=( -# ["local"]="127.0.0.1:3551" -#) - -# how long to wait for apcupsd to respond -#apcupsd_timeout=3 - -# the data collection frequency -# if unset, will inherit the netdata update frequency -#apcupsd_update_every=10 - -# the charts priority on the dashboard -#apcupsd_priority=90000 - -# the number of retries to do in case of failure -# before disabling the module -#apcupsd_retries=10 diff --git a/src/collectors/charts.d.plugin/apcupsd/integrations/apc_ups.md b/src/collectors/charts.d.plugin/apcupsd/integrations/apc_ups.md deleted file mode 100644 index fdf1ccc9e..000000000 --- a/src/collectors/charts.d.plugin/apcupsd/integrations/apc_ups.md +++ /dev/null @@ -1,237 +0,0 @@ - - -# APC UPS - - - - - -Plugin: charts.d.plugin -Module: apcupsd - - - -## Overview - -Monitor APC UPS performance with Netdata for optimal uninterruptible power supply operations. Enhance your power supply reliability with real-time APC UPS metrics. - -The collector uses the `apcaccess` tool to contact the `apcupsd` daemon and get the APC UPS statistics. - -This collector is supported on all platforms. - -This collector only supports collecting metrics from a single instance of this integration. - - -### Default Behavior - -#### Auto-Detection - -By default, with no configuration provided, the collector will try to contact 127.0.0.1:3551 with using the `apcaccess` utility. - -#### 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 | -|:------|:----------|:----| -| apcupsd.charge | charge | percentage | -| apcupsd.battery.voltage | voltage, nominal | Volts | -| apcupsd.input.voltage | voltage, min, max | Volts | -| apcupsd.output.voltage | absolute, nominal | Volts | -| apcupsd.input.frequency | frequency | Hz | -| apcupsd.load | load | percentage | -| apcupsd.load_usage | load | Watts | -| apcupsd.temperature | temp | Celsius | -| apcupsd.time | time | Minutes | -| apcupsd.online | online | boolean | -| apcupsd.selftest | OK, NO, BT, NG | status | -| apcupsd.status | ONLINE, ONBATT, OVERLOAD, LOWBATT, REPLACEBATT, NOBATT, SLAVE, SLAVEDOWN, COMMLOST, CAL, TRIM, BOOST, SHUTTING_DOWN | status | - - - -## Alerts - - -The following alerts are available: - -| Alert name | On metric | Description | -|:------------|:----------|:------------| -| [ apcupsd_ups_charge ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.charge | average UPS charge over the last minute | -| [ apcupsd_10min_ups_load ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.load | average UPS load over the last 10 minutes | -| [ apcupsd_last_collected_secs ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.load | number of seconds since the last successful data collection | -| [ apcupsd_selftest_warning ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.selftest | self-test failed due to insufficient battery capacity or due to overload. | -| [ apcupsd_status_onbatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS has switched to battery power because the input power has failed | -| [ apcupsd_status_overload ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS is overloaded and cannot supply enough power to the load | -| [ apcupsd_status_lowbatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS battery is low and needs to be recharged | -| [ apcupsd_status_replacebatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS battery has reached the end of its lifespan and needs to be replaced | -| [ apcupsd_status_nobatt ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS has no battery | -| [ apcupsd_status_commlost ](https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf) | apcupsd.status | APC UPS communication link is lost | - - -## Setup - -### Prerequisites - -#### Install charts.d plugin - -If [using our official native DEB/RPM packages](/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed. - - -#### Required software - -Make sure the `apcaccess` and `apcupsd` are installed and running. - - -### Configuration - -#### File - -The configuration file name for this integration is `charts.d/apcupsd.conf`. - - -You can edit the configuration file using the `edit-config` script from the -Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory). - -```bash -cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata -sudo ./edit-config charts.d/apcupsd.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 apcupsd collector. - - -
Config options - -| Name | Description | Default | Required | -|:----|:-----------|:-------|:--------:| -| apcupsd_sources | This is an array of apcupsd sources. You can have multiple entries there. Please refer to the example below on how to set it. | 127.0.0.1:3551 | no | -| apcupsd_timeout | How long to wait for apcupsd to respond. | 3 | no | -| apcupsd_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 1 | no | -| apcupsd_priority | The charts priority on the dashboard. | 90000 | no | -| apcupsd_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no | - -
- -#### Examples - -##### Multiple apcupsd sources - -Specify a multiple apcupsd sources along with a custom update interval - -```yaml -# add all your APC UPSes in this array - uncomment it too -declare -A apcupsd_sources=( - ["local"]="127.0.0.1:3551", - ["remote"]="1.2.3.4:3551" -) - -# how long to wait for apcupsd to respond -#apcupsd_timeout=3 - -# the data collection frequency -# if unset, will inherit the netdata update frequency -apcupsd_update_every=5 - -# the charts priority on the dashboard -#apcupsd_priority=90000 - -# the number of retries to do in case of failure -# before disabling the module -#apcupsd_retries=10 - -``` - - -## Troubleshooting - -### Debug Mode - - -To troubleshoot issues with the `apcupsd` 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 apcupsd - ``` - -### Getting Logs - -If you're encountering problems with the `apcupsd` collector, follow these steps to retrieve logs and identify potential issues: - -- **Run the command** specific to your system (systemd, non-systemd, or Docker container). -- **Examine the output** for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem. - -#### System with systemd - -Use the following command to view logs generated since the last Netdata service restart: - -```bash -journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep apcupsd -``` - -#### System without systemd - -Locate the collector log file, typically at `/var/log/netdata/collector.log`, and use `grep` to filter for collector's name: - -```bash -grep apcupsd /var/log/netdata/collector.log -``` - -**Note**: This method shows logs from all restarts. Focus on the **latest entries** for troubleshooting current issues. - -#### Docker Container - -If your Netdata runs in a Docker container named "netdata" (replace if different), use this command: - -```bash -docker logs netdata 2>&1 | grep apcupsd -``` - - diff --git a/src/collectors/charts.d.plugin/apcupsd/metadata.yaml b/src/collectors/charts.d.plugin/apcupsd/metadata.yaml deleted file mode 100644 index 01d86e795..000000000 --- a/src/collectors/charts.d.plugin/apcupsd/metadata.yaml +++ /dev/null @@ -1,256 +0,0 @@ -plugin_name: charts.d.plugin -modules: - - meta: - plugin_name: charts.d.plugin - module_name: apcupsd - monitored_instance: - name: APC UPS - link: "https://www.apc.com" - categories: - - data-collection.ups - icon_filename: "apc.svg" - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: "" - keywords: - - ups - - apc - - power - - supply - - battery - - apcupsd - most_popular: false - overview: - data_collection: - metrics_description: "Monitor APC UPS performance with Netdata for optimal uninterruptible power supply operations. Enhance your power supply reliability with real-time APC UPS metrics." - method_description: "The collector uses the `apcaccess` tool to contact the `apcupsd` daemon and get the APC UPS statistics." - supported_platforms: - include: [] - exclude: [] - multi_instance: false - additional_permissions: - description: "" - default_behavior: - auto_detection: - description: "By default, with no configuration provided, the collector will try to contact 127.0.0.1:3551 with using the `apcaccess` utility." - limits: - description: "" - performance_impact: - description: "" - setup: - prerequisites: - list: - - title: "Install charts.d plugin" - description: | - If [using our official native DEB/RPM packages](/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed. - - title: "Required software" - description: "Make sure the `apcaccess` and `apcupsd` are installed and running." - configuration: - file: - name: charts.d/apcupsd.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 apcupsd collector. - folding: - title: "Config options" - enabled: true - list: - - name: apcupsd_sources - description: This is an array of apcupsd sources. You can have multiple entries there. Please refer to the example below on how to set it. - default_value: "127.0.0.1:3551" - required: false - - name: apcupsd_timeout - description: How long to wait for apcupsd to respond. - default_value: 3 - required: false - - name: apcupsd_update_every - description: The data collection frequency. If unset, will inherit the netdata update frequency. - default_value: 1 - required: false - - name: apcupsd_priority - description: The charts priority on the dashboard. - default_value: 90000 - required: false - - name: apcupsd_retries - description: The number of retries to do in case of failure before disabling the collector. - default_value: 10 - required: false - examples: - folding: - enabled: false - title: "Config" - list: - - name: Multiple apcupsd sources - description: Specify a multiple apcupsd sources along with a custom update interval - config: | - # add all your APC UPSes in this array - uncomment it too - declare -A apcupsd_sources=( - ["local"]="127.0.0.1:3551", - ["remote"]="1.2.3.4:3551" - ) - - # how long to wait for apcupsd to respond - #apcupsd_timeout=3 - - # the data collection frequency - # if unset, will inherit the netdata update frequency - apcupsd_update_every=5 - - # the charts priority on the dashboard - #apcupsd_priority=90000 - - # the number of retries to do in case of failure - # before disabling the module - #apcupsd_retries=10 - troubleshooting: - problems: - list: [] - alerts: - - name: apcupsd_ups_charge - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.charge - info: average UPS charge over the last minute - os: "*" - - name: apcupsd_10min_ups_load - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.load - info: average UPS load over the last 10 minutes - os: "*" - - name: apcupsd_last_collected_secs - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.load - info: number of seconds since the last successful data collection - - name: apcupsd_selftest_warning - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.selftest - info: self-test failed due to insufficient battery capacity or due to overload. - - name: apcupsd_status_onbatt - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.status - info: APC UPS has switched to battery power because the input power has failed - - name: apcupsd_status_overload - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.status - info: APC UPS is overloaded and cannot supply enough power to the load - - name: apcupsd_status_lowbatt - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.status - info: APC UPS battery is low and needs to be recharged - - name: apcupsd_status_replacebatt - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.status - info: APC UPS battery has reached the end of its lifespan and needs to be replaced - - name: apcupsd_status_nobatt - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.status - info: APC UPS has no battery - - name: apcupsd_status_commlost - link: https://github.com/netdata/netdata/blob/master/src/health/health.d/apcupsd.conf - metric: apcupsd.status - info: APC UPS communication link is lost - 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: apcupsd.charge - description: UPS Charge - unit: "percentage" - chart_type: area - dimensions: - - name: charge - - name: apcupsd.battery.voltage - description: UPS Battery Voltage - unit: "Volts" - chart_type: line - dimensions: - - name: voltage - - name: nominal - - name: apcupsd.input.voltage - description: UPS Input Voltage - unit: "Volts" - chart_type: line - dimensions: - - name: voltage - - name: min - - name: max - - name: apcupsd.output.voltage - description: UPS Output Voltage - unit: "Volts" - chart_type: line - dimensions: - - name: absolute - - name: nominal - - name: apcupsd.input.frequency - description: UPS Input Voltage - unit: "Hz" - chart_type: line - dimensions: - - name: frequency - - name: apcupsd.load - description: UPS Load - unit: "percentage" - chart_type: area - dimensions: - - name: load - - name: apcupsd.load_usage - description: UPS Load Usage - unit: "Watts" - chart_type: area - dimensions: - - name: load - - name: apcupsd.temperature - description: UPS Temperature - unit: "Celsius" - chart_type: line - dimensions: - - name: temp - - name: apcupsd.time - description: UPS Time Remaining - unit: "Minutes" - chart_type: area - dimensions: - - name: time - - name: apcupsd.online - description: UPS ONLINE flag - unit: "boolean" - chart_type: line - dimensions: - - name: online - - name: apcupsd.selftest - description: UPS Self-Test status - unit: status - chart_type: line - dimensions: - - name: OK - - name: NO - - name: BT - - name: NG - - name: apcupsd.status - description: UPS Status - unit: status - chart_type: line - dimensions: - - name: ONLINE - - name: ONBATT - - name: OVERLOAD - - name: LOWBATT - - name: REPLACEBATT - - name: NOBATT - - name: SLAVE - - name: SLAVEDOWN - - name: COMMLOST - - name: CAL - - name: TRIM - - name: BOOST - - name: SHUTTING_DOWN diff --git a/src/collectors/charts.d.plugin/example/README.md b/src/collectors/charts.d.plugin/example/README.md index a16180581..d676cea77 100644 --- a/src/collectors/charts.d.plugin/example/README.md +++ b/src/collectors/charts.d.plugin/example/README.md @@ -1,12 +1,3 @@ - - # Example If you want to understand how charts.d data collector functions, check out the [charts.d example](https://raw.githubusercontent.com/netdata/netdata/master/src/collectors/charts.d.plugin/example/example.chart.sh). diff --git a/src/collectors/charts.d.plugin/libreswan/integrations/libreswan.md b/src/collectors/charts.d.plugin/libreswan/integrations/libreswan.md index fa8eb7a97..96691443b 100644 --- a/src/collectors/charts.d.plugin/libreswan/integrations/libreswan.md +++ b/src/collectors/charts.d.plugin/libreswan/integrations/libreswan.md @@ -79,7 +79,7 @@ There are no alerts configured by default for this integration. #### Install charts.d plugin -If [using our official native DEB/RPM packages](/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed. +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. #### Permissions to execute `ipsec` @@ -115,8 +115,8 @@ Make sure the path `/sbin/ipsec` matches your setup (execute `which ipsec` to fi The configuration file name for this integration is `charts.d/libreswan.conf`. -You can edit the configuration file using the `edit-config` script from the -Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory). +You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script from the +Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#the-netdata-config-directory). ```bash cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata diff --git a/src/collectors/charts.d.plugin/opensips/integrations/opensips.md b/src/collectors/charts.d.plugin/opensips/integrations/opensips.md index 7fa610eb4..13b573627 100644 --- a/src/collectors/charts.d.plugin/opensips/integrations/opensips.md +++ b/src/collectors/charts.d.plugin/opensips/integrations/opensips.md @@ -96,7 +96,7 @@ There are no alerts configured by default for this integration. #### Install charts.d plugin -If [using our official native DEB/RPM packages](/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed. +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 @@ -111,8 +111,8 @@ The collector requires the `opensipsctl` to be installed. The configuration file name for this integration is `charts.d/opensips.conf`. -You can edit the configuration file using the `edit-config` script from the -Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory). +You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-a-configuration-file-using-edit-config) script from the +Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#the-netdata-config-directory). ```bash cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata diff --git a/src/collectors/charts.d.plugin/sensors/README.md b/src/collectors/charts.d.plugin/sensors/README.md deleted file mode 120000 index 7e5a416c4..000000000 --- a/src/collectors/charts.d.plugin/sensors/README.md +++ /dev/null @@ -1 +0,0 @@ -integrations/linux_sensors_sysfs.md \ No newline at end of file diff --git a/src/collectors/charts.d.plugin/sensors/integrations/linux_sensors_sysfs.md b/src/collectors/charts.d.plugin/sensors/integrations/linux_sensors_sysfs.md deleted file mode 100644 index f9221caa1..000000000 --- a/src/collectors/charts.d.plugin/sensors/integrations/linux_sensors_sysfs.md +++ /dev/null @@ -1,235 +0,0 @@ - - -# Linux Sensors (sysfs) - - - - - -Plugin: charts.d.plugin -Module: sensors - - - -## Overview - -Use this collector when `lm-sensors` doesn't work on your device (e.g. for RPi temperatures). -For all other cases use the [Go collector](/src/go/plugin/go.d/modules/sensors/README.md), which supports multiple jobs, is more efficient and performs calculations on top of the kernel provided values." - - -It will provide charts for all configured system sensors, by reading sensors directly from the kernel. -The values graphed are the raw hardware values of the sensors. - - -This collector is only supported on the following platforms: - -- Linux - -This collector supports collecting metrics from multiple instances of this integration, including remote instances. - - -### Default Behavior - -#### Auto-Detection - -By default, the collector will try to read entries under `/sys/devices` - -#### 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 sensor chip - -Metrics related to sensor chips. Each chip provides its own set of the following metrics. - -This scope has no labels. - -Metrics: - -| Metric | Dimensions | Unit | -|:------|:----------|:----| -| sensors.temp | {filename} | Celsius | -| sensors.volt | {filename} | Volts | -| sensors.curr | {filename} | Ampere | -| sensors.power | {filename} | Watt | -| sensors.fans | {filename} | Rotations / Minute | -| sensors.energy | {filename} | Joule | -| sensors.humidity | {filename} | Percent | - - - -## Alerts - -There are no alerts configured by default for this integration. - - -## Setup - -### Prerequisites - -#### Install charts.d plugin - -If [using our official native DEB/RPM packages](/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed. - - -#### Enable the sensors collector - -The `sensors` collector is disabled by default. To enable it, use `edit-config` from the Netdata [config directory](/docs/netdata-agent/configuration/README.md), which is typically at `/etc/netdata`, to edit the `charts.d.conf` file. - -```bash -cd /etc/netdata # Replace this path with your Netdata config directory, if different -sudo ./edit-config charts.d.conf -``` - -Change the value of the `sensors` setting to `force` and uncomment the line. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system. - - - -### Configuration - -#### File - -The configuration file name for this integration is `charts.d/sensors.conf`. - - -You can edit the configuration file using the `edit-config` script from the -Netdata [config directory](/docs/netdata-agent/configuration/README.md#the-netdata-config-directory). - -```bash -cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata -sudo ./edit-config charts.d/sensors.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 sensors collector. - - -
Config options - -| Name | Description | Default | Required | -|:----|:-----------|:-------|:--------:| -| sensors_sys_dir | The directory the kernel exposes sensor data. | /sys/devices | no | -| sensors_sys_depth | How deep in the tree to check for sensor data. | 10 | no | -| sensors_source_update | If set to 1, the script will overwrite internal script functions with code generated ones. | 1 | no | -| sensors_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | 1 | no | -| sensors_priority | The charts priority on the dashboard. | 90000 | no | -| sensors_retries | The number of retries to do in case of failure before disabling the collector. | 10 | no | - -
- -#### Examples - -##### Set sensors path depth - -Set a different sensors path depth - -```yaml -# the directory the kernel keeps sensor data -#sensors_sys_dir="/sys/devices" - -# how deep in the tree to check for sensor data -sensors_sys_depth=5 - -# if set to 1, the script will overwrite internal -# script functions with code generated ones -# leave to 1, is faster -#sensors_source_update=1 - -# the data collection frequency -# if unset, will inherit the netdata update frequency -#sensors_update_every= - -# the charts priority on the dashboard -#sensors_priority=90000 - -# the number of retries to do in case of failure -# before disabling the module -#sensors_retries=10 - -``` - - -## Troubleshooting - -### Debug Mode - - -To troubleshoot issues with the `sensors` 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 sensors - ``` - -### Getting Logs - -If you're encountering problems with the `sensors` collector, follow these steps to retrieve logs and identify potential issues: - -- **Run the command** specific to your system (systemd, non-systemd, or Docker container). -- **Examine the output** for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem. - -#### System with systemd - -Use the following command to view logs generated since the last Netdata service restart: - -```bash -journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep sensors -``` - -#### System without systemd - -Locate the collector log file, typically at `/var/log/netdata/collector.log`, and use `grep` to filter for collector's name: - -```bash -grep sensors /var/log/netdata/collector.log -``` - -**Note**: This method shows logs from all restarts. Focus on the **latest entries** for troubleshooting current issues. - -#### Docker Container - -If your Netdata runs in a Docker container named "netdata" (replace if different), use this command: - -```bash -docker logs netdata 2>&1 | grep sensors -``` - - diff --git a/src/collectors/charts.d.plugin/sensors/metadata.yaml b/src/collectors/charts.d.plugin/sensors/metadata.yaml deleted file mode 100644 index 9aacdd353..000000000 --- a/src/collectors/charts.d.plugin/sensors/metadata.yaml +++ /dev/null @@ -1,182 +0,0 @@ -plugin_name: charts.d.plugin -modules: - - meta: - plugin_name: charts.d.plugin - module_name: sensors - monitored_instance: - name: Linux Sensors (sysfs) - link: "https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface" - categories: - - data-collection.hardware-devices-and-sensors - icon_filename: "microchip.svg" - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: "" - keywords: - - sensors - - sysfs - - hwmon - - rpi - - raspberry pi - most_popular: false - overview: - data_collection: - metrics_description: | - Use this collector when `lm-sensors` doesn't work on your device (e.g. for RPi temperatures). - For all other cases use the [Go collector](/src/go/plugin/go.d/modules/sensors/README.md), which supports multiple jobs, is more efficient and performs calculations on top of the kernel provided values." - method_description: | - It will provide charts for all configured system sensors, by reading sensors directly from the kernel. - The values graphed are the raw hardware values of the sensors. - supported_platforms: - include: [Linux] - exclude: [] - multi_instance: true - additional_permissions: - description: "" - default_behavior: - auto_detection: - description: "By default, the collector will try to read entries under `/sys/devices`" - limits: - description: "" - performance_impact: - description: "" - setup: - prerequisites: - list: - - title: "Install charts.d plugin" - description: | - If [using our official native DEB/RPM packages](/packaging/installer/UPDATE.md#determine-which-installation-method-you-used), make sure `netdata-plugin-chartsd` is installed. - - title: "Enable the sensors collector" - description: | - The `sensors` collector is disabled by default. To enable it, use `edit-config` from the Netdata [config directory](/docs/netdata-agent/configuration/README.md), which is typically at `/etc/netdata`, to edit the `charts.d.conf` file. - - ```bash - cd /etc/netdata # Replace this path with your Netdata config directory, if different - sudo ./edit-config charts.d.conf - ``` - - Change the value of the `sensors` setting to `force` and uncomment the line. Save the file and restart the Netdata Agent with `sudo systemctl restart netdata`, or the [appropriate method](/packaging/installer/README.md#maintaining-a-netdata-agent-installation) for your system. - configuration: - file: - name: charts.d/sensors.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 sensors collector. - folding: - title: "Config options" - enabled: true - list: - - name: sensors_sys_dir - description: The directory the kernel exposes sensor data. - default_value: "/sys/devices" - required: false - - name: sensors_sys_depth - description: How deep in the tree to check for sensor data. - default_value: 10 - required: false - - name: sensors_source_update - description: If set to 1, the script will overwrite internal script functions with code generated ones. - default_value: 1 - required: false - - name: sensors_update_every - description: The data collection frequency. If unset, will inherit the netdata update frequency. - default_value: 1 - required: false - - name: sensors_priority - description: The charts priority on the dashboard. - default_value: 90000 - required: false - - name: sensors_retries - description: The number of retries to do in case of failure before disabling the collector. - default_value: 10 - required: false - examples: - folding: - enabled: false - title: "Config" - list: - - name: Set sensors path depth - description: Set a different sensors path depth - config: | - # the directory the kernel keeps sensor data - #sensors_sys_dir="/sys/devices" - - # how deep in the tree to check for sensor data - sensors_sys_depth=5 - - # if set to 1, the script will overwrite internal - # script functions with code generated ones - # leave to 1, is faster - #sensors_source_update=1 - - # the data collection frequency - # if unset, will inherit the netdata update frequency - #sensors_update_every= - - # the charts priority on the dashboard - #sensors_priority=90000 - - # the number of retries to do in case of failure - # before disabling the module - #sensors_retries=10 - troubleshooting: - problems: - list: [] - alerts: [] - metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: sensor chip - description: "Metrics related to sensor chips. Each chip provides its own set of the following metrics." - labels: [] - metrics: - - name: sensors.temp - description: Temperature - unit: "Celsius" - chart_type: line - dimensions: - - name: "{filename}" - - name: sensors.volt - description: Voltage - unit: "Volts" - chart_type: line - dimensions: - - name: "{filename}" - - name: sensors.curr - description: Current - unit: "Ampere" - chart_type: line - dimensions: - - name: "{filename}" - - name: sensors.power - description: Power - unit: "Watt" - chart_type: line - dimensions: - - name: "{filename}" - - name: sensors.fans - description: Fans Speed - unit: "Rotations / Minute" - chart_type: line - dimensions: - - name: "{filename}" - - name: sensors.energy - description: Energy - unit: "Joule" - chart_type: area - dimensions: - - name: "{filename}" - - name: sensors.humidity - description: Humidity - unit: "Percent" - chart_type: line - dimensions: - - name: "{filename}" diff --git a/src/collectors/charts.d.plugin/sensors/sensors.chart.sh b/src/collectors/charts.d.plugin/sensors/sensors.chart.sh deleted file mode 100644 index 9576e2ab2..000000000 --- a/src/collectors/charts.d.plugin/sensors/sensors.chart.sh +++ /dev/null @@ -1,250 +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 -# - -# sensors docs -# https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface - -# if this chart is called X.chart.sh, then all functions and global variables -# must start with X_ - -# the directory the kernel keeps sensor data -sensors_sys_dir="${NETDATA_HOST_PREFIX}/sys/devices" - -# how deep in the tree to check for sensor data -sensors_sys_depth=10 - -# if set to 1, the script will overwrite internal -# script functions with code generated ones -# leave to 1, is faster -sensors_source_update=1 - -# how frequently to collect sensor data -# the default is to collect it at every iteration of charts.d -sensors_update_every= - -sensors_priority=90000 - -declare -A sensors_excluded=() - -sensors_find_all_files() { - find "$1" -maxdepth $sensors_sys_depth -name \*_input -o -name temp 2>/dev/null -} - -sensors_find_all_dirs() { - # shellcheck disable=SC2162 - sensors_find_all_files "$1" | while read; do - dirname "$REPLY" - done | sort -u -} - -# _check is called once, to find out if this chart should be enabled or not -sensors_check() { - - # this should return: - # - 0 to enable the chart - # - 1 to disable the chart - - [ -z "$(sensors_find_all_files "$sensors_sys_dir")" ] && error "no sensors found in '$sensors_sys_dir'." && return 1 - return 0 -} - -sensors_check_files() { - # we only need sensors that report a non-zero value - # also remove not needed sensors - - local f v excluded - for f in "$@"; do - [ ! -f "$f" ] && continue - for ex in "${sensors_excluded[@]}"; do - [[ $f =~ .*$ex$ ]] && excluded='1' && break - done - - [ "$excluded" != "1" ] && v="$(cat "$f")" || v=0 - v=$((v + 1 - 1)) - [ $v -ne 0 ] && echo "$f" && continue - excluded= - - error "$f gives zero values" - done -} - -sensors_check_temp_type() { - # valid temp types are 1 to 6 - # disabled sensors have the value 0 - - local f t v - for f in "$@"; do - # shellcheck disable=SC2001 - t=$(echo "$f" | sed "s|_input$|_type|g") - [ "$f" = "$t" ] && echo "$f" && continue - [ ! -f "$t" ] && echo "$f" && continue - - v="$(cat "$t")" - v=$((v + 1 - 1)) - [ $v -ne 0 ] && echo "$f" && continue - - error "$f is disabled" - done -} - -# _create is called once, to create the charts -sensors_create() { - local path dir name x file lfile labelname device subsystem id type mode files multiplier divisor - - # we create a script with the source of the - # sensors_update() function - # - the highest speed we can achieve - - [ $sensors_source_update -eq 1 ] && echo >"$TMP_DIR/sensors.sh" "sensors_update() {" - - for path in $(sensors_find_all_dirs "$sensors_sys_dir" | sort -u); do - dir=$(basename "$path") - device= - subsystem= - id= - type= - name= - - [ -h "$path/device" ] && device=$(readlink -f "$path/device") - [ ! -z "$device" ] && device=$(basename "$device") - [ -z "$device" ] && device="$dir" - - [ -h "$path/subsystem" ] && subsystem=$(readlink -f "$path/subsystem") - [ ! -z "$subsystem" ] && subsystem=$(basename "$subsystem") - [ -z "$subsystem" ] && subsystem="$dir" - - [ -f "$path/name" ] && name=$(cat "$path/name") - [ -z "$name" ] && name="$dir" - - [ -f "$path/type" ] && type=$(cat "$path/type") - [ -z "$type" ] && type="$dir" - - id="$(fixid "$device.$subsystem.$dir")" - - debug "path='$path', dir='$dir', device='$device', subsystem='$subsystem', id='$id', name='$name'" - - for mode in temperature voltage fans power current energy humidity; do - files= - multiplier=1 - divisor=1 - algorithm="absolute" - - case $mode in - temperature) - files="$( - ls "$path"/temp*_input 2>/dev/null - ls "$path/temp" 2>/dev/null - )" - files="$(sensors_check_files "$files")" - files="$(sensors_check_temp_type "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.temp_${id}_${name}' '' 'Temperature' 'Celsius' 'temperature' 'sensors.temp' line $((sensors_priority + 1)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.temp_${id}_${name}' \$1\"" - divisor=1000 - ;; - - voltage) - files="$(ls "$path"/in*_input 2>/dev/null)" - files="$(sensors_check_files "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.volt_${id}_${name}' '' 'Voltage' 'Volts' 'voltage' 'sensors.volt' line $((sensors_priority + 2)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.volt_${id}_${name}' \$1\"" - divisor=1000 - ;; - - current) - files="$(ls "$path"/curr*_input 2>/dev/null)" - files="$(sensors_check_files "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.curr_${id}_${name}' '' 'Current' 'Ampere' 'current' 'sensors.curr' line $((sensors_priority + 3)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.curr_${id}_${name}' \$1\"" - divisor=1000 - ;; - - power) - files="$(ls "$path"/power*_input 2>/dev/null)" - files="$(sensors_check_files "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.power_${id}_${name}' '' 'Power' 'Watt' 'power' 'sensors.power' line $((sensors_priority + 4)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.power_${id}_${name}' \$1\"" - divisor=1000000 - ;; - - fans) - files="$(ls "$path"/fan*_input 2>/dev/null)" - files="$(sensors_check_files "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.fan_${id}_${name}' '' 'Fans Speed' 'Rotations / Minute' 'fans' 'sensors.fans' line $((sensors_priority + 5)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.fan_${id}_${name}' \$1\"" - ;; - - energy) - files="$(ls "$path"/energy*_input 2>/dev/null)" - files="$(sensors_check_files "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.energy_${id}_${name}' '' 'Energy' 'Joule' 'energy' 'sensors.energy' area $((sensors_priority + 6)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.energy_${id}_${name}' \$1\"" - algorithm="incremental" - divisor=1000000 - ;; - - humidity) - files="$(ls "$path"/humidity*_input 2>/dev/null)" - files="$(sensors_check_files "$files")" - [ -z "$files" ] && continue - echo "CHART 'sensors.humidity_${id}_${name}' '' 'Humidity' 'Percent' 'humidity' 'sensors.humidity' line $((sensors_priority + 7)) $sensors_update_every '' '' 'sensors'" - echo >>"$TMP_DIR/sensors.sh" "echo \"BEGIN 'sensors.humidity_${id}_${name}' \$1\"" - divisor=1000 - ;; - - *) - continue - ;; - esac - - for x in $files; do - file="$x" - fid="$(fixid "$file")" - lfile="$(basename "$file" | sed "s|_input$|_label|g")" - labelname="$(basename "$file" | sed "s|_input$||g")" - - if [ ! "$path/$lfile" = "$file" ] && [ -f "$path/$lfile" ]; then - labelname="$(cat "$path/$lfile")" - fi - - echo "DIMENSION $fid '$labelname' $algorithm $multiplier $divisor" - echo >>"$TMP_DIR/sensors.sh" "echo \"SET $fid = \"\$(< $file )" - done - - echo >>"$TMP_DIR/sensors.sh" "echo END" - done - done - - [ $sensors_source_update -eq 1 ] && echo >>"$TMP_DIR/sensors.sh" "}" - - # ok, load the function sensors_update() we created - # shellcheck source=/dev/null - [ $sensors_source_update -eq 1 ] && . "$TMP_DIR/sensors.sh" - - return 0 -} - -# _update is called continuously, to collect the values -sensors_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 - - # shellcheck source=/dev/null - [ $sensors_source_update -eq 0 ] && . "$TMP_DIR/sensors.sh" "$1" - - return 0 -} diff --git a/src/collectors/charts.d.plugin/sensors/sensors.conf b/src/collectors/charts.d.plugin/sensors/sensors.conf deleted file mode 100644 index bcb28807d..000000000 --- a/src/collectors/charts.d.plugin/sensors/sensors.conf +++ /dev/null @@ -1,32 +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 -# GPL v3+ - -# THIS PLUGIN IS DEPRECATED -# USE THE PYTHON.D ONE - -# the directory the kernel keeps sensor data -#sensors_sys_dir="/sys/devices" - -# how deep in the tree to check for sensor data -#sensors_sys_depth=10 - -# if set to 1, the script will overwrite internal -# script functions with code generated ones -# leave to 1, is faster -#sensors_source_update=1 - -# the data collection frequency -# if unset, will inherit the netdata update frequency -#sensors_update_every= - -# the charts priority on the dashboard -#sensors_priority=90000 - -# the number of retries to do in case of failure -# before disabling the module -#sensors_retries=10 - -- cgit v1.2.3