diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-24 09:54:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-24 09:54:44 +0000 |
commit | 836b47cb7e99a977c5a23b059ca1d0b5065d310e (patch) | |
tree | 1604da8f482d02effa033c94a84be42bc0c848c3 /collectors/ioping.plugin | |
parent | Releasing debian version 1.44.3-2. (diff) | |
download | netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.tar.xz netdata-836b47cb7e99a977c5a23b059ca1d0b5065d310e.zip |
Merging upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'collectors/ioping.plugin')
-rw-r--r-- | collectors/ioping.plugin/Makefile.am | 24 | ||||
l--------- | collectors/ioping.plugin/README.md | 1 | ||||
-rw-r--r-- | collectors/ioping.plugin/integrations/ioping.md | 133 | ||||
-rw-r--r-- | collectors/ioping.plugin/ioping.conf | 40 | ||||
-rwxr-xr-x | collectors/ioping.plugin/ioping.plugin.in | 272 | ||||
-rw-r--r-- | collectors/ioping.plugin/metadata.yaml | 101 |
6 files changed, 0 insertions, 571 deletions
diff --git a/collectors/ioping.plugin/Makefile.am b/collectors/ioping.plugin/Makefile.am deleted file mode 100644 index a9cd7c4f1..000000000 --- a/collectors/ioping.plugin/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -AUTOMAKE_OPTIONS = subdir-objects -MAINTAINERCLEANFILES = $(srcdir)/Makefile.in - -CLEANFILES = \ - ioping.plugin \ - $(NULL) - -include $(top_srcdir)/build/subst.inc -SUFFIXES = .in - -dist_plugins_SCRIPTS = \ - ioping.plugin \ - $(NULL) - -dist_noinst_DATA = \ - ioping.plugin.in \ - README.md \ - $(NULL) - -dist_libconfig_DATA = \ - ioping.conf \ - $(NULL) diff --git a/collectors/ioping.plugin/README.md b/collectors/ioping.plugin/README.md deleted file mode 120000 index cb660f13b..000000000 --- a/collectors/ioping.plugin/README.md +++ /dev/null @@ -1 +0,0 @@ -integrations/ioping.md
\ No newline at end of file diff --git a/collectors/ioping.plugin/integrations/ioping.md b/collectors/ioping.plugin/integrations/ioping.md deleted file mode 100644 index 39a07ed62..000000000 --- a/collectors/ioping.plugin/integrations/ioping.md +++ /dev/null @@ -1,133 +0,0 @@ -<!--startmeta -custom_edit_url: "https://github.com/netdata/netdata/edit/master/collectors/ioping.plugin/README.md" -meta_yaml: "https://github.com/netdata/netdata/edit/master/collectors/ioping.plugin/metadata.yaml" -sidebar_label: "IOPing" -learn_status: "Published" -learn_rel_path: "Data Collection/Synthetic Checks" -most_popular: False -message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE" -endmeta--> - -# IOPing - - -<img src="https://netdata.cloud/img/syslog.png" width="150"/> - - -Plugin: ioping.plugin -Module: ioping.plugin - -<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" /> - -## Overview - -Monitor IOPing metrics for efficient disk I/O latency tracking. Keep track of read/write speeds, latency, and error rates for optimized disk operations. - -Plugin uses `ioping` command. - -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 disk - - - -This scope has no labels. - -Metrics: - -| Metric | Dimensions | Unit | -|:------|:----------|:----| -| ioping.latency | latency | microseconds | - - - -## Alerts - - -The following alerts are available: - -| Alert name | On metric | Description | -|:------------|:----------|:------------| -| [ ioping_disk_latency ](https://github.com/netdata/netdata/blob/master/health/health.d/ioping.conf) | ioping.latency | average I/O latency over the last 10 seconds | - - -## Setup - -### Prerequisites - -#### Install ioping - -You can install the command by passing the argument `install` to the plugin (`/usr/libexec/netdata/plugins.d/ioping.plugin install`). - - - -### Configuration - -#### File - -The configuration file name for this integration is `ioping.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 ioping.conf -``` -#### Options - - - -<details><summary>Config options</summary> - -| Name | Description | Default | Required | -|:----|:-----------|:-------|:--------:| -| update_every | Data collection frequency. | 1s | no | -| destination | The directory/file/device to ioping. | | yes | -| request_size | The request size in bytes to ioping the destination (symbolic modifiers are supported) | 4k | no | -| ioping_opts | Options passed to `ioping` commands. | -T 1000000 | no | - -</details> - -#### Examples - -##### Basic Configuration - -This example has the minimum configuration necessary to have the plugin running. - -<details><summary>Config</summary> - -```yaml -destination="/dev/sda" - -``` -</details> - - diff --git a/collectors/ioping.plugin/ioping.conf b/collectors/ioping.plugin/ioping.conf deleted file mode 100644 index 86f0de7f4..000000000 --- a/collectors/ioping.plugin/ioping.conf +++ /dev/null @@ -1,40 +0,0 @@ -# no need for shebang - this file is sourced from ioping.plugin - -# ioping.plugin requires a recent version of ioping. -# -# You can get it on your system, by running: -# -# /usr/libexec/netdata/plugins.d/ioping.plugin install - -# ----------------------------------------------------------------------------- -# configuration options - -# The ioping binary to use. We need one that can output netdata friendly info -# (supporting: -N). If you have multiple versions, put here the full filename -# of the right one - -#ioping="/usr/libexec/netdata/plugins.d/ioping" - - -# The directory/file/device to ioping - -destination="" - - -# The update frequency of the chart in seconds (symbolic modifiers are supported) -# the default is inherited from netdata - -#update_every="1s" - - -# The request size in bytes to ioping the destination (symbolic modifiers are supported) -# by default 4k chunks are used - -#request_size="4k" - - -# Other ioping options -# the defaults: -# -T 1000000 = maximum valid request time (us) - -#ioping_opts="-T 1000000" diff --git a/collectors/ioping.plugin/ioping.plugin.in b/collectors/ioping.plugin/ioping.plugin.in deleted file mode 100755 index 171e384db..000000000 --- a/collectors/ioping.plugin/ioping.plugin.in +++ /dev/null @@ -1,272 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: GPL-3.0-or-later - -# netdata -# real-time performance and health monitoring, done right! -# (C) 2017 Costa Tsaousis <costa@tsaousis.gr> -# GPL v3+ -# -# This plugin requires a latest version of ioping. -# You can compile it from source, by running me with option: install - -export PATH="${PATH}:/sbin:/usr/sbin:/usr/local/sbin:@sbindir_POST@" -export LC_ALL=C - -usage="$(basename "$0") [install] [-h] [-e] - -where: - install install ioping binary - -e, --env path to environment file (defaults to '/etc/netdata/.environment' - -h show this help text" - -INSTALL=0 -ENVIRONMENT_FILE="/etc/netdata/.environment" - -while :; do - case "$1" in - -h | --help) - echo "$usage" >&2 - exit 1 - ;; - install) - INSTALL=1 - shift - ;; - -e | --env) - ENVIRONMENT_FILE="$2" - shift 2 - ;; - -*) - echo "$usage" >&2 - exit 1 - ;; - *) break ;; - esac -done - -if [ "$INSTALL" == "1" ] - then - [ "${UID}" != 0 ] && echo >&2 "Please run me as root. This will install a single binary file: /usr/libexec/netdata/plugins.d/ioping." && exit 1 - - source "${ENVIRONMENT_FILE}" || exit 1 - - run() { - printf >&2 " > " - printf >&2 "%q " "${@}" - printf >&2 "\n" - "${@}" || exit 1 - } - - download() { - local git="$(which git 2>/dev/null || command -v git 2>/dev/null)" - [ ! -z "${git}" ] && run git clone "${1}" "${2}" && return 0 - - echo >&2 "Cannot find 'git' in this system." && exit 1 - } - - tmp=$(mktemp -d /tmp/netdata-ioping-XXXXXX) - [ ! -d "${NETDATA_PREFIX}/usr/libexec/netdata" ] && run mkdir -p "${NETDATA_PREFIX}/usr/libexec/netdata" - - run cd "${tmp}" - - if [ -d ioping-netdata ] - then - run rm -rf ioping-netdata || exit 1 - fi - - download 'https://github.com/netdata/ioping.git' 'ioping-netdata' - [ $? -ne 0 ] && exit 1 - run cd ioping-netdata || exit 1 - - INSTALL_PATH="${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/ioping" - - run make clean - run make - run mv ioping "${INSTALL_PATH}" - run chown root:"${NETDATA_GROUP}" "${INSTALL_PATH}" - run chmod 4750 "${INSTALL_PATH}" - echo >&2 - echo >&2 "All done, you have a compatible ioping now at ${INSTALL_PATH}." - echo >&2 - - exit 0 -fi - -# ----------------------------------------------------------------------------- -# logging - -PROGRAM_NAME="$(basename "${0}")" - -# these should be the same with syslog() priorities -NDLP_EMERG=0 # system is unusable -NDLP_ALERT=1 # action must be taken immediately -NDLP_CRIT=2 # critical conditions -NDLP_ERR=3 # error conditions -NDLP_WARN=4 # warning conditions -NDLP_NOTICE=5 # normal but significant condition -NDLP_INFO=6 # informational -NDLP_DEBUG=7 # debug-level messages - -# the max (numerically) log level we will log -LOG_LEVEL=$NDLP_INFO - -set_log_min_priority() { - case "${NETDATA_LOG_LEVEL,,}" in - "emerg" | "emergency") - LOG_LEVEL=$NDLP_EMERG - ;; - - "alert") - LOG_LEVEL=$NDLP_ALERT - ;; - - "crit" | "critical") - LOG_LEVEL=$NDLP_CRIT - ;; - - "err" | "error") - LOG_LEVEL=$NDLP_ERR - ;; - - "warn" | "warning") - LOG_LEVEL=$NDLP_WARN - ;; - - "notice") - LOG_LEVEL=$NDLP_NOTICE - ;; - - "info") - LOG_LEVEL=$NDLP_INFO - ;; - - "debug") - LOG_LEVEL=$NDLP_DEBUG - ;; - esac -} - -set_log_min_priority - -log() { - local level="${1}" - shift 1 - - [[ -n "$level" && -n "$LOG_LEVEL" && "$level" -gt "$LOG_LEVEL" ]] && return - - systemd-cat-native --log-as-netdata --newline="--NEWLINE--" <<EOFLOG -INVOCATION_ID=${NETDATA_INVOCATION_ID} -SYSLOG_IDENTIFIER=${PROGRAM_NAME} -PRIORITY=${level} -THREAD_TAG=ioping.plugin -ND_LOG_SOURCE=collector -MESSAGE=${MODULE_NAME}: ${*//\\n/--NEWLINE--} - -EOFLOG - # AN EMPTY LINE IS NEEDED ABOVE -} - -info() { - log "$NDLP_INFO" "${@}" -} - -warning() { - log "$NDLP_WARN" "${@}" -} - -error() { - log "$NDLP_ERR" "${@}" -} - -disable() { - log "${@}" - echo "DISABLE" - exit 1 -} - -fatal() { - disable "$NDLP_ALERT" "${@}" -} - -debug() { - log "$NDLP_DEBUG" "${@}" -} - -# ----------------------------------------------------------------------------- - -# store in ${plugin} the name we run under -# this allows us to copy/link ioping.plugin under a different name -# to have multiple ioping plugins running with different settings -plugin="${PROGRAM_NAME/.plugin/}" - - -# ----------------------------------------------------------------------------- - -# the frequency to send info to netdata -# passed by netdata as the first parameter -update_every="${1-1}" - -# the netdata configuration directory -# passed by netdata as an environment variable -[ -z "${NETDATA_USER_CONFIG_DIR}" ] && NETDATA_USER_CONFIG_DIR="@configdir_POST@" -[ -z "${NETDATA_STOCK_CONFIG_DIR}" ] && NETDATA_STOCK_CONFIG_DIR="@libconfigdir_POST@" - -# the netdata directory for internal binaries -[ -z "${NETDATA_PLUGINS_DIR}" ] && NETDATA_PLUGINS_DIR="@pluginsdir_POST@" - -# ----------------------------------------------------------------------------- -# configuration options -# can be overwritten at /etc/netdata/ioping.conf - -# the ioping binary to use -# we need one that can output netdata friendly info (supporting: -N) -# if you have multiple versions, put here the full filename of the right one -ioping="${NETDATA_PLUGINS_DIR}/ioping" - -# the destination to ioping -destination="" - -# the request size in bytes to ping the disk -request_size="4k" - -# ioping options -ioping_opts="-T 1000000" - -# ----------------------------------------------------------------------------- -# load the configuration files - -for CONFIG in "${NETDATA_STOCK_CONFIG_DIR}/${plugin}.conf" "${NETDATA_USER_CONFIG_DIR}/${plugin}.conf"; do - if [ -f "${CONFIG}" ]; then - debug "Loading config file '${CONFIG}'..." - source "${CONFIG}" - [ $? -ne 0 ] && warn "Failed to load config file '${CONFIG}'." - elif [[ $CONFIG =~ ^$NETDATA_USER_CONFIG_DIR ]]; then - debug "Cannot find file '${CONFIG}'." - fi -done - -if [ -z "${destination}" ] -then - disable $NDLP_DEBUG "destination is not configured - nothing to do." -fi - -if [ ! -f "${ioping}" ] -then - disable $NDLP_ERR "ioping command is not found. Please set its full path in '${NETDATA_USER_CONFIG_DIR}/${plugin}.conf'" -fi - -if [ ! -x "${ioping}" ] -then - disable $NDLP_ERR "ioping command '${ioping}' is not executable - cannot proceed." -fi - -# the ioping options we will use -options=( -N -i ${update_every} -s ${request_size} ${ioping_opts} ${destination} ) - -# execute ioping -debug "starting ioping: ${ioping} ${options[*]}" - -exec "${ioping}" "${options[@]}" - -# if we cannot execute ioping, stop -error "command '${ioping} ${options[*]}' failed to be executed (returned code $?)." diff --git a/collectors/ioping.plugin/metadata.yaml b/collectors/ioping.plugin/metadata.yaml deleted file mode 100644 index e3ec96162..000000000 --- a/collectors/ioping.plugin/metadata.yaml +++ /dev/null @@ -1,101 +0,0 @@ -plugin_name: ioping.plugin -modules: - - meta: - plugin_name: ioping.plugin - module_name: ioping.plugin - monitored_instance: - name: IOPing - link: "https://github.com/koct9i/ioping" - categories: - - data-collection.synthetic-checks - icon_filename: "syslog.png" - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: "" - keywords: [] - most_popular: false - overview: - data_collection: - metrics_description: "Monitor IOPing metrics for efficient disk I/O latency tracking. Keep track of read/write speeds, latency, and error rates for optimized disk operations." - method_description: "Plugin uses `ioping` command." - 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 ioping - description: | - You can install the command by passing the argument `install` to the plugin (`/usr/libexec/netdata/plugins.d/ioping.plugin install`). - configuration: - file: - name: "ioping.conf" - description: "File with options to specify hardware to monitor and arguments for ioping command." - options: - description: "" - folding: - title: "Config options" - enabled: true - list: - - name: update_every - description: Data collection frequency. - default_value: 1s - required: false - - name: destination - description: The directory/file/device to ioping. - default_value: "" - required: true - - name: request_size - description: The request size in bytes to ioping the destination (symbolic modifiers are supported) - default_value: 4k - required: false - - name: ioping_opts - description: Options passed to `ioping` commands. - default_value: -T 1000000 - required: false - examples: - folding: - enabled: true - title: "Config" - list: - - name: Basic Configuration - description: This example has the minimum configuration necessary to have the plugin running. - config: | - destination="/dev/sda" - troubleshooting: - problems: - list: [] - alerts: - - name: ioping_disk_latency - link: https://github.com/netdata/netdata/blob/master/health/health.d/ioping.conf - metric: ioping.latency - info: average I/O latency over the last 10 seconds - metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: disk - description: "" - labels: [] - metrics: - - name: ioping.latency - description: Read Latency - unit: "microseconds" - chart_type: line - dimensions: - - name: latency |