diff options
Diffstat (limited to 'collectors/python.d.plugin')
95 files changed, 9028 insertions, 5809 deletions
diff --git a/collectors/python.d.plugin/adaptec_raid/metadata.yaml b/collectors/python.d.plugin/adaptec_raid/metadata.yaml index 5986aed6..7ee4ce7c 100644 --- a/collectors/python.d.plugin/adaptec_raid/metadata.yaml +++ b/collectors/python.d.plugin/adaptec_raid/metadata.yaml @@ -1,98 +1,167 @@ -meta: - plugin_name: python.d.plugin - module_name: adaptec_raid - monitored_instance: - name: AdaptecRAID - link: '' - categories: - - data-collection.storage-mount-points-and-filesystems - icon_filename: 'adaptec.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Assess Adaptec RAID hardware storage controllers with Netdata for RAID controller performance and operational metrics. Improve your RAID controller performance with comprehensive dashboards and anomaly detection.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: adaptec_raid_ld_status - link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf - metric: adaptec_raid.ld_status - info: logical device status is failed or degraded -- name: adaptec_raid_pd_state - link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf - metric: adaptec_raid.pd_state - info: physical device state is not online -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: adaptec_raid + monitored_instance: + name: AdaptecRAID + link: "https://www.microchip.com/en-us/products/storage" + categories: + - data-collection.storage-mount-points-and-filesystems + icon_filename: "adaptec.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - storage + - raid-controller + - manage-disks + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors Adaptec RAID hardware storage controller metrics about both physical and logical drives. + method_description: | + It uses the arcconf command line utility (from adaptec) to monitor your raid controller. + + Executed commands: + - sudo -n arcconf GETCONFIG 1 LD + - sudo -n arcconf GETCONFIG 1 PD + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "The module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password." + default_behavior: + auto_detection: + description: "After all the permissions are satisfied, netdata should be to execute commands via the arcconf command line utility" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Grant permissions for netdata, to run arcconf as sudoer + description: | + The module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password. + + Add to your /etc/sudoers file: + which arcconf shows the full path to the binary. + + ```bash + netdata ALL=(root) NOPASSWD: /path/to/arcconf + ``` + - title: Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd) + description: | + The default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo. + + As root user, do the following: + + ```bash + mkdir /etc/systemd/system/netdata.service.d + echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf + systemctl daemon-reload + systemctl restart netdata.service + ``` + configuration: + file: + name: "python.d/adaptec_raid.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration per job + config: | + job_name: + name: my_job_name + update_every: 1 # the JOB's data collection frequency + priority: 60000 # the JOB's order on the dashboard + penalty: yes # the JOB's penalty + autodetection_retry: 0 # the JOB's re-check interval in seconds + troubleshooting: + problems: + list: [] + alerts: + - name: adaptec_raid_ld_status + link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf + metric: adaptec_raid.ld_status + info: logical device status is failed or degraded + - name: adaptec_raid_pd_state + link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf + metric: adaptec_raid.pd_state + info: physical device state is not online metrics: - - name: adaptec_raid.ld_status - description: 'Status of logical devices (1: Failed or Degraded)' - unit: "bool" - chart_type: line - dimensions: - - name: a dimension per logical device - - name: adaptec_raid.pd_state - description: 'State of physical devices (1: not Online)' - unit: "bool" - chart_type: line - dimensions: - - name: a dimension per physical device - - name: adaptec_raid.smart_warnings - description: S.M.A.R.T warnings - unit: "count" - chart_type: line - dimensions: - - name: a dimension per physical device - - name: adaptec_raid.temperature - description: Temperature - unit: "celsius" - chart_type: line - dimensions: - - name: a dimension per physical device + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: adaptec_raid.ld_status + description: "Status of logical devices (1: Failed or Degraded)" + unit: "bool" + chart_type: line + dimensions: + - name: a dimension per logical device + - name: adaptec_raid.pd_state + description: "State of physical devices (1: not Online)" + unit: "bool" + chart_type: line + dimensions: + - name: a dimension per physical device + - name: adaptec_raid.smart_warnings + description: S.M.A.R.T warnings + unit: "count" + chart_type: line + dimensions: + - name: a dimension per physical device + - name: adaptec_raid.temperature + description: Temperature + unit: "celsius" + chart_type: line + dimensions: + - name: a dimension per physical device diff --git a/collectors/python.d.plugin/adaptec_raid/metrics.csv b/collectors/python.d.plugin/adaptec_raid/metrics.csv deleted file mode 100644 index 1462940c..00000000 --- a/collectors/python.d.plugin/adaptec_raid/metrics.csv +++ /dev/null @@ -1,5 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -adaptec_raid.ld_status,,a dimension per logical device,bool,Status of logical devices (1: Failed or Degraded),line,,python.d.plugin,adaptec_raid -adaptec_raid.pd_state,,a dimension per physical device,bool,State of physical devices (1: not Online),line,,python.d.plugin,adaptec_raid -adaptec_raid.smart_warnings,,a dimension per physical device,count,S.M.A.R.T warnings,line,,python.d.plugin,adaptec_raid -adaptec_raid.temperature,,a dimension per physical device,celsius,Temperature,line,,python.d.plugin,adaptec_raid diff --git a/collectors/python.d.plugin/alarms/metadata.yaml b/collectors/python.d.plugin/alarms/metadata.yaml index 81afd5cc..30a89778 100644 --- a/collectors/python.d.plugin/alarms/metadata.yaml +++ b/collectors/python.d.plugin/alarms/metadata.yaml @@ -1,77 +1,177 @@ -meta: - plugin_name: python.d.plugin - module_name: alarms - monitored_instance: - name: python.d alarms - link: '' - categories: [] - icon_filename: '' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: '' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: alarms + monitored_instance: + name: Netdata Agent alarms + link: https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alarms/README.md + categories: + - data-collection.other + icon_filename: "" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - alarms + - netdata + most_popular: false + overview: + data_collection: + metrics_description: | + This collector creates an 'Alarms' menu with one line plot of `alarms.status`. + method_description: | + Alarm status is read from the Netdata agent rest api [`/api/v1/alarms?all`](https://learn.netdata.cloud/api#/alerts/alerts1). + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: | + It discovers instances of Netdata running on localhost, and gathers metrics from `http://127.0.0.1:19999/api/v1/alarms?all`. `CLEAR` status is mapped to `0`, `WARNING` to `1` and `CRITICAL` to `2`. Also, by default all alarms produced will be monitored. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: python.d/alarms.conf + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: url + description: Netdata agent alarms endpoint to collect from. Can be local or remote so long as reachable by agent. + default_value: http://127.0.0.1:19999/api/v1/alarms?all + required: true + - name: status_map + description: Mapping of alarm status to integer number that will be the metric value collected. + default_value: '{"CLEAR": 0, "WARNING": 1, "CRITICAL": 2}' + required: true + - name: collect_alarm_values + description: set to true to include a chart with calculated alarm values over time. + default_value: false + required: true + - name: alarm_status_chart_type + description: define the type of chart for plotting status over time e.g. 'line' or 'stacked'. + default_value: "line" + required: true + - name: alarm_contains_words + description: > + A "," separated list of words you want to filter alarm names for. For example 'cpu,load' would filter for only alarms with "cpu" or "load" in alarm name. Default includes all. + default_value: "" + required: true + - name: alarm_excludes_words + description: > + A "," separated list of words you want to exclude based on alarm name. For example 'cpu,load' would exclude all alarms with "cpu" or "load" in alarm name. Default excludes None. + default_value: "" + required: true + - name: update_every + description: Sets the default data collection frequency. + default_value: 10 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: Config + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration. + config: | + jobs: + url: 'http://127.0.0.1:19999/api/v1/alarms?all' + - name: Advanced + folding: + enabled: true + description: | + An advanced example configuration with multiple jobs collecting different subsets of alarms for plotting on different charts. + "ML" job will collect status and values for all alarms with "ml_" in the name. Default job will collect status for all other alarms. + config: | + ML: + update_every: 5 + url: 'http://127.0.0.1:19999/api/v1/alarms?all' + status_map: + CLEAR: 0 + WARNING: 1 + CRITICAL: 2 + collect_alarm_values: true + alarm_status_chart_type: 'stacked' + alarm_contains_words: 'ml_' + + Default: + update_every: 5 + url: 'http://127.0.0.1:19999/api/v1/alarms?all' + status_map: + CLEAR: 0 + WARNING: 1 + CRITICAL: 2 + collect_alarm_values: false + alarm_status_chart_type: 'stacked' + alarm_excludes_words: 'ml_' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: alarms.status - description: Alarms ({status mapping}) - unit: "status" - chart_type: line - dimensions: - - name: a dimension per alarm - - name: alarms.status - description: Alarm Values - unit: "value" - chart_type: line - dimensions: - - name: a dimension per alarm + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: | + These metrics refer to the entire monitored application. + labels: [] + metrics: + - name: alarms.status + description: Alarms ({status mapping}) + unit: "status" + chart_type: line + dimensions: + - name: a dimension per alarm representing the latest status of the alarm. + - name: alarms.values + description: Alarm Values + unit: "value" + chart_type: line + dimensions: + - name: a dimension per alarm representing the latest collected value of the alarm. diff --git a/collectors/python.d.plugin/alarms/metrics.csv b/collectors/python.d.plugin/alarms/metrics.csv deleted file mode 100644 index 1c28a836..00000000 --- a/collectors/python.d.plugin/alarms/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -alarms.status,,a dimension per alarm,status,Alarms ({status mapping}),line,,python.d.plugin,alarms -alarms.status,,a dimension per alarm,value,Alarm Values,line,,python.d.plugin,alarms diff --git a/collectors/python.d.plugin/am2320/metadata.yaml b/collectors/python.d.plugin/am2320/metadata.yaml index 88e86fb2..c85cd5f2 100644 --- a/collectors/python.d.plugin/am2320/metadata.yaml +++ b/collectors/python.d.plugin/am2320/metadata.yaml @@ -1,78 +1,135 @@ -meta: - plugin_name: python.d.plugin - module_name: am2320 - monitored_instance: - name: AM2320 - link: '' - categories: - - data-collection.hardware-devices-and-sensors - icon_filename: 'microchip.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor AM2320 metrics with Netdata for optimal temperature and humidity sensor performance. Improve your sensor performance with comprehensive dashboards and anomaly detection.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: am2320 + monitored_instance: + name: AM2320 + link: 'https://learn.adafruit.com/adafruit-am2320-temperature-humidity-i2c-sensor/overview' + categories: + - data-collection.hardware-devices-and-sensors + icon_filename: 'microchip.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - temperature + - am2320 + - sensor + - humidity + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors AM2320 sensor metrics about temperature and humidity.' + method_description: 'It retrieves temperature and humidity values by contacting an AM2320 sensor over i2c.' + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: 'Assuming prerequisites are met, the collector will try to connect to the sensor via i2c' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: 'Sensor connection to a Raspberry Pi' + description: | + Connect the am2320 to the Raspberry Pi I2C pins + + Raspberry Pi 3B/4 Pins: + + - Board 3.3V (pin 1) to sensor VIN (pin 1) + - Board SDA (pin 3) to sensor SDA (pin 2) + - Board GND (pin 6) to sensor GND (pin 3) + - Board SCL (pin 5) to sensor SCL (pin 4) + + You may also need to add two I2C pullup resistors if your board does not already have them. The Raspberry Pi does have internal pullup resistors but it doesn't hurt to add them anyway. You can use 2.2K - 10K but we will just use 10K. The resistors go from VDD to SCL and SDA each. + - title: 'Software requirements' + description: | + Install the Adafruit Circuit Python AM2320 library: + + `sudo pip3 install adafruit-circuitpython-am2320` + configuration: + file: + name: python.d/am2320.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Local sensor + description: A basic JOB configuration + config: | + local_sensor: + name: 'Local AM2320' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: am2320.temperature - description: Temperature - unit: "celsius" - chart_type: line - dimensions: - - name: temperature - - name: am2320.humidity - description: Relative Humidity - unit: "percentage" - chart_type: line - dimensions: - - name: humidity + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: am2320.temperature + description: Temperature + unit: "celsius" + chart_type: line + dimensions: + - name: temperature + - name: am2320.humidity + description: Relative Humidity + unit: "percentage" + chart_type: line + dimensions: + - name: humidity diff --git a/collectors/python.d.plugin/am2320/metrics.csv b/collectors/python.d.plugin/am2320/metrics.csv deleted file mode 100644 index 0f3b79f2..00000000 --- a/collectors/python.d.plugin/am2320/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -am2320.temperature,,temperature,celsius,Temperature,line,,python.d.plugin,am2320 -am2320.humidity,,humidity,percentage,Relative Humidity,line,,python.d.plugin,am2320 diff --git a/collectors/python.d.plugin/anomalies/metadata.yaml b/collectors/python.d.plugin/anomalies/metadata.yaml index 7bcac646..d138cf5d 100644 --- a/collectors/python.d.plugin/anomalies/metadata.yaml +++ b/collectors/python.d.plugin/anomalies/metadata.yaml @@ -1,85 +1,87 @@ -meta: - plugin_name: python.d.plugin - module_name: anomalies - monitored_instance: - name: python.d anomalies - link: '' - categories: [] - icon_filename: '' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: '' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: anomalies_anomaly_probabilities - link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf - metric: anomalies.probability - info: average anomaly probability over the last 2 minutes -- name: anomalies_anomaly_flags - link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf - metric: anomalies.anomaly - info: number of anomalies in the last 2 minutes -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] - metrics: - - name: anomalies.probability - description: Anomaly Probability - unit: "probability" - chart_type: line - dimensions: - - name: a dimension per probability - - name: anomalies.anomaly - description: Anomaly - unit: "count" - chart_type: stacked - dimensions: - - name: a dimension per anomaly +# NOTE: this file is commented out as users are reccomended to use the +# native anomaly detection capabilities on the agent instead. +# meta: +# plugin_name: python.d.plugin +# module_name: anomalies +# monitored_instance: +# name: python.d anomalies +# link: "" +# categories: [] +# icon_filename: "" +# related_resources: +# integrations: +# list: [] +# info_provided_to_referring_integrations: +# description: "" +# keywords: [] +# most_popular: false +# overview: +# data_collection: +# metrics_description: "" +# method_description: "" +# supported_platforms: +# include: [] +# exclude: [] +# multi_instance: true +# additional_permissions: +# description: "" +# default_behavior: +# auto_detection: +# description: "" +# limits: +# description: "" +# performance_impact: +# description: "" +# setup: +# prerequisites: +# list: [] +# configuration: +# file: +# name: "" +# description: "" +# options: +# description: "" +# folding: +# title: "" +# enabled: true +# list: [] +# examples: +# folding: +# enabled: true +# title: "" +# list: [] +# troubleshooting: +# problems: +# list: [] +# alerts: +# - name: anomalies_anomaly_probabilities +# link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf +# metric: anomalies.probability +# info: average anomaly probability over the last 2 minutes +# - name: anomalies_anomaly_flags +# link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf +# metric: anomalies.anomaly +# info: number of anomalies in the last 2 minutes +# metrics: +# folding: +# title: Metrics +# enabled: false +# description: "" +# availability: [] +# scopes: +# - name: global +# description: "" +# labels: [] +# metrics: +# - name: anomalies.probability +# description: Anomaly Probability +# unit: "probability" +# chart_type: line +# dimensions: +# - name: a dimension per probability +# - name: anomalies.anomaly +# description: Anomaly +# unit: "count" +# chart_type: stacked +# dimensions: +# - name: a dimension per anomaly diff --git a/collectors/python.d.plugin/anomalies/metrics.csv b/collectors/python.d.plugin/anomalies/metrics.csv deleted file mode 100644 index 847d9d1d..00000000 --- a/collectors/python.d.plugin/anomalies/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -anomalies.probability,,a dimension per probability,probability,Anomaly Probability,line,,python.d.plugin,anomalies -anomalies.anomaly,,a dimension per anomaly,count,Anomaly,stacked,,python.d.plugin,anomalies diff --git a/collectors/python.d.plugin/beanstalk/metadata.yaml b/collectors/python.d.plugin/beanstalk/metadata.yaml index d8730bb8..b6ff2f11 100644 --- a/collectors/python.d.plugin/beanstalk/metadata.yaml +++ b/collectors/python.d.plugin/beanstalk/metadata.yaml @@ -1,194 +1,263 @@ -meta: - plugin_name: python.d.plugin - module_name: beanstalk - monitored_instance: - name: Beanstalk - link: '' - categories: - - data-collection.message-brokers - icon_filename: 'beanstalk.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Beanstalk metrics to enhance job queueing and processing efficiency. Track job rates, processing times, and queue lengths for better task management.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: beanstalk_server_buried_jobs - link: https://github.com/netdata/netdata/blob/master/health/health.d/beanstalkd.conf - metric: beanstalk.current_jobs - info: number of buried jobs across all tubes. You need to manually kick them so they can be processed. Presence of buried jobs in a tube does not affect new jobs. -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: beanstalk + monitored_instance: + name: Beanstalk + link: "https://beanstalkd.github.io/" + categories: + - data-collection.message-brokers + - data-collection.task-queues + icon_filename: "beanstalk.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - beanstalk + - beanstalkd + - message + most_popular: false + overview: + data_collection: + metrics_description: "Monitor Beanstalk metrics to enhance job queueing and processing efficiency. Track job rates, processing times, and queue lengths for better task management." + method_description: "The collector uses the `beanstalkc` python module to connect to a `beanstalkd` service and gather metrics." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "If no configuration is given, module will attempt to connect to beanstalkd on 127.0.0.1:11300 address." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "beanstalkc python module" + description: The collector requires the `beanstalkc` python module to be installed. + configuration: + file: + name: python.d/beanstalk.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: host + description: IP or URL to a beanstalk service. + default_value: "127.0.0.1" + required: false + - name: port + description: Port to the IP or URL to a beanstalk service. + default_value: "11300" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Remote beanstalk server + description: A basic remote beanstalk server + folding: + enabled: false + config: | + remote: + name: 'beanstalk' + host: '1.2.3.4' + port: 11300 + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + localhost: + name: 'local_beanstalk' + host: '127.0.0.1' + port: 11300 + + remote_job: + name: 'remote_beanstalk' + host: '192.0.2.1' + port: 113000 + troubleshooting: + problems: + list: [] + alerts: + - name: beanstalk_server_buried_jobs + link: https://github.com/netdata/netdata/blob/master/health/health.d/beanstalkd.conf + metric: beanstalk.current_jobs + info: number of buried jobs across all tubes. You need to manually kick them so they can be processed. Presence of buried jobs in a tube does not affect new jobs. metrics: - - name: beanstalk.cpu_usage - description: Cpu Usage - unit: "cpu time" - chart_type: area - dimensions: - - name: user - - name: system - - name: beanstalk.jobs_rate - description: Jobs Rate - unit: "jobs/s" - chart_type: line - dimensions: - - name: total - - name: timeouts - - name: beanstalk.connections_rate - description: Connections Rate - unit: "connections/s" - chart_type: area - dimensions: - - name: connections - - name: beanstalk.commands_rate - description: Commands Rate - unit: "commands/s" - chart_type: stacked - dimensions: - - name: put - - name: peek - - name: peek-ready - - name: peek-delayed - - name: peek-buried - - name: reserve - - name: use - - name: watch - - name: ignore - - name: delete - - name: bury - - name: kick - - name: stats - - name: stats-job - - name: stats-tube - - name: list-tubes - - name: list-tube-used - - name: list-tubes-watched - - name: pause-tube - - name: beanstalk.connections_rate - description: Current Tubes - unit: "tubes" - chart_type: area - dimensions: - - name: tubes - - name: beanstalk.current_jobs - description: Current Jobs - unit: "jobs" - chart_type: stacked - dimensions: - - name: urgent - - name: ready - - name: reserved - - name: delayed - - name: buried - - name: beanstalk.current_connections - description: Current Connections - unit: "connections" - chart_type: line - dimensions: - - name: written - - name: producers - - name: workers - - name: waiting - - name: beanstalk.binlog - description: Binlog - unit: "records/s" - chart_type: line - dimensions: - - name: written - - name: migrated - - name: beanstalk.uptime - description: seconds - unit: "seconds" - chart_type: line - dimensions: - - name: uptime - - name: tube - description: "" - labels: [] - metrics: - - name: beanstalk.jobs_rate - description: Jobs Rate - unit: "jobs/s" - chart_type: area - dimensions: - - name: jobs - - name: beanstalk.jobs - description: Jobs - unit: "jobs" - chart_type: stacked - dimensions: - - name: urgent - - name: ready - - name: reserved - - name: delayed - - name: buried - - name: beanstalk.connections - description: Connections - unit: "connections" - chart_type: stacked - dimensions: - - name: using - - name: waiting - - name: watching - - name: beanstalk.commands - description: Commands - unit: "commands/s" - chart_type: stacked - dimensions: - - name: deletes - - name: pauses - - name: beanstalk.pause - description: Pause - unit: "seconds" - chart_type: stacked - dimensions: - - name: since - - name: left + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: beanstalk.cpu_usage + description: Cpu Usage + unit: "cpu time" + chart_type: area + dimensions: + - name: user + - name: system + - name: beanstalk.jobs_rate + description: Jobs Rate + unit: "jobs/s" + chart_type: line + dimensions: + - name: total + - name: timeouts + - name: beanstalk.connections_rate + description: Connections Rate + unit: "connections/s" + chart_type: area + dimensions: + - name: connections + - name: beanstalk.commands_rate + description: Commands Rate + unit: "commands/s" + chart_type: stacked + dimensions: + - name: put + - name: peek + - name: peek-ready + - name: peek-delayed + - name: peek-buried + - name: reserve + - name: use + - name: watch + - name: ignore + - name: delete + - name: bury + - name: kick + - name: stats + - name: stats-job + - name: stats-tube + - name: list-tubes + - name: list-tube-used + - name: list-tubes-watched + - name: pause-tube + - name: beanstalk.connections_rate + description: Current Tubes + unit: "tubes" + chart_type: area + dimensions: + - name: tubes + - name: beanstalk.current_jobs + description: Current Jobs + unit: "jobs" + chart_type: stacked + dimensions: + - name: urgent + - name: ready + - name: reserved + - name: delayed + - name: buried + - name: beanstalk.current_connections + description: Current Connections + unit: "connections" + chart_type: line + dimensions: + - name: written + - name: producers + - name: workers + - name: waiting + - name: beanstalk.binlog + description: Binlog + unit: "records/s" + chart_type: line + dimensions: + - name: written + - name: migrated + - name: beanstalk.uptime + description: seconds + unit: "seconds" + chart_type: line + dimensions: + - name: uptime + - name: tube + description: "Metrics related to Beanstalk tubes. Each tube produces its own set of the following metrics." + labels: [] + metrics: + - name: beanstalk.jobs_rate + description: Jobs Rate + unit: "jobs/s" + chart_type: area + dimensions: + - name: jobs + - name: beanstalk.jobs + description: Jobs + unit: "jobs" + chart_type: stacked + dimensions: + - name: urgent + - name: ready + - name: reserved + - name: delayed + - name: buried + - name: beanstalk.connections + description: Connections + unit: "connections" + chart_type: stacked + dimensions: + - name: using + - name: waiting + - name: watching + - name: beanstalk.commands + description: Commands + unit: "commands/s" + chart_type: stacked + dimensions: + - name: deletes + - name: pauses + - name: beanstalk.pause + description: Pause + unit: "seconds" + chart_type: stacked + dimensions: + - name: since + - name: left diff --git a/collectors/python.d.plugin/beanstalk/metrics.csv b/collectors/python.d.plugin/beanstalk/metrics.csv deleted file mode 100644 index fe0219d1..00000000 --- a/collectors/python.d.plugin/beanstalk/metrics.csv +++ /dev/null @@ -1,15 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -beanstalk.cpu_usage,,"user, system",cpu time,Cpu Usage,area,,python.d.plugin,beanstalk -beanstalk.jobs_rate,,"total, timeouts",jobs/s,Jobs Rate,line,,python.d.plugin,beanstalk -beanstalk.connections_rate,,connections,connections/s,Connections Rate,area,,python.d.plugin,beanstalk -beanstalk.commands_rate,,"put, peek, peek-ready, peek-delayed, peek-buried, reserve, use, watch, ignore, delete, bury, kick, stats, stats-job, stats-tube, list-tubes, list-tube-used, list-tubes-watched, pause-tube",commands/s,Commands Rate,stacked,,python.d.plugin,beanstalk -beanstalk.connections_rate,,tubes,tubes,Current Tubes,area,,python.d.plugin,beanstalk -beanstalk.current_jobs,,"urgent, ready, reserved, delayed, buried",jobs,Current Jobs,stacked,,python.d.plugin,beanstalk -beanstalk.current_connections,,"written, producers, workers, waiting",connections,Current Connections,line,,python.d.plugin,beanstalk -beanstalk.binlog,,"written, migrated",records/s,Binlog,line,,python.d.plugin,beanstalk -beanstalk.uptime,,uptime,seconds,seconds,line,,python.d.plugin,beanstalk -beanstalk.jobs_rate,tube,jobs,jobs/s,Jobs Rate,area,,python.d.plugin,beanstalk -beanstalk.jobs,tube,"urgent, ready, reserved, delayed, buried",jobs,Jobs,stacked,,python.d.plugin,beanstalk -beanstalk.connections,tube,"using, waiting, watching",connections,Connections,stacked,,python.d.plugin,beanstalk -beanstalk.commands,tube,"deletes, pauses",commands/s,Commands,stacked,,python.d.plugin,beanstalk -beanstalk.pause,tube,"since, left",seconds,Pause,stacked,,python.d.plugin,beanstalk diff --git a/collectors/python.d.plugin/bind_rndc/bind_rndc.conf b/collectors/python.d.plugin/bind_rndc/bind_rndc.conf index 3b7e9a21..84eaf059 100644 --- a/collectors/python.d.plugin/bind_rndc/bind_rndc.conf +++ b/collectors/python.d.plugin/bind_rndc/bind_rndc.conf @@ -63,14 +63,14 @@ # # named_stats_path: 'path to named.stats' # Default: '/var/log/bind/named.stats' #------------------------------------------------------------------------------------------------------------------ -# IMPORTANT Information +# Important Information # -# BIND APPEND logs at EVERY RUN. Its NOT RECOMMENDED to set update_every below 30 sec. -# STRONGLY RECOMMENDED to create a bind-rndc conf file for logrotate +# BIND appends logs at EVERY RUN. It is NOT RECOMMENDED to set update_every below 30 sec. +# It is STRONGLY RECOMMENDED to create a bind-rndc.conf file for logrotate. # # To set up your BIND to dump stats do the following: # -# 1. add to 'named.conf.options' options {}: +# 1. Add to 'named.conf.options' options {}: # statistics-file "/var/log/bind/named.stats"; # # 2. Create bind/ directory in /var/log @@ -83,13 +83,12 @@ # systemctl reload bind9.service # # 5. Run as a root 'rndc stats' to dump (BIND will create named.stats in new directory) -# # -# To ALLOW NETDATA TO RUN 'rndc stats' change '/etc/bind/rndc.key' group to netdata +# To allow Netdata to run 'rndc stats' change '/etc/bind/rndc.key' group to netdata # chown :netdata rndc.key # -# The last BUT NOT least is to create bind-rndc.conf in logrotate.d/ -# The working one +# Last, BUT NOT least, is to create bind-rndc.conf in logrotate.d/: +# # /var/log/bind/named.stats { # # daily @@ -104,7 +103,6 @@ # } # # To test your logrotate conf file run as root: -# # logrotate /etc/logrotate.d/bind-rndc -d (debug dry-run mode) # # ---------------------------------------------------------------------- diff --git a/collectors/python.d.plugin/bind_rndc/metadata.yaml b/collectors/python.d.plugin/bind_rndc/metadata.yaml index 72c3acff..1e9fb24f 100644 --- a/collectors/python.d.plugin/bind_rndc/metadata.yaml +++ b/collectors/python.d.plugin/bind_rndc/metadata.yaml @@ -1,105 +1,191 @@ -meta: - plugin_name: python.d.plugin - module_name: bind_rndc - monitored_instance: - name: ISCBind (RNDC) - link: '' - categories: - - data-collection.dns-and-dhcp-servers - icon_filename: 'isc.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor ISCBind (RNDC) performance for optimal DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: bind_rndc_stats_file_size - link: https://github.com/netdata/netdata/blob/master/health/health.d/bind_rndc.conf - metric: bind_rndc.stats_size - info: BIND statistics-file size -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: bind_rndc + monitored_instance: + name: ISCBind (RNDC) + link: "https://www.isc.org/bind/" + categories: + - data-collection.dns-and-dhcp-servers + icon_filename: "isc.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - dns + - bind + - server + most_popular: false + overview: + data_collection: + metrics_description: "Monitor ISCBind (RNDC) performance for optimal DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery." + method_description: "This collector uses the `rndc` tool to dump (named.stats) statistics then read them to gather Bind Name Server summary performance metrics." + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "If no configuration is given, the collector will attempt to read named.stats file at `/var/log/bind/named.stats`" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "Minimum bind version and permissions" + description: "Version of bind must be >=9.6 and the Netdata user must have permissions to run `rndc stats`" + - title: "Setup log rotate for bind stats" + description: | + BIND appends logs at EVERY RUN. It is NOT RECOMMENDED to set `update_every` below 30 sec. + It is STRONGLY RECOMMENDED to create a `bind-rndc.conf` file for logrotate. + + To set up BIND to dump stats do the following: + + 1. Add to 'named.conf.options' options {}: + `statistics-file "/var/log/bind/named.stats";` + + 2. Create bind/ directory in /var/log: + `cd /var/log/ && mkdir bind` + + 3. Change owner of directory to 'bind' user: + `chown bind bind/` + + 4. RELOAD (NOT restart) BIND: + `systemctl reload bind9.service` + + 5. Run as a root 'rndc stats' to dump (BIND will create named.stats in new directory) + + To allow Netdata to run 'rndc stats' change '/etc/bind/rndc.key' group to netdata: + `chown :netdata rndc.key` + + Last, BUT NOT least, is to create bind-rndc.conf in logrotate.d/: + ``` + /var/log/bind/named.stats { + + daily + rotate 4 + compress + delaycompress + create 0644 bind bind + missingok + postrotate + rndc reload > /dev/null + endscript + } + ``` + To test your logrotate conf file run as root: + `logrotate /etc/logrotate.d/bind-rndc -d (debug dry-run mode)` + configuration: + file: + name: python.d/bind_rndc.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: named_stats_path + description: Path to the named stats, after being dumped by `nrdc` + default_value: "/var/log/bind/named.stats" + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Local bind stats + description: Define a local path to bind stats file + config: | + local: + named_stats_path: '/var/log/bind/named.stats' + troubleshooting: + problems: + list: [] + alerts: + - name: bind_rndc_stats_file_size + link: https://github.com/netdata/netdata/blob/master/health/health.d/bind_rndc.conf + metric: bind_rndc.stats_size + info: BIND statistics-file size metrics: - - name: bind_rndc.name_server_statistics - description: Name Server Statistics - unit: "stats" - chart_type: line - dimensions: - - name: requests - - name: rejected_queries - - name: success - - name: failure - - name: responses - - name: duplicate - - name: recursion - - name: nxrrset - - name: nxdomain - - name: non_auth_answer - - name: auth_answer - - name: dropped_queries - - name: bind_rndc.incoming_queries - description: Incoming queries - unit: "queries" - chart_type: line - dimensions: - - name: a dimension per incoming query type - - name: bind_rndc.outgoing_queries - description: Outgoing queries - unit: "queries" - chart_type: line - dimensions: - - name: a dimension per outgoing query type - - name: bind_rndc.stats_size - description: Named Stats File Size - unit: "MiB" - chart_type: line - dimensions: - - name: stats_size + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: bind_rndc.name_server_statistics + description: Name Server Statistics + unit: "stats" + chart_type: line + dimensions: + - name: requests + - name: rejected_queries + - name: success + - name: failure + - name: responses + - name: duplicate + - name: recursion + - name: nxrrset + - name: nxdomain + - name: non_auth_answer + - name: auth_answer + - name: dropped_queries + - name: bind_rndc.incoming_queries + description: Incoming queries + unit: "queries" + chart_type: line + dimensions: + - name: a dimension per incoming query type + - name: bind_rndc.outgoing_queries + description: Outgoing queries + unit: "queries" + chart_type: line + dimensions: + - name: a dimension per outgoing query type + - name: bind_rndc.stats_size + description: Named Stats File Size + unit: "MiB" + chart_type: line + dimensions: + - name: stats_size diff --git a/collectors/python.d.plugin/bind_rndc/metrics.csv b/collectors/python.d.plugin/bind_rndc/metrics.csv deleted file mode 100644 index 3b073309..00000000 --- a/collectors/python.d.plugin/bind_rndc/metrics.csv +++ /dev/null @@ -1,5 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -bind_rndc.name_server_statistics,,"requests, rejected_queries, success, failure, responses, duplicate, recursion, nxrrset, nxdomain, non_auth_answer, auth_answer, dropped_queries",stats,Name Server Statistics,line,,python.d.plugin,bind_rndc -bind_rndc.incoming_queries,,a dimension per incoming query type,queries,Incoming queries,line,,python.d.plugin,bind_rndc -bind_rndc.outgoing_queries,,a dimension per outgoing query type,queries,Outgoing queries,line,,python.d.plugin,bind_rndc -bind_rndc.stats_size,,stats_size,MiB,Named Stats File Size,line,,python.d.plugin,bind_rndc diff --git a/collectors/python.d.plugin/boinc/metadata.yaml b/collectors/python.d.plugin/boinc/metadata.yaml index a0a7bb32..33a67ac3 100644 --- a/collectors/python.d.plugin/boinc/metadata.yaml +++ b/collectors/python.d.plugin/boinc/metadata.yaml @@ -1,125 +1,198 @@ -meta: - plugin_name: python.d.plugin - module_name: boinc - monitored_instance: - name: BOINC - link: '' - categories: - - data-collection.distributed-computing-systems - icon_filename: 'bolt.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Study BOINC metrics to gain insights into volunteer computing projects. Examine computation times, task completion rates, and project statuses to enhance volunteer computing efforts.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: boinc_total_tasks - link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf - metric: boinc.tasks - info: average number of total tasks over the last 10 minutes - os: "*" -- name: boinc_active_tasks - link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf - metric: boinc.tasks - info: average number of active tasks over the last 10 minutes - os: "*" -- name: boinc_compute_errors - link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf - metric: boinc.states - info: average number of compute errors over the last 10 minutes - os: "*" -- name: boinc_upload_errors - link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf - metric: boinc.states - info: average number of failed uploads over the last 10 minutes - os: "*" -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: boinc + monitored_instance: + name: BOINC + link: "https://boinc.berkeley.edu/" + categories: + - data-collection.distributed-computing-systems + icon_filename: "bolt.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - boinc + - distributed + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors task counts for the Berkeley Open Infrastructure Networking Computing (BOINC) distributed computing client." + method_description: "It uses the same RPC interface that the BOINC monitoring GUI does." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "By default, the module will try to auto-detect the password to the RPC interface by looking in `/var/lib/boinc` for this file (this is the location most Linux distributions use for a system-wide BOINC installation), so things may just work without needing configuration for a local system." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "Boinc RPC interface" + description: BOINC requires use of a password to access it's RPC interface. You can find this password in the `gui_rpc_auth.cfg` file in your BOINC directory. + configuration: + file: + name: python.d/boinc.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: hostname + description: Define a hostname where boinc is running. + default_value: "localhost" + required: false + - name: port + description: The port of boinc RPC interface. + default_value: "" + required: false + - name: password + description: Provide a password to connect to a boinc RPC interface. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Configuration of a remote boinc instance + description: A basic JOB configuration for a remote boinc instance + folding: + enabled: false + config: | + remote: + hostname: '1.2.3.4' + port: 1234 + password: 'some-password' + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + localhost: + name: 'local' + host: '127.0.0.1' + port: 1234 + password: 'some-password' + + remote_job: + name: 'remote' + host: '192.0.2.1' + port: 1234 + password: some-other-password + troubleshooting: + problems: + list: [] + alerts: + - name: boinc_total_tasks + link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf + metric: boinc.tasks + info: average number of total tasks over the last 10 minutes + os: "*" + - name: boinc_active_tasks + link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf + metric: boinc.tasks + info: average number of active tasks over the last 10 minutes + os: "*" + - name: boinc_compute_errors + link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf + metric: boinc.states + info: average number of compute errors over the last 10 minutes + os: "*" + - name: boinc_upload_errors + link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf + metric: boinc.states + info: average number of failed uploads over the last 10 minutes + os: "*" metrics: - - name: boinc.tasks - description: Overall Tasks - unit: "tasks" - chart_type: line - dimensions: - - name: Total - - name: Active - - name: boinc.states - description: Tasks per State - unit: "tasks" - chart_type: line - dimensions: - - name: New - - name: Downloading - - name: Ready to Run - - name: Compute Errors - - name: Uploading - - name: Uploaded - - name: Aborted - - name: Failed Uploads - - name: boinc.sched - description: Tasks per Scheduler State - unit: "tasks" - chart_type: line - dimensions: - - name: Uninitialized - - name: Preempted - - name: Scheduled - - name: boinc.process - description: Tasks per Process State - unit: "tasks" - chart_type: line - dimensions: - - name: Uninitialized - - name: Executing - - name: Suspended - - name: Aborted - - name: Quit - - name: Copy Pending + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: boinc.tasks + description: Overall Tasks + unit: "tasks" + chart_type: line + dimensions: + - name: Total + - name: Active + - name: boinc.states + description: Tasks per State + unit: "tasks" + chart_type: line + dimensions: + - name: New + - name: Downloading + - name: Ready to Run + - name: Compute Errors + - name: Uploading + - name: Uploaded + - name: Aborted + - name: Failed Uploads + - name: boinc.sched + description: Tasks per Scheduler State + unit: "tasks" + chart_type: line + dimensions: + - name: Uninitialized + - name: Preempted + - name: Scheduled + - name: boinc.process + description: Tasks per Process State + unit: "tasks" + chart_type: line + dimensions: + - name: Uninitialized + - name: Executing + - name: Suspended + - name: Aborted + - name: Quit + - name: Copy Pending diff --git a/collectors/python.d.plugin/boinc/metrics.csv b/collectors/python.d.plugin/boinc/metrics.csv deleted file mode 100644 index 98c6e866..00000000 --- a/collectors/python.d.plugin/boinc/metrics.csv +++ /dev/null @@ -1,5 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -boinc.tasks,,"Total, Active",tasks,Overall Tasks,line,,python.d.plugin,boinc -boinc.states,,"New, Downloading, Ready to Run, Compute Errors, Uploading, Uploaded, Aborted, Failed Uploads",tasks,Tasks per State,line,,python.d.plugin,boinc -boinc.sched,,"Uninitialized, Preempted, Scheduled",tasks,Tasks per Scheduler State,line,,python.d.plugin,boinc -boinc.process,,"Uninitialized, Executing, Suspended, Aborted, Quit, Copy Pending",tasks,Tasks per Process State,line,,python.d.plugin,boinc diff --git a/collectors/python.d.plugin/ceph/metadata.yaml b/collectors/python.d.plugin/ceph/metadata.yaml index eabf6b26..0f06470b 100644 --- a/collectors/python.d.plugin/ceph/metadata.yaml +++ b/collectors/python.d.plugin/ceph/metadata.yaml @@ -1,164 +1,223 @@ -meta: - plugin_name: python.d.plugin - module_name: ceph - monitored_instance: - name: Ceph - link: '' - categories: - - data-collection.storage-mount-points-and-filesystems - icon_filename: 'ceph.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Ceph metrics for efficient distributed storage system performance. Keep tabs on cluster health, data redundancy, and latency to ensure reliable storage operations.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: ceph_cluster_space_usage - link: https://github.com/netdata/netdata/blob/master/health/health.d/ceph.conf - metric: ceph.general_usage - info: cluster disk space utilization -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: ceph + monitored_instance: + name: Ceph + link: 'https://ceph.io/' + categories: + - data-collection.storage-mount-points-and-filesystems + icon_filename: 'ceph.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - ceph + - storage + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors Ceph metrics about Cluster statistics, OSD usage, latency and Pool statistics.' + method_description: 'Uses the `rados` python module to connect to a Ceph cluster.' + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: '' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: '`rados` python module' + description: 'Make sure the `rados` python module is installed' + - title: 'Granting read permissions to ceph group from keyring file' + description: 'Execute: `chmod 640 /etc/ceph/ceph.client.admin.keyring`' + - title: 'Create a specific rados_id' + description: 'You can optionally create a rados_id to use instead of admin' + configuration: + file: + name: python.d/ceph.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + - name: config_file + description: Ceph config file + default_value: '' + required: true + - name: keyring_file + description: Ceph keyring file. netdata user must be added into ceph group and keyring file must be read group permission. + default_value: '' + required: true + - name: rados_id + description: A rados user id to use for connecting to the Ceph cluster. + default_value: 'admin' + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic local Ceph cluster + description: A basic configuration to connect to a local Ceph cluster. + folding: + enabled: false + config: | + local: + config_file: '/etc/ceph/ceph.conf' + keyring_file: '/etc/ceph/ceph.client.admin.keyring' + troubleshooting: + problems: + list: [] + alerts: + - name: ceph_cluster_space_usage + link: https://github.com/netdata/netdata/blob/master/health/health.d/ceph.conf + metric: ceph.general_usage + info: cluster disk space utilization metrics: - - name: ceph.general_usage - description: Ceph General Space - unit: "KiB" - chart_type: stacked - dimensions: - - name: avail - - name: used - - name: ceph.general_objects - description: Ceph General Objects - unit: "objects" - chart_type: area - dimensions: - - name: cluster - - name: ceph.general_bytes - description: Ceph General Read/Write Data/s - unit: "KiB/s" - chart_type: area - dimensions: - - name: read - - name: write - - name: ceph.general_operations - description: Ceph General Read/Write Operations/s - unit: "operations" - chart_type: area - dimensions: - - name: read - - name: write - - name: ceph.general_latency - description: Ceph General Apply/Commit latency - unit: "milliseconds" - chart_type: area - dimensions: - - name: apply - - name: commit - - name: ceph.pool_usage - description: Ceph Pools - unit: "KiB" - chart_type: line - dimensions: - - name: a dimension per Ceph Pool - - name: ceph.pool_objects - description: Ceph Pools - unit: "objects" - chart_type: line - dimensions: - - name: a dimension per Ceph Pool - - name: ceph.pool_read_bytes - description: Ceph Read Pool Data/s - unit: "KiB/s" - chart_type: area - dimensions: - - name: a dimension per Ceph Pool - - name: ceph.pool_write_bytes - description: Ceph Write Pool Data/s - unit: "KiB/s" - chart_type: area - dimensions: - - name: a dimension per Ceph Pool - - name: ceph.pool_read_operations - description: Ceph Read Pool Operations/s - unit: "operations" - chart_type: area - dimensions: - - name: a dimension per Ceph Pool - - name: ceph.pool_write_operations - description: Ceph Write Pool Operations/s - unit: "operations" - chart_type: area - dimensions: - - name: a dimension per Ceph Pool - - name: ceph.osd_usage - description: Ceph OSDs - unit: "KiB" - chart_type: line - dimensions: - - name: a dimension per Ceph OSD - - name: ceph.osd_size - description: Ceph OSDs size - unit: "KiB" - chart_type: line - dimensions: - - name: a dimension per Ceph OSD - - name: ceph.apply_latency - description: Ceph OSDs apply latency - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per Ceph OSD - - name: ceph.commit_latency - description: Ceph OSDs commit latency - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per Ceph OSD + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: ceph.general_usage + description: Ceph General Space + unit: "KiB" + chart_type: stacked + dimensions: + - name: avail + - name: used + - name: ceph.general_objects + description: Ceph General Objects + unit: "objects" + chart_type: area + dimensions: + - name: cluster + - name: ceph.general_bytes + description: Ceph General Read/Write Data/s + unit: "KiB/s" + chart_type: area + dimensions: + - name: read + - name: write + - name: ceph.general_operations + description: Ceph General Read/Write Operations/s + unit: "operations" + chart_type: area + dimensions: + - name: read + - name: write + - name: ceph.general_latency + description: Ceph General Apply/Commit latency + unit: "milliseconds" + chart_type: area + dimensions: + - name: apply + - name: commit + - name: ceph.pool_usage + description: Ceph Pools + unit: "KiB" + chart_type: line + dimensions: + - name: a dimension per Ceph Pool + - name: ceph.pool_objects + description: Ceph Pools + unit: "objects" + chart_type: line + dimensions: + - name: a dimension per Ceph Pool + - name: ceph.pool_read_bytes + description: Ceph Read Pool Data/s + unit: "KiB/s" + chart_type: area + dimensions: + - name: a dimension per Ceph Pool + - name: ceph.pool_write_bytes + description: Ceph Write Pool Data/s + unit: "KiB/s" + chart_type: area + dimensions: + - name: a dimension per Ceph Pool + - name: ceph.pool_read_operations + description: Ceph Read Pool Operations/s + unit: "operations" + chart_type: area + dimensions: + - name: a dimension per Ceph Pool + - name: ceph.pool_write_operations + description: Ceph Write Pool Operations/s + unit: "operations" + chart_type: area + dimensions: + - name: a dimension per Ceph Pool + - name: ceph.osd_usage + description: Ceph OSDs + unit: "KiB" + chart_type: line + dimensions: + - name: a dimension per Ceph OSD + - name: ceph.osd_size + description: Ceph OSDs size + unit: "KiB" + chart_type: line + dimensions: + - name: a dimension per Ceph OSD + - name: ceph.apply_latency + description: Ceph OSDs apply latency + unit: "milliseconds" + chart_type: line + dimensions: + - name: a dimension per Ceph OSD + - name: ceph.commit_latency + description: Ceph OSDs commit latency + unit: "milliseconds" + chart_type: line + dimensions: + - name: a dimension per Ceph OSD diff --git a/collectors/python.d.plugin/ceph/metrics.csv b/collectors/python.d.plugin/ceph/metrics.csv deleted file mode 100644 index e64f2cf5..00000000 --- a/collectors/python.d.plugin/ceph/metrics.csv +++ /dev/null @@ -1,16 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -ceph.general_usage,,"avail, used",KiB,Ceph General Space,stacked,,python.d.plugin,ceph -ceph.general_objects,,cluster,objects,Ceph General Objects,area,,python.d.plugin,ceph -ceph.general_bytes,,"read, write",KiB/s,Ceph General Read/Write Data/s,area,,python.d.plugin,ceph -ceph.general_operations,,"read, write",operations,Ceph General Read/Write Operations/s,area,,python.d.plugin,ceph -ceph.general_latency,,"apply, commit",milliseconds,Ceph General Apply/Commit latency,area,,python.d.plugin,ceph -ceph.pool_usage,,a dimension per Ceph Pool,KiB,Ceph Pools,line,,python.d.plugin,ceph -ceph.pool_objects,,a dimension per Ceph Pool,objects,Ceph Pools,line,,python.d.plugin,ceph -ceph.pool_read_bytes,,a dimension per Ceph Pool,KiB/s,Ceph Read Pool Data/s,area,,python.d.plugin,ceph -ceph.pool_write_bytes,,a dimension per Ceph Pool,KiB/s,Ceph Write Pool Data/s,area,,python.d.plugin,ceph -ceph.pool_read_operations,,a dimension per Ceph Pool,operations,Ceph Read Pool Operations/s,area,,python.d.plugin,ceph -ceph.pool_write_operations,,a dimension per Ceph Pool,operations,Ceph Write Pool Operations/s,area,,python.d.plugin,ceph -ceph.osd_usage,,a dimension per Ceph OSD,KiB,Ceph OSDs,line,,python.d.plugin,ceph -ceph.osd_size,,a dimension per Ceph OSD,KiB,Ceph OSDs size,line,,python.d.plugin,ceph -ceph.apply_latency,,a dimension per Ceph OSD,milliseconds,Ceph OSDs apply latency,line,,python.d.plugin,ceph -ceph.commit_latency,,a dimension per Ceph OSD,milliseconds,Ceph OSDs commit latency,line,,python.d.plugin,ceph diff --git a/collectors/python.d.plugin/changefinder/metadata.yaml b/collectors/python.d.plugin/changefinder/metadata.yaml index 99b28e48..6dcd903e 100644 --- a/collectors/python.d.plugin/changefinder/metadata.yaml +++ b/collectors/python.d.plugin/changefinder/metadata.yaml @@ -1,77 +1,80 @@ -meta: - plugin_name: python.d.plugin - module_name: changefinder - monitored_instance: - name: python.d changefinder - link: '' - categories: [] - icon_filename: '' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: '' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: changefinder + monitored_instance: + name: python.d changefinder + link: '' + categories: + - data-collection.other + icon_filename: '' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: [] + most_popular: false + overview: + data_collection: + metrics_description: '' + method_description: '' + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: '' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: [] + configuration: + file: + name: '' + description: '' + options: + description: '' + folding: + title: '' + enabled: true + list: [] + examples: + folding: + enabled: true + title: '' + list: [] + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: changefinder.scores - description: ChangeFinder - unit: "score" - chart_type: line - dimensions: - - name: a dimension per chart - - name: changefinder.flags - description: ChangeFinder - unit: "flag" - chart_type: stacked - dimensions: - - name: a dimension per chart + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "" + labels: [] + metrics: + - name: changefinder.scores + description: ChangeFinder + unit: "score" + chart_type: line + dimensions: + - name: a dimension per chart + - name: changefinder.flags + description: ChangeFinder + unit: "flag" + chart_type: stacked + dimensions: + - name: a dimension per chart diff --git a/collectors/python.d.plugin/changefinder/metrics.csv b/collectors/python.d.plugin/changefinder/metrics.csv deleted file mode 100644 index ecad582b..00000000 --- a/collectors/python.d.plugin/changefinder/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -changefinder.scores,,a dimension per chart,score,ChangeFinder,line,,python.d.plugin,changefinder -changefinder.flags,,a dimension per chart,flag,ChangeFinder,stacked,,python.d.plugin,changefinder diff --git a/collectors/python.d.plugin/dovecot/metadata.yaml b/collectors/python.d.plugin/dovecot/metadata.yaml index 35d820ef..b247da84 100644 --- a/collectors/python.d.plugin/dovecot/metadata.yaml +++ b/collectors/python.d.plugin/dovecot/metadata.yaml @@ -1,146 +1,207 @@ -meta: - plugin_name: python.d.plugin - module_name: dovecot - monitored_instance: - name: Dovecot - link: '' - categories: - - data-collection.mail-servers - icon_filename: 'dovecot.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine Dovecot metrics for insights into IMAP and POP3 server operations. Analyze connection statuses, mailbox operations, and error rates for efficient mail server operations.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: dovecot + monitored_instance: + name: Dovecot + link: 'https://www.dovecot.org/' + categories: + - data-collection.mail-servers + icon_filename: 'dovecot.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - dovecot + - imap + - mail + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors Dovecot metrics about sessions, logins, commands, page faults and more.' + method_description: 'It uses the dovecot socket and executes the `EXPORT global` command to get the statistics.' + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: 'If no configuration is given, the collector will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: 'Dovecot configuration' + description: The Dovecot UNIX socket should have R/W permissions for user netdata, or Dovecot should be configured with a TCP/IP socket. + configuration: + file: + name: python.d/dovecot.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + - name: socket + description: Use this socket to communicate with Devcot + default_value: /var/run/dovecot/stats + required: false + - name: host + description: Instead of using a socket, you can point the collector to an ip for devcot statistics. + default_value: '' + required: false + - name: port + description: Used in combination with host, configures the port devcot listens to. + default_value: '' + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Local TCP + description: A basic TCP configuration. + config: | + localtcpip: + name: 'local' + host: '127.0.0.1' + port: 24242 + - name: Local socket + description: A basic local socket configuration + config: | + localsocket: + name: 'local' + socket: '/var/run/dovecot/stats' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: dovecot.sessions - description: Dovecot Active Sessions - unit: "number" - chart_type: line - dimensions: - - name: active sessions - - name: dovecot.logins - description: Dovecot Logins - unit: "number" - chart_type: line - dimensions: - - name: logins - - name: dovecot.commands - description: Dovecot Commands - unit: "commands" - chart_type: line - dimensions: - - name: commands - - name: dovecot.faults - description: Dovecot Page Faults - unit: "faults" - chart_type: line - dimensions: - - name: minor - - name: major - - name: dovecot.context_switches - description: Dovecot Context Switches - unit: "switches" - chart_type: line - dimensions: - - name: voluntary - - name: involuntary - - name: dovecot.io - description: Dovecot Disk I/O - unit: "KiB/s" - chart_type: area - dimensions: - - name: read - - name: write - - name: dovecot.net - description: Dovecot Network Bandwidth - unit: "kilobits/s" - chart_type: area - dimensions: - - name: read - - name: write - - name: dovecot.syscalls - description: Dovecot Number of SysCalls - unit: "syscalls/s" - chart_type: line - dimensions: - - name: read - - name: write - - name: dovecot.lookup - description: Dovecot Lookups - unit: "number/s" - chart_type: stacked - dimensions: - - name: path - - name: attr - - name: dovecot.cache - description: Dovecot Cache Hits - unit: "hits/s" - chart_type: line - dimensions: - - name: hits - - name: dovecot.auth - description: Dovecot Authentications - unit: "attempts" - chart_type: stacked - dimensions: - - name: ok - - name: failed - - name: dovecot.auth_cache - description: Dovecot Authentication Cache - unit: "number" - chart_type: stacked - dimensions: - - name: hit - - name: miss + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: dovecot.sessions + description: Dovecot Active Sessions + unit: "number" + chart_type: line + dimensions: + - name: active sessions + - name: dovecot.logins + description: Dovecot Logins + unit: "number" + chart_type: line + dimensions: + - name: logins + - name: dovecot.commands + description: Dovecot Commands + unit: "commands" + chart_type: line + dimensions: + - name: commands + - name: dovecot.faults + description: Dovecot Page Faults + unit: "faults" + chart_type: line + dimensions: + - name: minor + - name: major + - name: dovecot.context_switches + description: Dovecot Context Switches + unit: "switches" + chart_type: line + dimensions: + - name: voluntary + - name: involuntary + - name: dovecot.io + description: Dovecot Disk I/O + unit: "KiB/s" + chart_type: area + dimensions: + - name: read + - name: write + - name: dovecot.net + description: Dovecot Network Bandwidth + unit: "kilobits/s" + chart_type: area + dimensions: + - name: read + - name: write + - name: dovecot.syscalls + description: Dovecot Number of SysCalls + unit: "syscalls/s" + chart_type: line + dimensions: + - name: read + - name: write + - name: dovecot.lookup + description: Dovecot Lookups + unit: "number/s" + chart_type: stacked + dimensions: + - name: path + - name: attr + - name: dovecot.cache + description: Dovecot Cache Hits + unit: "hits/s" + chart_type: line + dimensions: + - name: hits + - name: dovecot.auth + description: Dovecot Authentications + unit: "attempts" + chart_type: stacked + dimensions: + - name: ok + - name: failed + - name: dovecot.auth_cache + description: Dovecot Authentication Cache + unit: "number" + chart_type: stacked + dimensions: + - name: hit + - name: miss diff --git a/collectors/python.d.plugin/dovecot/metrics.csv b/collectors/python.d.plugin/dovecot/metrics.csv deleted file mode 100644 index dbffd0b3..00000000 --- a/collectors/python.d.plugin/dovecot/metrics.csv +++ /dev/null @@ -1,13 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -dovecot.sessions,,active sessions,number,Dovecot Active Sessions,line,,python.d.plugin,dovecot -dovecot.logins,,logins,number,Dovecot Logins,line,,python.d.plugin,dovecot -dovecot.commands,,commands,commands,Dovecot Commands,line,,python.d.plugin,dovecot -dovecot.faults,,"minor, major",faults,Dovecot Page Faults,line,,python.d.plugin,dovecot -dovecot.context_switches,,"voluntary, involuntary",switches,Dovecot Context Switches,line,,python.d.plugin,dovecot -dovecot.io,,"read, write",KiB/s,Dovecot Disk I/O,area,,python.d.plugin,dovecot -dovecot.net,,"read, write",kilobits/s,Dovecot Network Bandwidth,area,,python.d.plugin,dovecot -dovecot.syscalls,,"read, write",syscalls/s,Dovecot Number of SysCalls,line,,python.d.plugin,dovecot -dovecot.lookup,,"path, attr",number/s,Dovecot Lookups,stacked,,python.d.plugin,dovecot -dovecot.cache,,hits,hits/s,Dovecot Cache Hits,line,,python.d.plugin,dovecot -dovecot.auth,,"ok, failed",attempts,Dovecot Authentications,stacked,,python.d.plugin,dovecot -dovecot.auth_cache,,"hit, miss",number,Dovecot Authentication Cache,stacked,,python.d.plugin,dovecot diff --git a/collectors/python.d.plugin/example/metadata.yaml b/collectors/python.d.plugin/example/metadata.yaml new file mode 100644 index 00000000..eae84d9e --- /dev/null +++ b/collectors/python.d.plugin/example/metadata.yaml @@ -0,0 +1,138 @@ +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: example + monitored_instance: + name: Example collector + link: https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/example/README.md + categories: + - data-collection.other + icon_filename: "" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - example + - netdata + - python + most_popular: false + overview: + data_collection: + metrics_description: | + Example collector that generates some random numbers as metrics. + + If you want to write your own collector, read our [writing a new Python module](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/README.md#how-to-write-a-new-module) tutorial. + method_description: | + The `get_data()` function uses `random.randint()` to generate a random number which will be collected as a metric. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: python.d/example.conf + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: num_lines + description: The number of lines to create. + default_value: 4 + required: false + - name: lower + description: The lower bound of numbers to randomly sample from. + default_value: 0 + required: false + - name: upper + description: The upper bound of numbers to randomly sample from. + default_value: 100 + required: false + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: Config + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration. + config: | + four_lines: + name: "Four Lines" + update_every: 1 + priority: 60000 + penalty: yes + autodetection_retry: 0 + num_lines: 4 + lower: 0 + upper: 100 + troubleshooting: + problems: + list: [] + alerts: [] + metrics: + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: | + These metrics refer to the entire monitored application. + labels: [] + metrics: + - name: example.random + description: A random number + unit: number + chart_type: line + dimensions: + - name: random diff --git a/collectors/python.d.plugin/exim/metadata.yaml b/collectors/python.d.plugin/exim/metadata.yaml index 092479a0..a8be02d9 100644 --- a/collectors/python.d.plugin/exim/metadata.yaml +++ b/collectors/python.d.plugin/exim/metadata.yaml @@ -1,72 +1,132 @@ -meta: - plugin_name: python.d.plugin - module_name: exim - monitored_instance: - name: Exim - link: '' - categories: - - data-collection.mail-servers - icon_filename: 'exim.jpg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Exim metrics for efficient mail transfer' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: exim + monitored_instance: + name: Exim + link: "https://www.exim.org/" + categories: + - data-collection.mail-servers + icon_filename: "exim.jpg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - exim + - mail + - server + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors Exim mail queue." + method_description: "It uses the `exim` command line binary to get the statistics." + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "Assuming setup prerequisites are met, the collector will try to gather statistics using the method described above, even without any configuration." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "Exim configuration - local installation" + description: | + The module uses the `exim` binary, which can only be executed as root by default. We need to allow other users to `exim` binary. We solve that adding `queue_list_requires_admin` statement in exim configuration and set to `false`, because it is `true` by default. On many Linux distributions, the default location of `exim` configuration is in `/etc/exim.conf`. + + 1. Edit the `exim` configuration with your preferred editor and add: + `queue_list_requires_admin = false` + 2. Restart `exim` and Netdata + - title: "Exim configuration - WHM (CPanel) server" + description: | + On a WHM server, you can reconfigure `exim` over the WHM interface with the following steps. + + 1. Login to WHM + 2. Navigate to Service Configuration --> Exim Configuration Manager --> tab Advanced Editor + 3. Scroll down to the button **Add additional configuration setting** and click on it. + 4. In the new dropdown which will appear above we need to find and choose: + `queue_list_requires_admin` and set to `false` + 5. Scroll to the end and click the **Save** button. + configuration: + file: + name: python.d/exim.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: command + description: Path and command to the `exim` binary + default_value: "exim -bpc" + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Local exim install + description: A basic local exim install + config: | + local: + command: 'exim -bpc' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: exim.qemails - description: Exim Queue Emails - unit: "emails" - chart_type: line - dimensions: - - name: emails + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: exim.qemails + description: Exim Queue Emails + unit: "emails" + chart_type: line + dimensions: + - name: emails diff --git a/collectors/python.d.plugin/exim/metrics.csv b/collectors/python.d.plugin/exim/metrics.csv deleted file mode 100644 index 8e6cc0c2..00000000 --- a/collectors/python.d.plugin/exim/metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -exim.qemails,,emails,emails,Exim Queue Emails,line,,python.d.plugin,exim diff --git a/collectors/python.d.plugin/fail2ban/metadata.yaml b/collectors/python.d.plugin/fail2ban/metadata.yaml index 1c906c67..80aa68b6 100644 --- a/collectors/python.d.plugin/fail2ban/metadata.yaml +++ b/collectors/python.d.plugin/fail2ban/metadata.yaml @@ -1,84 +1,180 @@ -meta: - plugin_name: python.d.plugin - module_name: fail2ban - monitored_instance: - name: Fail2ban - link: '' - categories: - - data-collection.authentication-and-authorization - icon_filename: 'fail2ban.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Fail2ban performance for prime intrusion prevention operations. Monitor ban counts, jail statuses, and failed login attempts to ensure robust network security.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: fail2ban + monitored_instance: + name: Fail2ban + link: https://www.fail2ban.org/ + categories: + - data-collection.authentication-and-authorization + icon_filename: "fail2ban.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - fail2ban + - security + - authentication + - authorization + most_popular: false + overview: + data_collection: + metrics_description: | + Monitor Fail2ban performance for prime intrusion prevention operations. Monitor ban counts, jail statuses, and failed login attempts to ensure robust network security. + method_description: | + It collects metrics through reading the default log and configuration files of fail2ban. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: | + The `fail2ban.log` file must be readable by the user `netdata`. + - change the file ownership and access permissions. + - update `/etc/logrotate.d/fail2ban`` to persist the changes after rotating the log file. + + To change the file ownership and access permissions, execute the following: + + ```shell + sudo chown root:netdata /var/log/fail2ban.log + sudo chmod 640 /var/log/fail2ban.log + ``` + + To persist the changes after rotating the log file, add `create 640 root netdata` to the `/etc/logrotate.d/fail2ban`: + + ```shell + /var/log/fail2ban.log { + + weekly + rotate 4 + compress + + delaycompress + missingok + postrotate + fail2ban-client flushlogs 1>/dev/null + endscript + + # If fail2ban runs as non-root it still needs to have write access + # to logfiles. + # create 640 fail2ban adm + create 640 root netdata + } + ``` + default_behavior: + auto_detection: + description: | + By default the collector will attempt to read log file at /var/log/fail2ban.log and conf file at /etc/fail2ban/jail.local. If conf file is not found default jail is ssh. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: "" + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: log_path + description: path to fail2ban.log. + default_value: /var/log/fail2ban.log + required: false + - name: conf_path + description: path to jail.local/jail.conf. + default_value: /etc/fail2ban/jail.local + required: false + - name: conf_dir + description: path to jail.d/. + default_value: /etc/fail2ban/jail.d/ + required: false + - name: exclude + description: jails you want to exclude from autodetection. + default_value: "" + required: false + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: Config + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration. + config: | + local: + log_path: '/var/log/fail2ban.log' + conf_path: '/etc/fail2ban/jail.local' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: fail2ban.faile_attempts - description: Failed attempts - unit: "attempts/s" - chart_type: line - dimensions: - - name: a dimension per jail - - name: fail2ban.bans - description: Bans - unit: "bans/s" - chart_type: line - dimensions: - - name: a dimension per jail - - name: fail2ban.banned_ips - description: Banned IP addresses (since the last restart of netdata) - unit: "ips" - chart_type: line - dimensions: - - name: a dimension per jail + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: | + These metrics refer to the entire monitored application. + labels: [] + metrics: + - name: fail2ban.failed_attempts + description: Failed attempts + unit: "attempts/s" + chart_type: line + dimensions: + - name: a dimension per jail + - name: fail2ban.bans + description: Bans + unit: "bans/s" + chart_type: line + dimensions: + - name: a dimension per jail + - name: fail2ban.banned_ips + description: Banned IP addresses (since the last restart of netdata) + unit: "ips" + chart_type: line + dimensions: + - name: a dimension per jail diff --git a/collectors/python.d.plugin/fail2ban/metrics.csv b/collectors/python.d.plugin/fail2ban/metrics.csv deleted file mode 100644 index 13ef80f4..00000000 --- a/collectors/python.d.plugin/fail2ban/metrics.csv +++ /dev/null @@ -1,4 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -fail2ban.faile_attempts,,a dimension per jail,attempts/s,Failed attempts,line,,python.d.plugin,fail2ban -fail2ban.bans,,a dimension per jail,bans/s,Bans,line,,python.d.plugin,fail2ban -fail2ban.banned_ips,,a dimension per jail,ips,Banned IP addresses (since the last restart of netdata),line,,python.d.plugin,fail2ban diff --git a/collectors/python.d.plugin/gearman/gearman.conf b/collectors/python.d.plugin/gearman/gearman.conf index c41fd9ff..635e893e 100644 --- a/collectors/python.d.plugin/gearman/gearman.conf +++ b/collectors/python.d.plugin/gearman/gearman.conf @@ -61,8 +61,11 @@ # # Additionally to the above, gearman also supports the following: # -# hostname: localhost # The host running the Gearman server +# host: localhost # The host running the Gearman server # port: 4730 # Port of the Gearman server +# tls: no # Whether to use TLS or not +# cert: /path/to/cert # Path to cert if using TLS +# key: /path/to/key # Path to key if using TLS # ---------------------------------------------------------------------- # AUTO-DETECTION JOB diff --git a/collectors/python.d.plugin/gearman/metadata.yaml b/collectors/python.d.plugin/gearman/metadata.yaml index 49d4e27b..f1760568 100644 --- a/collectors/python.d.plugin/gearman/metadata.yaml +++ b/collectors/python.d.plugin/gearman/metadata.yaml @@ -1,89 +1,168 @@ -meta: - plugin_name: python.d.plugin - module_name: gearman - monitored_instance: - name: Gearman - link: '' - categories: - - data-collection.distributed-computing-systems - icon_filename: 'gearman.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: gearman_workers_queued - link: https://github.com/netdata/netdata/blob/master/health/health.d/gearman.conf - metric: gearman.single_job - info: average number of queued jobs over the last 10 minutes -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: gearman + monitored_instance: + name: Gearman + link: "http://gearman.org/" + categories: + - data-collection.distributed-computing-systems + icon_filename: "gearman.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - gearman + - gearman job server + most_popular: false + overview: + data_collection: + metrics_description: "Monitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management." + method_description: "This collector connects to a Gearman instance via either TCP or unix socket." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "When no configuration file is found, the collector tries to connect to TCP/IP socket: localhost:4730." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "Socket permissions" + description: The gearman UNIX socket should have read permission for user netdata. + configuration: + file: + name: python.d/gearman.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: host + description: URL or IP where gearman is running. + default_value: "localhost" + required: false + - name: port + description: Port of URL or IP where gearman is running. + default_value: "4730" + required: false + - name: tls + description: Use tls to connect to gearman. + default_value: "false" + required: false + - name: cert + description: Provide a certificate file if needed to connect to a TLS gearman instance. + default_value: "" + required: false + - name: key + description: Provide a key file if needed to connect to a TLS gearman instance. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Local gearman service + description: A basic host and port gearman configuration for localhost. + folding: + enabled: false + config: | + localhost: + name: 'local' + host: 'localhost' + port: 4730 + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + localhost: + name: 'local' + host: 'localhost' + port: 4730 + + remote: + name: 'remote' + host: '192.0.2.1' + port: 4730 + troubleshooting: + problems: + list: [] + alerts: + - name: gearman_workers_queued + link: https://github.com/netdata/netdata/blob/master/health/health.d/gearman.conf + metric: gearman.single_job + info: average number of queued jobs over the last 10 minutes metrics: - - name: gearman.total_jobs - description: Total Jobs - unit: "Jobs" - chart_type: line - dimensions: - - name: Pending - - name: Running - - name: gearman job - description: "" - labels: [] - metrics: - - name: gearman.single_job - description: '{job_name}' - unit: "Jobs" - chart_type: stacked - dimensions: - - name: Pending - - name: Idle - - name: Runnning + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: gearman.total_jobs + description: Total Jobs + unit: "Jobs" + chart_type: line + dimensions: + - name: Pending + - name: Running + - name: gearman job + description: "Metrics related to Gearman jobs. Each job produces its own set of the following metrics." + labels: [] + metrics: + - name: gearman.single_job + description: "{job_name}" + unit: "Jobs" + chart_type: stacked + dimensions: + - name: Pending + - name: Idle + - name: Runnning diff --git a/collectors/python.d.plugin/gearman/metrics.csv b/collectors/python.d.plugin/gearman/metrics.csv deleted file mode 100644 index 0592e75d..00000000 --- a/collectors/python.d.plugin/gearman/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -gearman.total_jobs,,"Pending, Running",Jobs,Total Jobs,line,,python.d.plugin,gearman -gearman.single_job,gearman job,"Pending, Idle, Runnning",Jobs,{job_name},stacked,,python.d.plugin,gearman diff --git a/collectors/python.d.plugin/go_expvar/metadata.yaml b/collectors/python.d.plugin/go_expvar/metadata.yaml index 31b85fa1..92669dd9 100644 --- a/collectors/python.d.plugin/go_expvar/metadata.yaml +++ b/collectors/python.d.plugin/go_expvar/metadata.yaml @@ -1,109 +1,319 @@ -meta: - plugin_name: python.d.plugin - module_name: go_expvar - monitored_instance: - name: Go applications - link: '' - categories: - - data-collection.apm - icon_filename: 'go.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Go applications performance for optimal Go language software operations. Monitor runtime statistics, garbage collection, and memory usage to enhance Go application performance.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: go_expvar + monitored_instance: + name: Go applications + link: "https://pkg.go.dev/expvar" + categories: + - data-collection.apm + icon_filename: "go.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - go + - expvar + - application + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors Go applications that expose their metrics with the use of the `expvar` package from the Go standard library. It produces charts for Go runtime memory statistics and optionally any number of custom charts." + method_description: "It connects via http to gather the metrics exposed via the `expvar` package." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "Sample `expvar` usage in a Go application" + description: | + The `expvar` package exposes metrics over HTTP and is very easy to use. + Consider this minimal sample below: + + ```go + package main + + import ( + _ "expvar" + "net/http" + ) + + func main() { + http.ListenAndServe("127.0.0.1:8080", nil) + } + ``` + + When imported this way, the `expvar` package registers a HTTP handler at `/debug/vars` that + exposes Go runtime's memory statistics in JSON format. You can inspect the output by opening + the URL in your browser (or by using `wget` or `curl`). + + Sample output: + + ```json + { + "cmdline": ["./expvar-demo-binary"], + "memstats": {"Alloc":630856,"TotalAlloc":630856,"Sys":3346432,"Lookups":27, <omitted for brevity>} + } + ``` + + You can of course expose and monitor your own variables as well. + Here is a sample Go application that exposes a few custom variables: + + ```go + package main + + import ( + "expvar" + "net/http" + "runtime" + "time" + ) + + func main() { + + tick := time.NewTicker(1 * time.Second) + num_go := expvar.NewInt("runtime.goroutines") + counters := expvar.NewMap("counters") + counters.Set("cnt1", new(expvar.Int)) + counters.Set("cnt2", new(expvar.Float)) + + go http.ListenAndServe(":8080", nil) + + for { + select { + case <- tick.C: + num_go.Set(int64(runtime.NumGoroutine())) + counters.Add("cnt1", 1) + counters.AddFloat("cnt2", 1.452) + } + } + } + ``` + + Apart from the runtime memory stats, this application publishes two counters and the + number of currently running Goroutines and updates these stats every second. + configuration: + file: + name: python.d/go_expvar.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. Each JOB can be used to monitor a different Go application. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: url + description: the URL and port of the expvar endpoint. Please include the whole path of the endpoint, as the expvar handler can be installed in a non-standard location. + default_value: "" + required: true + - name: user + description: If the URL is password protected, this is the username to use. + default_value: "" + required: false + - name: pass + description: If the URL is password protected, this is the password to use. + default_value: "" + required: false + - name: collect_memstats + description: Enables charts for Go runtime's memory statistics. + default_value: "" + required: false + - name: extra_charts + description: Defines extra data/charts to monitor, please see the example below. + default_value: "" + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Monitor a Go app1 application + description: | + The example below sets a configuration for a Go application, called `app1`. Besides the `memstats`, the application also exposes two counters and the number of currently running Goroutines and updates these stats every second. + + The `go_expvar` collector can monitor these as well with the use of the `extra_charts` configuration variable. + + The `extra_charts` variable is a YaML list of Netdata chart definitions. + Each chart definition has the following keys: + + ``` + id: Netdata chart ID + options: a key-value mapping of chart options + lines: a list of line definitions + ``` + + **Note: please do not use dots in the chart or line ID field. + See [this issue](https://github.com/netdata/netdata/pull/1902#issuecomment-284494195) for explanation.** + + Please see these two links to the official Netdata documentation for more information about the values: + + - [External plugins - charts](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md#chart) + - [Chart variables](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/README.md#global-variables-order-and-chart) + + **Line definitions** + + Each chart can define multiple lines (dimensions). + A line definition is a key-value mapping of line options. + Each line can have the following options: + + ``` + # mandatory + expvar_key: the name of the expvar as present in the JSON output of /debug/vars endpoint + expvar_type: value type; supported are "float" or "int" + id: the id of this line/dimension in Netdata + + # optional - Netdata defaults are used if these options are not defined + name: '' + algorithm: absolute + multiplier: 1 + divisor: 100 if expvar_type == float, 1 if expvar_type == int + hidden: False + ``` + + Please see the following link for more information about the options and their default values: + [External plugins - dimensions](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md#dimension) + + Apart from top-level expvars, this plugin can also parse expvars stored in a multi-level map; + All dicts in the resulting JSON document are then flattened to one level. + Expvar names are joined together with '.' when flattening. + + Example: + + ``` + { + "counters": {"cnt1": 1042, "cnt2": 1512.9839999999983}, + "runtime.goroutines": 5 + } + ``` + + In the above case, the exported variables will be available under `runtime.goroutines`, + `counters.cnt1` and `counters.cnt2` expvar_keys. If the flattening results in a key collision, + the first defined key wins and all subsequent keys with the same name are ignored. + config: | + app1: + name : 'app1' + url : 'http://127.0.0.1:8080/debug/vars' + collect_memstats: true + extra_charts: + - id: "runtime_goroutines" + options: + name: num_goroutines + title: "runtime: number of goroutines" + units: goroutines + family: runtime + context: expvar.runtime.goroutines + chart_type: line + lines: + - {expvar_key: 'runtime.goroutines', expvar_type: int, id: runtime_goroutines} + - id: "foo_counters" + options: + name: counters + title: "some random counters" + units: awesomeness + family: counters + context: expvar.foo.counters + chart_type: line + lines: + - {expvar_key: 'counters.cnt1', expvar_type: int, id: counters_cnt1} + - {expvar_key: 'counters.cnt2', expvar_type: float, id: counters_cnt2} + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: expvar.memstats.heap - description: 'memory: size of heap memory structures' - unit: "KiB" - chart_type: line - dimensions: - - name: alloc - - name: inuse - - name: expvar.memstats.stack - description: 'memory: size of stack memory structures' - unit: "KiB" - chart_type: line - dimensions: - - name: inuse - - name: expvar.memstats.mspan - description: 'memory: size of mspan memory structures' - unit: "KiB" - chart_type: line - dimensions: - - name: inuse - - name: expvar.memstats.mcache - description: 'memory: size of mcache memory structures' - unit: "KiB" - chart_type: line - dimensions: - - name: inuse - - name: expvar.memstats.live_objects - description: 'memory: number of live objects' - unit: "objects" - chart_type: line - dimensions: - - name: live - - name: expvar.memstats.sys - description: 'memory: size of reserved virtual address space' - unit: "KiB" - chart_type: line - dimensions: - - name: sys - - name: expvar.memstats.gc_pauses - description: 'memory: average duration of GC pauses' - unit: "ns" - chart_type: line - dimensions: - - name: avg + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: expvar.memstats.heap + description: "memory: size of heap memory structures" + unit: "KiB" + chart_type: line + dimensions: + - name: alloc + - name: inuse + - name: expvar.memstats.stack + description: "memory: size of stack memory structures" + unit: "KiB" + chart_type: line + dimensions: + - name: inuse + - name: expvar.memstats.mspan + description: "memory: size of mspan memory structures" + unit: "KiB" + chart_type: line + dimensions: + - name: inuse + - name: expvar.memstats.mcache + description: "memory: size of mcache memory structures" + unit: "KiB" + chart_type: line + dimensions: + - name: inuse + - name: expvar.memstats.live_objects + description: "memory: number of live objects" + unit: "objects" + chart_type: line + dimensions: + - name: live + - name: expvar.memstats.sys + description: "memory: size of reserved virtual address space" + unit: "KiB" + chart_type: line + dimensions: + - name: sys + - name: expvar.memstats.gc_pauses + description: "memory: average duration of GC pauses" + unit: "ns" + chart_type: line + dimensions: + - name: avg diff --git a/collectors/python.d.plugin/go_expvar/metrics.csv b/collectors/python.d.plugin/go_expvar/metrics.csv deleted file mode 100644 index 5d96ff75..00000000 --- a/collectors/python.d.plugin/go_expvar/metrics.csv +++ /dev/null @@ -1,8 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -expvar.memstats.heap,,"alloc, inuse",KiB,memory: size of heap memory structures,line,,python.d.plugin,go_expvar -expvar.memstats.stack,,inuse,KiB,memory: size of stack memory structures,line,,python.d.plugin,go_expvar -expvar.memstats.mspan,,inuse,KiB,memory: size of mspan memory structures,line,,python.d.plugin,go_expvar -expvar.memstats.mcache,,inuse,KiB,memory: size of mcache memory structures,line,,python.d.plugin,go_expvar -expvar.memstats.live_objects,,live,objects,memory: number of live objects,line,,python.d.plugin,go_expvar -expvar.memstats.sys,,sys,KiB,memory: size of reserved virtual address space,line,,python.d.plugin,go_expvar -expvar.memstats.gc_pauses,,avg,ns,memory: average duration of GC pauses,line,,python.d.plugin,go_expvar diff --git a/collectors/python.d.plugin/haproxy/metadata.yaml b/collectors/python.d.plugin/haproxy/metadata.yaml index 401313e9..82ab37d2 100644 --- a/collectors/python.d.plugin/haproxy/metadata.yaml +++ b/collectors/python.d.plugin/haproxy/metadata.yaml @@ -1,254 +1,322 @@ -meta: - plugin_name: python.d.plugin - module_name: haproxy - monitored_instance: - name: HAProxy - link: '' - categories: - - data-collection.web-servers-and-web-proxies - icon_filename: 'haproxy.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor HAProxy performance for ideal load balancing operations. Monitor session rates, queue lengths, and error rates to maintain balanced network traffic.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: haproxy_backend_server_status - link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf - metric: haproxy_hs.down - info: average number of failed haproxy backend servers over the last 10 seconds -- name: haproxy_backend_status - link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf - metric: haproxy_hb.down - info: average number of failed haproxy backends over the last 10 seconds -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] - metrics: - - name: haproxy_f.bin - description: Kilobytes In - unit: "KiB/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.bout - description: Kilobytes Out - unit: "KiB/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.scur - description: Sessions Active - unit: "sessions" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.qcur - description: Session In Queue - unit: "sessions" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_1xx - description: HTTP responses with 1xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_2xx - description: HTTP responses with 2xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_3xx - description: HTTP responses with 3xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_4xx - description: HTTP responses with 4xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_5xx - description: HTTP responses with 5xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_other - description: HTTP responses with other codes (protocol error) - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_f.hrsp_total - description: HTTP responses - unit: "responses" - chart_type: line - dimensions: - - name: a dimension per frontend server - - name: haproxy_b.bin - description: Kilobytes In - unit: "KiB/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.bout - description: Kilobytes Out - unit: "KiB/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.scur - description: Sessions Active - unit: "sessions" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.qcur - description: Sessions In Queue - unit: "sessions" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_1xx - description: HTTP responses with 1xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_2xx - description: HTTP responses with 2xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_3xx - description: HTTP responses with 3xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_4xx - description: HTTP responses with 4xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_5xx - description: HTTP responses with 5xx code - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_other - description: HTTP responses with other codes (protocol error) - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.hrsp_total - description: HTTP responses (total) - unit: "responses/s" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.qtime - description: The average queue time over the 1024 last requests - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.ctime - description: The average connect time over the 1024 last requests - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.rtime - description: The average response time over the 1024 last requests - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_b.ttime - description: The average total session time over the 1024 last requests - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_hs.down - description: Backend Servers In DOWN State - unit: "failed servers" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_hs.up - description: Backend Servers In UP State - unit: "health servers" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy_hb.down - description: Is Backend Failed? - unit: "boolean" - chart_type: line - dimensions: - - name: a dimension per backend server - - name: haproxy.idle - description: The Ratio Of Polling Time Vs Total Time - unit: "percentage" - chart_type: line - dimensions: - - name: idle +# This collector will not appear in documentation, as the go version is preferred, +# https://github.com/netdata/go.d.plugin/blob/master/modules/haproxy/README.md +# +# +# meta: +# plugin_name: python.d.plugin +# module_name: haproxy +# monitored_instance: +# name: HAProxy +# link: 'https://www.haproxy.org/' +# categories: +# - data-collection.web-servers-and-web-proxies +# icon_filename: 'haproxy.png' +# related_resources: +# integrations: +# list: [] +# info_provided_to_referring_integrations: +# description: '' +# keywords: +# - haproxy +# - tcp +# - balancer +# most_popular: false +# overview: +# data_collection: +# metrics_description: 'This collector monitors HAProxy metrics about frontend servers, backend servers, responses and more.' +# method_description: 'It connects to the HAProxy instance via URL or UNIX socket.' +# supported_platforms: +# include: [] +# exclude: [] +# multi_instance: true +# additional_permissions: +# description: '' +# default_behavior: +# auto_detection: +# description: '' +# limits: +# description: '' +# performance_impact: +# description: '' +# setup: +# prerequisites: +# list: +# - title: 'HAProxy setup for socket' +# description: 'Socket must be readable and writable by the netdata user.' +# - title: 'HAProxy setup for URL' +# description: 'URL must have `stats uri <path>` present in the haproxy config, otherwise you will get HTTP 503 in the haproxy logs.' +# configuration: +# file: +# name: python.d/haproxy.conf +# options: +# description: | +# There are 2 sections: + +# * Global variables +# * One or more JOBS that can define multiple different instances to monitor. + +# The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + +# Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + +# Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. +# folding: +# title: "Config options" +# enabled: true +# list: +# - name: update_every +# description: Sets the default data collection frequency. +# default_value: 5 +# required: false +# - name: priority +# description: Controls the order of charts at the netdata dashboard. +# default_value: 60000 +# required: false +# - name: autodetection_retry +# description: Sets the job re-check interval in seconds. +# default_value: 0 +# required: false +# - name: penalty +# description: Indicates whether to apply penalty to update_every in case of failures. +# default_value: yes +# required: false +# - name: name +# description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. +# default_value: '' +# required: false +# - name: user +# description: Username if stats auth is used. +# default_value: '' +# required: false +# - name: pass +# description: Password if stats auth is used. +# default_value: '' +# required: false +# - name: url +# description: URL to the haproxy_stats endpoint. Also make sure the parameters `csv` and `norefresh` are provided. +# default_value: '' +# required: false +# - name: socket +# description: Unix socket path to the haproxy sock file. +# default_value: '' +# required: false +# examples: +# folding: +# enabled: true +# title: "Config" +# list: +# - name: URL method +# description: Use a URL to specify the endpoint to check for haproxy statistics. +# config: | +# via_url: +# user: 'username' # ONLY IF stats auth is used +# pass: 'password' # # ONLY IF stats auth is used +# url: 'http://ip.address:port/url;csv;norefresh' +# - name: Local socket +# description: Use a local socket to check for haproxy statistics. +# config: | +# via_socket: +# socket: 'path/to/haproxy/sock' +# troubleshooting: +# problems: +# list: [] +# alerts: +# - name: haproxy_backend_server_status +# link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf +# metric: haproxy_hs.down +# info: average number of failed haproxy backend servers over the last 10 seconds +# - name: haproxy_backend_status +# link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf +# metric: haproxy_hb.down +# info: average number of failed haproxy backends over the last 10 seconds +# metrics: +# folding: +# title: Metrics +# enabled: false +# description: "" +# availability: [] +# scopes: +# - name: global +# description: 'These metrics refer to the entire monitored application.' +# labels: [] +# metrics: +# - name: haproxy_f.bin +# description: Kilobytes In +# unit: "KiB/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.bout +# description: Kilobytes Out +# unit: "KiB/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.scur +# description: Sessions Active +# unit: "sessions" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.qcur +# description: Session In Queue +# unit: "sessions" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_1xx +# description: HTTP responses with 1xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_2xx +# description: HTTP responses with 2xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_3xx +# description: HTTP responses with 3xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_4xx +# description: HTTP responses with 4xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_5xx +# description: HTTP responses with 5xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_other +# description: HTTP responses with other codes (protocol error) +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_f.hrsp_total +# description: HTTP responses +# unit: "responses" +# chart_type: line +# dimensions: +# - name: a dimension per frontend server +# - name: haproxy_b.bin +# description: Kilobytes In +# unit: "KiB/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.bout +# description: Kilobytes Out +# unit: "KiB/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.scur +# description: Sessions Active +# unit: "sessions" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.qcur +# description: Sessions In Queue +# unit: "sessions" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_1xx +# description: HTTP responses with 1xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_2xx +# description: HTTP responses with 2xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_3xx +# description: HTTP responses with 3xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_4xx +# description: HTTP responses with 4xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_5xx +# description: HTTP responses with 5xx code +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_other +# description: HTTP responses with other codes (protocol error) +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.hrsp_total +# description: HTTP responses (total) +# unit: "responses/s" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.qtime +# description: The average queue time over the 1024 last requests +# unit: "milliseconds" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.ctime +# description: The average connect time over the 1024 last requests +# unit: "milliseconds" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.rtime +# description: The average response time over the 1024 last requests +# unit: "milliseconds" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_b.ttime +# description: The average total session time over the 1024 last requests +# unit: "milliseconds" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_hs.down +# description: Backend Servers In DOWN State +# unit: "failed servers" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_hs.up +# description: Backend Servers In UP State +# unit: "health servers" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy_hb.down +# description: Is Backend Failed? +# unit: "boolean" +# chart_type: line +# dimensions: +# - name: a dimension per backend server +# - name: haproxy.idle +# description: The Ratio Of Polling Time Vs Total Time +# unit: "percentage" +# chart_type: line +# dimensions: +# - name: idle diff --git a/collectors/python.d.plugin/haproxy/metrics.csv b/collectors/python.d.plugin/haproxy/metrics.csv deleted file mode 100644 index 7c92c566..00000000 --- a/collectors/python.d.plugin/haproxy/metrics.csv +++ /dev/null @@ -1,31 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -haproxy_f.bin,,a dimension per frontend server,KiB/s,Kilobytes In,line,,python.d.plugin,haproxy -haproxy_f.bout,,a dimension per frontend server,KiB/s,Kilobytes Out,line,,python.d.plugin,haproxy -haproxy_f.scur,,a dimension per frontend server,sessions,Sessions Active,line,,python.d.plugin,haproxy -haproxy_f.qcur,,a dimension per frontend server,sessions,Session In Queue,line,,python.d.plugin,haproxy -haproxy_f.hrsp_1xx,,a dimension per frontend server,responses/s,HTTP responses with 1xx code,line,,python.d.plugin,haproxy -haproxy_f.hrsp_2xx,,a dimension per frontend server,responses/s,HTTP responses with 2xx code,line,,python.d.plugin,haproxy -haproxy_f.hrsp_3xx,,a dimension per frontend server,responses/s,HTTP responses with 3xx code,line,,python.d.plugin,haproxy -haproxy_f.hrsp_4xx,,a dimension per frontend server,responses/s,HTTP responses with 4xx code,line,,python.d.plugin,haproxy -haproxy_f.hrsp_5xx,,a dimension per frontend server,responses/s,HTTP responses with 5xx code,line,,python.d.plugin,haproxy -haproxy_f.hrsp_other,,a dimension per frontend server,responses/s,HTTP responses with other codes (protocol error),line,,python.d.plugin,haproxy -haproxy_f.hrsp_total,,a dimension per frontend server,responses,HTTP responses,line,,python.d.plugin,haproxy -haproxy_b.bin,,a dimension per backend server,KiB/s,Kilobytes In,line,,python.d.plugin,haproxy -haproxy_b.bout,,a dimension per backend server,KiB/s,Kilobytes Out,line,,python.d.plugin,haproxy -haproxy_b.scur,,a dimension per backend server,sessions,Sessions Active,line,,python.d.plugin,haproxy -haproxy_b.qcur,,a dimension per backend server,sessions,Sessions In Queue,line,,python.d.plugin,haproxy -haproxy_b.hrsp_1xx,,a dimension per backend server,responses/s,HTTP responses with 1xx code,line,,python.d.plugin,haproxy -haproxy_b.hrsp_2xx,,a dimension per backend server,responses/s,HTTP responses with 2xx code,line,,python.d.plugin,haproxy -haproxy_b.hrsp_3xx,,a dimension per backend server,responses/s,HTTP responses with 3xx code,line,,python.d.plugin,haproxy -haproxy_b.hrsp_4xx,,a dimension per backend server,responses/s,HTTP responses with 4xx code,line,,python.d.plugin,haproxy -haproxy_b.hrsp_5xx,,a dimension per backend server,responses/s,HTTP responses with 5xx code,line,,python.d.plugin,haproxy -haproxy_b.hrsp_other,,a dimension per backend server,responses/s,HTTP responses with other codes (protocol error),line,,python.d.plugin,haproxy -haproxy_b.hrsp_total,,a dimension per backend server,responses/s,HTTP responses (total),line,,python.d.plugin,haproxy -haproxy_b.qtime,,a dimension per backend server,milliseconds,The average queue time over the 1024 last requests,line,,python.d.plugin,haproxy -haproxy_b.ctime,,a dimension per backend server,milliseconds,The average connect time over the 1024 last requests,line,,python.d.plugin,haproxy -haproxy_b.rtime,,a dimension per backend server,milliseconds,The average response time over the 1024 last requests,line,,python.d.plugin,haproxy -haproxy_b.ttime,,a dimension per backend server,milliseconds,The average total session time over the 1024 last requests,line,,python.d.plugin,haproxy -haproxy_hs.down,,a dimension per backend server,failed servers,Backend Servers In DOWN State,line,,python.d.plugin,haproxy -haproxy_hs.up,,a dimension per backend server,health servers,Backend Servers In UP State,line,,python.d.plugin,haproxy -haproxy_hb.down,,a dimension per backend server,boolean,Is Backend Failed?,line,,python.d.plugin,haproxy -haproxy.idle,,idle,percentage,The Ratio Of Polling Time Vs Total Time,line,,python.d.plugin,haproxy diff --git a/collectors/python.d.plugin/hddtemp/metadata.yaml b/collectors/python.d.plugin/hddtemp/metadata.yaml index 7c78a752..ee62dc96 100644 --- a/collectors/python.d.plugin/hddtemp/metadata.yaml +++ b/collectors/python.d.plugin/hddtemp/metadata.yaml @@ -1,72 +1,163 @@ -meta: - plugin_name: python.d.plugin - module_name: hddtemp - monitored_instance: - name: HDD temperature - link: '' - categories: - - data-collection.hardware-devices-and-sensors - icon_filename: 'hard-drive.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor HDD temperature metrics for maintaining optimal hard drive health. Keep tabs on drive temperatures, read/write speeds, and error rates to ensure hard drive longevity.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: hddtemp + monitored_instance: + name: HDD temperature + link: https://linux.die.net/man/8/hddtemp + categories: + - data-collection.hardware-devices-and-sensors + icon_filename: "hard-drive.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - hardware + - hdd temperature + - disk temperature + - temperature + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors disk temperatures. + method_description: | + It uses the `hddtemp` daemon to gather the metrics. + supported_platforms: + include: + - Linux + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: By default, this collector will attempt to connect to the `hddtemp` daemon on `127.0.0.1:7634` + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Run `hddtemp` in daemon mode + description: | + You can execute `hddtemp` in TCP/IP daemon mode by using the `-d` argument. + + So running `hddtemp -d` would run the daemon, by default on port 7634. + configuration: + file: + name: "python.d/hddtemp.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + + By default this collector will try to autodetect disks (autodetection works only for disk which names start with "sd"). However this can be overridden by setting the option `disks` to an array of desired disks. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "local" + required: false + - name: devices + description: Array of desired disks to detect, in case their name doesn't start with `sd`. + default_value: "" + required: false + - name: host + description: The IP or HOSTNAME to connect to. + default_value: "localhost" + required: true + - name: port + description: The port to connect to. + default_value: 7634 + required: false + examples: + folding: + enabled: true + title: "" + list: + - name: Basic + description: A basic example configuration. + folding: + enabled: false + config: | + localhost: + name: 'local' + host: '127.0.0.1' + port: 7634 + - name: Custom disk names + description: An example defining the disk names to detect. + config: | + localhost: + name: 'local' + host: '127.0.0.1' + port: 7634 + devices: + - customdisk1 + - customdisk2 + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + localhost: + name: 'local' + host: '127.0.0.1' + port: 7634 + + remote_job: + name : 'remote' + host : 'http://192.0.2.1:2812' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: hddtemp.temperatures - description: Disk Temperatures - unit: "Celsius" - chart_type: line - dimensions: - - name: a dimension per disk + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: hddtemp.temperatures + description: Disk Temperatures + unit: "Celsius" + chart_type: line + dimensions: + - name: a dimension per disk diff --git a/collectors/python.d.plugin/hddtemp/metrics.csv b/collectors/python.d.plugin/hddtemp/metrics.csv deleted file mode 100644 index c3a858db..00000000 --- a/collectors/python.d.plugin/hddtemp/metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -hddtemp.temperatures,,a dimension per disk,Celsius,Disk Temperatures,line,,python.d.plugin,hddtemp diff --git a/collectors/python.d.plugin/hpssa/metadata.yaml b/collectors/python.d.plugin/hpssa/metadata.yaml index cc340780..dc91f05e 100644 --- a/collectors/python.d.plugin/hpssa/metadata.yaml +++ b/collectors/python.d.plugin/hpssa/metadata.yaml @@ -1,99 +1,175 @@ -meta: - plugin_name: python.d.plugin - module_name: hpssa - monitored_instance: - name: HP Smart Storage Arrays - link: '' - categories: - - data-collection.storage-mount-points-and-filesystems - icon_filename: 'hp.jpeg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine HP Smart Storage Arrays metrics with Netdata for efficient storage management. Improve your storage efficiency with real-time performance insights.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: hpssa + monitored_instance: + name: HP Smart Storage Arrays + link: 'https://buy.hpe.com/us/en/software/server-management-software/server-management-software/smart-array-management-software/hpe-smart-storage-administrator/p/5409020' + categories: + - data-collection.storage-mount-points-and-filesystems + icon_filename: 'hp.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - storage + - hp + - hpssa + - array + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors HP Smart Storage Arrays metrics about operational statuses and temperatures.' + method_description: 'It uses the command line tool `ssacli`. The exact command used is `sudo -n ssacli ctrl all show config detail`' + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: 'If no configuration is provided, the collector will try to execute the `ssacli` binary.' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: 'Allow user netdata to execute `ssacli` as root.' + description: | + This module uses `ssacli`, which can only be executed by root. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `ssacli` as root without a password. + + - Add to your `/etc/sudoers` file: + + `which ssacli` shows the full path to the binary. + + ```bash + netdata ALL=(root) NOPASSWD: /path/to/ssacli + ``` + + - Reset Netdata's systemd + unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux + distributions with systemd) + + The default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `ssacli` using `sudo`. + + As the `root` user, do the following: + + ```cmd + mkdir /etc/systemd/system/netdata.service.d + echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf + systemctl daemon-reload + systemctl restart netdata.service + ``` + configuration: + file: + name: python.d/hpssa.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + - name: ssacli_path + description: Path to the `ssacli` command line utility. Configure this if `ssacli` is not in the $PATH + default_value: '' + required: false + - name: use_sudo + description: Whether or not to use `sudo` to execute `ssacli` + default_value: 'True' + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Local simple config + description: A basic configuration, specyfing the path to `ssacli` + folding: + enabled: false + config: | + local: + ssacli_path: /usr/sbin/ssacli + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: hpssa.ctrl_status - description: Status 1 is OK, Status 0 is not OK - unit: "Status" - chart_type: line - dimensions: - - name: ctrl_{adapter slot}_status - - name: cache_{adapter slot}_status - - name: battery_{adapter slot}_status per adapter - - name: hpssa.ctrl_temperature - description: Temperature - unit: "Celsius" - chart_type: line - dimensions: - - name: ctrl_{adapter slot}_temperature - - name: cache_{adapter slot}_temperature per adapter - - name: hpssa.ld_status - description: Status 1 is OK, Status 0 is not OK - unit: "Status" - chart_type: line - dimensions: - - name: a dimension per logical drive - - name: hpssa.pd_status - description: Status 1 is OK, Status 0 is not OK - unit: "Status" - chart_type: line - dimensions: - - name: a dimension per physical drive - - name: hpssa.pd_temperature - description: Temperature - unit: "Celsius" - chart_type: line - dimensions: - - name: a dimension per physical drive + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: hpssa.ctrl_status + description: Status 1 is OK, Status 0 is not OK + unit: "Status" + chart_type: line + dimensions: + - name: ctrl_{adapter slot}_status + - name: cache_{adapter slot}_status + - name: battery_{adapter slot}_status per adapter + - name: hpssa.ctrl_temperature + description: Temperature + unit: "Celsius" + chart_type: line + dimensions: + - name: ctrl_{adapter slot}_temperature + - name: cache_{adapter slot}_temperature per adapter + - name: hpssa.ld_status + description: Status 1 is OK, Status 0 is not OK + unit: "Status" + chart_type: line + dimensions: + - name: a dimension per logical drive + - name: hpssa.pd_status + description: Status 1 is OK, Status 0 is not OK + unit: "Status" + chart_type: line + dimensions: + - name: a dimension per physical drive + - name: hpssa.pd_temperature + description: Temperature + unit: "Celsius" + chart_type: line + dimensions: + - name: a dimension per physical drive diff --git a/collectors/python.d.plugin/hpssa/metrics.csv b/collectors/python.d.plugin/hpssa/metrics.csv deleted file mode 100644 index 126ba5da..00000000 --- a/collectors/python.d.plugin/hpssa/metrics.csv +++ /dev/null @@ -1,6 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -hpssa.ctrl_status,,"ctrl_{adapter slot}_status, cache_{adapter slot}_status, battery_{adapter slot}_status per adapter",Status,"Status 1 is OK, Status 0 is not OK",line,,python.d.plugin,hpssa -hpssa.ctrl_temperature,,"ctrl_{adapter slot}_temperature, cache_{adapter slot}_temperature per adapter",Celsius,Temperature,line,,python.d.plugin,hpssa -hpssa.ld_status,,a dimension per logical drive,Status,"Status 1 is OK, Status 0 is not OK",line,,python.d.plugin,hpssa -hpssa.pd_status,,a dimension per physical drive,Status,"Status 1 is OK, Status 0 is not OK",line,,python.d.plugin,hpssa -hpssa.pd_temperature,,a dimension per physical drive,Celsius,Temperature,line,,python.d.plugin,hpssa diff --git a/collectors/python.d.plugin/icecast/metadata.yaml b/collectors/python.d.plugin/icecast/metadata.yaml index 7b71360d..4bcf5e39 100644 --- a/collectors/python.d.plugin/icecast/metadata.yaml +++ b/collectors/python.d.plugin/icecast/metadata.yaml @@ -1,72 +1,127 @@ -meta: - plugin_name: python.d.plugin - module_name: icecast - monitored_instance: - name: Icecast - link: '' - categories: - - data-collection.media-streaming-servers - icon_filename: 'icecast.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine Icecast metrics for insights into media streaming server operations. Study listener counts, bitrate, and connection statuses for smooth streaming services.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: icecast + monitored_instance: + name: Icecast + link: 'https://icecast.org/' + categories: + - data-collection.media-streaming-servers + icon_filename: 'icecast.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - icecast + - streaming + - media + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors Icecast listener counts.' + method_description: 'It connects to an icecast URL and uses the `status-json.xsl` endpoint to retrieve statistics.' + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: 'Without configuration, the collector attempts to connect to http://localhost:8443/status-json.xsl' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: 'Icecast minimum version' + description: 'Needs at least icecast version >= 2.4.0' + configuration: + file: + name: python.d/icecast.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + - name: url + description: The URL (and port) to the icecast server. Needs to also include `/status-json.xsl` + default_value: 'http://localhost:8443/status-json.xsl' + required: false + - name: user + description: Username to use to connect to `url` if it's password protected. + default_value: '' + required: false + - name: pass + description: Password to use to connect to `url` if it's password protected. + default_value: '' + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Remote Icecast server + description: Configure a remote icecast server + folding: + enabled: false + config: | + remote: + url: 'http://1.2.3.4:8443/status-json.xsl' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: icecast.listeners - description: Number Of Listeners - unit: "listeners" - chart_type: line - dimensions: - - name: a dimension for each active source + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: icecast.listeners + description: Number Of Listeners + unit: "listeners" + chart_type: line + dimensions: + - name: a dimension for each active source diff --git a/collectors/python.d.plugin/icecast/metrics.csv b/collectors/python.d.plugin/icecast/metrics.csv deleted file mode 100644 index e05c0504..00000000 --- a/collectors/python.d.plugin/icecast/metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -icecast.listeners,,a dimension for each active source,listeners,Number Of Listeners,line,,python.d.plugin,icecast diff --git a/collectors/python.d.plugin/ipfs/metadata.yaml b/collectors/python.d.plugin/ipfs/metadata.yaml index 51e50e2a..dbc421c9 100644 --- a/collectors/python.d.plugin/ipfs/metadata.yaml +++ b/collectors/python.d.plugin/ipfs/metadata.yaml @@ -1,98 +1,172 @@ -meta: - plugin_name: python.d.plugin - module_name: ipfs - monitored_instance: - name: IPFS - link: '' - categories: - - data-collection.storage-mount-points-and-filesystems - icon_filename: 'ipfs.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine IPFS metrics for insights into distributed file system operations. Analyze node connectivity, data replication, and retrieval times for efficient distributed file handling.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: ipfs_datastore_usage - link: https://github.com/netdata/netdata/blob/master/health/health.d/ipfs.conf - metric: ipfs.repo_size - info: IPFS datastore utilization -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: ipfs + monitored_instance: + name: IPFS + link: "https://ipfs.tech/" + categories: + - data-collection.storage-mount-points-and-filesystems + icon_filename: "ipfs.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: [] + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors IPFS server metrics about its quality and performance." + method_description: "It connects to an http endpoint of the IPFS server to collect the metrics" + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "If the endpoint is accessible by the Agent, netdata will autodetect it" + limits: + description: | + Calls to the following endpoints are disabled due to IPFS bugs: + + /api/v0/stats/repo (https://github.com/ipfs/go-ipfs/issues/3874) + /api/v0/pin/ls (https://github.com/ipfs/go-ipfs/issues/7528) + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: "python.d/ipfs.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: The JOB's name as it will appear at the dashboard (by default is the job_name) + default_value: job_name + required: false + - name: url + description: URL to the IPFS API + default_value: no + required: true + - name: repoapi + description: Collect repo metrics. + default_value: no + required: false + - name: pinapi + description: Set status of IPFS pinned object polling. + default_value: no + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic (default out-of-the-box) + description: A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. + folding: + enabled: false + config: | + localhost: + name: 'local' + url: 'http://localhost:5001' + repoapi: no + pinapi: no + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + localhost: + name: 'local' + url: 'http://localhost:5001' + repoapi: no + pinapi: no + + remote_host: + name: 'remote' + url: 'http://192.0.2.1:5001' + repoapi: no + pinapi: no + troubleshooting: + problems: + list: [] + alerts: + - name: ipfs_datastore_usage + link: https://github.com/netdata/netdata/blob/master/health/health.d/ipfs.conf + metric: ipfs.repo_size + info: IPFS datastore utilization metrics: - - name: ipfs.bandwidth - description: IPFS Bandwidth - unit: "kilobits/s" - chart_type: line - dimensions: - - name: in - - name: out - - name: ipfs.peers - description: IPFS Peers - unit: "peers" - chart_type: line - dimensions: - - name: peers - - name: ipfs.repo_size - description: IPFS Repo Size - unit: "GiB" - chart_type: area - dimensions: - - name: avail - - name: size - - name: ipfs.repo_objects - description: IPFS Repo Objects - unit: "objects" - chart_type: line - dimensions: - - name: objects - - name: pinned - - name: recursive_pins + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: ipfs.bandwidth + description: IPFS Bandwidth + unit: "kilobits/s" + chart_type: line + dimensions: + - name: in + - name: out + - name: ipfs.peers + description: IPFS Peers + unit: "peers" + chart_type: line + dimensions: + - name: peers + - name: ipfs.repo_size + description: IPFS Repo Size + unit: "GiB" + chart_type: area + dimensions: + - name: avail + - name: size + - name: ipfs.repo_objects + description: IPFS Repo Objects + unit: "objects" + chart_type: line + dimensions: + - name: objects + - name: pinned + - name: recursive_pins diff --git a/collectors/python.d.plugin/ipfs/metrics.csv b/collectors/python.d.plugin/ipfs/metrics.csv deleted file mode 100644 index 33dd43c9..00000000 --- a/collectors/python.d.plugin/ipfs/metrics.csv +++ /dev/null @@ -1,5 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -ipfs.bandwidth,,"in, out",kilobits/s,IPFS Bandwidth,line,,python.d.plugin,ipfs -ipfs.peers,,peers,peers,IPFS Peers,line,,python.d.plugin,ipfs -ipfs.repo_size,,"avail, size",GiB,IPFS Repo Size,area,,python.d.plugin,ipfs -ipfs.repo_objects,,"objects, pinned, recursive_pins",objects,IPFS Repo Objects,line,,python.d.plugin,ipfs diff --git a/collectors/python.d.plugin/litespeed/metadata.yaml b/collectors/python.d.plugin/litespeed/metadata.yaml index 43a26775..400f3a7f 100644 --- a/collectors/python.d.plugin/litespeed/metadata.yaml +++ b/collectors/python.d.plugin/litespeed/metadata.yaml @@ -1,124 +1,168 @@ -meta: - plugin_name: python.d.plugin - module_name: litespeed - monitored_instance: - name: Litespeed - link: '' - categories: - - data-collection.web-servers-and-web-proxies - icon_filename: 'litespeed.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine Litespeed metrics for insights into web server operations. Analyze request rates, response times, and error rates for efficient web service delivery.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: litespeed + monitored_instance: + name: Litespeed + link: "https://www.litespeedtech.com/products/litespeed-web-server" + categories: + - data-collection.web-servers-and-web-proxies + icon_filename: "litespeed.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - litespeed + - web + - server + most_popular: false + overview: + data_collection: + metrics_description: "Examine Litespeed metrics for insights into web server operations. Analyze request rates, response times, and error rates for efficient web service delivery." + method_description: "The collector uses the statistics under /tmp/lshttpd to gather the metrics." + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "If no configuration is present, the collector will attempt to read files under /tmp/lshttpd/." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: python.d/litespeed.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: path + description: Use a different path than the default, where the lightspeed stats files reside. + default_value: "/tmp/lshttpd/" + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Set the path to statistics + description: Change the path for the litespeed stats files + config: | + localhost: + name: 'local' + path: '/tmp/lshttpd' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: litespeed.net_throughput - description: Network Throughput HTTP - unit: "kilobits/s" - chart_type: area - dimensions: - - name: in - - name: out - - name: litespeed.net_throughput - description: Network Throughput HTTPS - unit: "kilobits/s" - chart_type: area - dimensions: - - name: in - - name: out - - name: litespeed.connections - description: Connections HTTP - unit: "conns" - chart_type: stacked - dimensions: - - name: free - - name: used - - name: litespeed.connections - description: Connections HTTPS - unit: "conns" - chart_type: stacked - dimensions: - - name: free - - name: used - - name: litespeed.requests - description: Requests - unit: "requests/s" - chart_type: line - dimensions: - - name: requests - - name: litespeed.requests_processing - description: Requests In Processing - unit: "requests" - chart_type: line - dimensions: - - name: processing - - name: litespeed.cache - description: Public Cache Hits - unit: "hits/s" - chart_type: line - dimensions: - - name: hits - - name: litespeed.cache - description: Private Cache Hits - unit: "hits/s" - chart_type: line - dimensions: - - name: hits - - name: litespeed.static - description: Static Hits - unit: "hits/s" - chart_type: line - dimensions: - - name: hits + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: litespeed.net_throughput + description: Network Throughput HTTP + unit: "kilobits/s" + chart_type: area + dimensions: + - name: in + - name: out + - name: litespeed.net_throughput + description: Network Throughput HTTPS + unit: "kilobits/s" + chart_type: area + dimensions: + - name: in + - name: out + - name: litespeed.connections + description: Connections HTTP + unit: "conns" + chart_type: stacked + dimensions: + - name: free + - name: used + - name: litespeed.connections + description: Connections HTTPS + unit: "conns" + chart_type: stacked + dimensions: + - name: free + - name: used + - name: litespeed.requests + description: Requests + unit: "requests/s" + chart_type: line + dimensions: + - name: requests + - name: litespeed.requests_processing + description: Requests In Processing + unit: "requests" + chart_type: line + dimensions: + - name: processing + - name: litespeed.cache + description: Public Cache Hits + unit: "hits/s" + chart_type: line + dimensions: + - name: hits + - name: litespeed.cache + description: Private Cache Hits + unit: "hits/s" + chart_type: line + dimensions: + - name: hits + - name: litespeed.static + description: Static Hits + unit: "hits/s" + chart_type: line + dimensions: + - name: hits diff --git a/collectors/python.d.plugin/litespeed/metrics.csv b/collectors/python.d.plugin/litespeed/metrics.csv deleted file mode 100644 index 56e50e42..00000000 --- a/collectors/python.d.plugin/litespeed/metrics.csv +++ /dev/null @@ -1,10 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -litespeed.net_throughput,,"in, out",kilobits/s,Network Throughput HTTP,area,,python.d.plugin,litespeed -litespeed.net_throughput,,"in, out",kilobits/s,Network Throughput HTTPS,area,,python.d.plugin,litespeed -litespeed.connections,,"free, used",conns,Connections HTTP,stacked,,python.d.plugin,litespeed -litespeed.connections,,"free, used",conns,Connections HTTPS,stacked,,python.d.plugin,litespeed -litespeed.requests,,requests,requests/s,Requests,line,,python.d.plugin,litespeed -litespeed.requests_processing,,processing,requests,Requests In Processing,line,,python.d.plugin,litespeed -litespeed.cache,,hits,hits/s,Public Cache Hits,line,,python.d.plugin,litespeed -litespeed.cache,,hits,hits/s,Private Cache Hits,line,,python.d.plugin,litespeed -litespeed.static,,hits,hits/s,Static Hits,line,,python.d.plugin,litespeed diff --git a/collectors/python.d.plugin/megacli/metadata.yaml b/collectors/python.d.plugin/megacli/metadata.yaml index 75238dc8..f75a8d2a 100644 --- a/collectors/python.d.plugin/megacli/metadata.yaml +++ b/collectors/python.d.plugin/megacli/metadata.yaml @@ -1,120 +1,193 @@ -meta: - plugin_name: python.d.plugin - module_name: megacli - monitored_instance: - name: MegaCLI - link: '' - categories: - - data-collection.storage-mount-points-and-filesystems - icon_filename: 'hard-drive.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: megacli_adapter_state - link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf - metric: megacli.adapter_degraded - info: 'adapter is in the degraded state (0: false, 1: true)' -- name: megacli_pd_media_errors - link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf - metric: megacli.pd_media_error - info: number of physical drive media errors -- name: megacli_pd_predictive_failures - link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf - metric: megacli.pd_predictive_failure - info: number of physical drive predictive failures -- name: megacli_bbu_relative_charge - link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf - metric: megacli.bbu_relative_charge - info: average battery backup unit (BBU) relative state of charge over the last 10 seconds -- name: megacli_bbu_cycle_count - link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf - metric: megacli.bbu_cycle_count - info: average battery backup unit (BBU) charge cycles count over the last 10 seconds -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: megacli + monitored_instance: + name: MegaCLI + link: "https://wikitech.wikimedia.org/wiki/MegaCli" + categories: + - data-collection.storage-mount-points-and-filesystems + icon_filename: "hard-drive.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - storage + - raid-controller + - manage-disks + most_popular: false + overview: + data_collection: + metrics_description: "Examine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics." + method_description: | + Collects adapter, physical drives and battery stats using megacli command-line tool + + Executed commands: + + sudo -n megacli -LDPDInfo -aAll + sudo -n megacli -AdpBbuCmd -a0 + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "The module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password." + default_behavior: + auto_detection: + description: "After all the permissions are satisfied, netdata should be to execute commands via the megacli command line utility" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Grant permissions for netdata, to run megacli as sudoer + description: | + The module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password. + + Add to your /etc/sudoers file: + which megacli shows the full path to the binary. + + ```bash + netdata ALL=(root) NOPASSWD: /path/to/megacli + ``` + - title: "Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)" + description: | + The default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo. + + As root user, do the following: + + ```bash + mkdir /etc/systemd/system/netdata.service.d + echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf + systemctl daemon-reload + systemctl restart netdata.service + ``` + configuration: + file: + name: "python.d/megacli.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: do_battery + description: default is no. Battery stats (adds additional call to megacli `megacli -AdpBbuCmd -a0`). + default_value: no + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration per job + config: | + job_name: + name: myname + update_every: 1 + priority: 60000 + penalty: yes + autodetection_retry: 0 + troubleshooting: + problems: + list: [] + alerts: + - name: megacli_adapter_state + link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf + metric: megacli.adapter_degraded + info: "adapter is in the degraded state (0: false, 1: true)" + - name: megacli_pd_media_errors + link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf + metric: megacli.pd_media_error + info: number of physical drive media errors + - name: megacli_pd_predictive_failures + link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf + metric: megacli.pd_predictive_failure + info: number of physical drive predictive failures + - name: megacli_bbu_relative_charge + link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf + metric: megacli.bbu_relative_charge + info: average battery backup unit (BBU) relative state of charge over the last 10 seconds + - name: megacli_bbu_cycle_count + link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf + metric: megacli.bbu_cycle_count + info: average battery backup unit (BBU) charge cycles count over the last 10 seconds metrics: - - name: megacli.adapter_degraded - description: Adapter State - unit: "is degraded" - chart_type: line - dimensions: - - name: a dimension per adapter - - name: megacli.pd_media_error - description: Physical Drives Media Errors - unit: "errors/s" - chart_type: line - dimensions: - - name: a dimension per physical drive - - name: megacli.pd_predictive_failure - description: Physical Drives Predictive Failures - unit: "failures/s" - chart_type: line - dimensions: - - name: a dimension per physical drive - - name: battery - description: "" - labels: [] - metrics: - - name: megacli.bbu_relative_charge - description: Relative State of Charge - unit: "percentage" - chart_type: line - dimensions: - - name: adapter {battery id} - - name: megacli.bbu_cycle_count - description: Cycle Count - unit: "cycle count" - chart_type: line - dimensions: - - name: adapter {battery id} + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: megacli.adapter_degraded + description: Adapter State + unit: "is degraded" + chart_type: line + dimensions: + - name: a dimension per adapter + - name: megacli.pd_media_error + description: Physical Drives Media Errors + unit: "errors/s" + chart_type: line + dimensions: + - name: a dimension per physical drive + - name: megacli.pd_predictive_failure + description: Physical Drives Predictive Failures + unit: "failures/s" + chart_type: line + dimensions: + - name: a dimension per physical drive + - name: battery + description: "Metrics related to Battery Backup Units, each BBU provides its own set of the following metrics." + labels: [] + metrics: + - name: megacli.bbu_relative_charge + description: Relative State of Charge + unit: "percentage" + chart_type: line + dimensions: + - name: adapter {battery id} + - name: megacli.bbu_cycle_count + description: Cycle Count + unit: "cycle count" + chart_type: line + dimensions: + - name: adapter {battery id} diff --git a/collectors/python.d.plugin/megacli/metrics.csv b/collectors/python.d.plugin/megacli/metrics.csv deleted file mode 100644 index 6d7b00bf..00000000 --- a/collectors/python.d.plugin/megacli/metrics.csv +++ /dev/null @@ -1,6 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -megacli.adapter_degraded,,a dimension per adapter,is degraded,Adapter State,line,,python.d.plugin,megacli -megacli.pd_media_error,,a dimension per physical drive,errors/s,Physical Drives Media Errors,line,,python.d.plugin,megacli -megacli.pd_predictive_failure,,a dimension per physical drive,failures/s,Physical Drives Predictive Failures,line,,python.d.plugin,megacli -megacli.bbu_relative_charge,battery,adapter {battery id},percentage,Relative State of Charge,line,,python.d.plugin,megacli -megacli.bbu_cycle_count,battery,adapter {battery id},cycle count,Cycle Count,line,,python.d.plugin,megacli diff --git a/collectors/python.d.plugin/memcached/metadata.yaml b/collectors/python.d.plugin/memcached/metadata.yaml index 46195a46..38c9f685 100644 --- a/collectors/python.d.plugin/memcached/metadata.yaml +++ b/collectors/python.d.plugin/memcached/metadata.yaml @@ -1,175 +1,247 @@ -meta: - plugin_name: python.d.plugin - module_name: memcached - monitored_instance: - name: Memcached - link: '' - categories: - - data-collection.database-servers - icon_filename: 'memcached.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Memcached metrics for proficient in-memory key-value store operations. Track cache hits, misses, and memory usage for efficient data caching.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: memcached_cache_memory_usage - link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf - metric: memcached.cache - info: cache memory utilization -- name: memcached_cache_fill_rate - link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf - metric: memcached.cache - info: average rate the cache fills up (positive), or frees up (negative) space over the last hour -- name: memcached_out_of_cache_space_time - link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf - metric: memcached.cache - info: estimated time the cache will run out of space if the system continues to add data at the same rate as the past hour -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: memcached + monitored_instance: + name: Memcached + link: https://memcached.org/ + categories: + - data-collection.database-servers + icon_filename: "memcached.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - memcached + - memcache + - cache + - database + most_popular: false + overview: + data_collection: + metrics_description: "Monitor Memcached metrics for proficient in-memory key-value store operations. Track cache hits, misses, and memory usage for efficient data caching." + method_description: "It reads server response to stats command ([stats interface](https://github.com/memcached/memcached/wiki/Commands#stats))." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: | + If no configuration is given, collector will attempt to connect to memcached instance on `127.0.0.1:11211` address. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: python.d/memcached.conf + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: host + description: the host to connect to. + default_value: "127.0.0.1" + required: false + - name: port + description: the port to connect to. + default_value: "11211" + required: false + - name: update_every + description: Sets the default data collection frequency. + default_value: 10 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: localhost + description: An example configuration for localhost. + folding: + enabled: false + config: | + localhost: + name: 'local' + host: 'localhost' + port: 11211 + - name: localipv4 + description: An example configuration for localipv4. + folding: + enabled: true + config: | + localhost: + name: 'local' + host: '127.0.0.1' + port: 11211 + - name: localipv6 + description: An example configuration for localipv6. + folding: + enabled: true + config: | + localhost: + name: 'local' + host: '::1' + port: 11211 + troubleshooting: + problems: + list: [] + alerts: + - name: memcached_cache_memory_usage + link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf + metric: memcached.cache + info: cache memory utilization + - name: memcached_cache_fill_rate + link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf + metric: memcached.cache + info: average rate the cache fills up (positive), or frees up (negative) space over the last hour + - name: memcached_out_of_cache_space_time + link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf + metric: memcached.cache + info: estimated time the cache will run out of space if the system continues to add data at the same rate as the past hour metrics: - - name: memcached.cache - description: Cache Size - unit: "MiB" - chart_type: stacked - dimensions: - - name: available - - name: used - - name: memcached.net - description: Network - unit: "kilobits/s" - chart_type: area - dimensions: - - name: in - - name: out - - name: memcached.connections - description: Connections - unit: "connections/s" - chart_type: line - dimensions: - - name: current - - name: rejected - - name: total - - name: memcached.items - description: Items - unit: "items" - chart_type: line - dimensions: - - name: current - - name: total - - name: memcached.evicted_reclaimed - description: Evicted and Reclaimed Items - unit: "items" - chart_type: line - dimensions: - - name: reclaimed - - name: evicted - - name: memcached.get - description: Get Requests - unit: "requests" - chart_type: stacked - dimensions: - - name: hints - - name: misses - - name: memcached.get_rate - description: Get Request Rate - unit: "requests/s" - chart_type: line - dimensions: - - name: rate - - name: memcached.set_rate - description: Set Request Rate - unit: "requests/s" - chart_type: line - dimensions: - - name: rate - - name: memcached.delete - description: Delete Requests - unit: "requests" - chart_type: stacked - dimensions: - - name: hits - - name: misses - - name: memcached.cas - description: Check and Set Requests - unit: "requests" - chart_type: stacked - dimensions: - - name: hits - - name: misses - - name: bad value - - name: memcached.increment - description: Increment Requests - unit: "requests" - chart_type: stacked - dimensions: - - name: hits - - name: misses - - name: memcached.decrement - description: Decrement Requests - unit: "requests" - chart_type: stacked - dimensions: - - name: hits - - name: misses - - name: memcached.touch - description: Touch Requests - unit: "requests" - chart_type: stacked - dimensions: - - name: hits - - name: misses - - name: memcached.touch_rate - description: Touch Request Rate - unit: "requests/s" - chart_type: line - dimensions: - - name: rate + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: memcached.cache + description: Cache Size + unit: "MiB" + chart_type: stacked + dimensions: + - name: available + - name: used + - name: memcached.net + description: Network + unit: "kilobits/s" + chart_type: area + dimensions: + - name: in + - name: out + - name: memcached.connections + description: Connections + unit: "connections/s" + chart_type: line + dimensions: + - name: current + - name: rejected + - name: total + - name: memcached.items + description: Items + unit: "items" + chart_type: line + dimensions: + - name: current + - name: total + - name: memcached.evicted_reclaimed + description: Evicted and Reclaimed Items + unit: "items" + chart_type: line + dimensions: + - name: reclaimed + - name: evicted + - name: memcached.get + description: Get Requests + unit: "requests" + chart_type: stacked + dimensions: + - name: hints + - name: misses + - name: memcached.get_rate + description: Get Request Rate + unit: "requests/s" + chart_type: line + dimensions: + - name: rate + - name: memcached.set_rate + description: Set Request Rate + unit: "requests/s" + chart_type: line + dimensions: + - name: rate + - name: memcached.delete + description: Delete Requests + unit: "requests" + chart_type: stacked + dimensions: + - name: hits + - name: misses + - name: memcached.cas + description: Check and Set Requests + unit: "requests" + chart_type: stacked + dimensions: + - name: hits + - name: misses + - name: bad value + - name: memcached.increment + description: Increment Requests + unit: "requests" + chart_type: stacked + dimensions: + - name: hits + - name: misses + - name: memcached.decrement + description: Decrement Requests + unit: "requests" + chart_type: stacked + dimensions: + - name: hits + - name: misses + - name: memcached.touch + description: Touch Requests + unit: "requests" + chart_type: stacked + dimensions: + - name: hits + - name: misses + - name: memcached.touch_rate + description: Touch Request Rate + unit: "requests/s" + chart_type: line + dimensions: + - name: rate diff --git a/collectors/python.d.plugin/memcached/metrics.csv b/collectors/python.d.plugin/memcached/metrics.csv deleted file mode 100644 index 8016a9d6..00000000 --- a/collectors/python.d.plugin/memcached/metrics.csv +++ /dev/null @@ -1,15 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -memcached.cache,,"available, used",MiB,Cache Size,stacked,,python.d.plugin,memcached -memcached.net,,"in, out",kilobits/s,Network,area,,python.d.plugin,memcached -memcached.connections,,"current, rejected, total",connections/s,Connections,line,,python.d.plugin,memcached -memcached.items,,"current,total",items,Items,line,,python.d.plugin,memcached -memcached.evicted_reclaimed,,"reclaimed, evicted",items,Evicted and Reclaimed Items,line,,python.d.plugin,memcached -memcached.get,,"hints, misses",requests,Get Requests,stacked,,python.d.plugin,memcached -memcached.get_rate,,rate,requests/s,Get Request Rate,line,,python.d.plugin,memcached -memcached.set_rate,,rate,requests/s,Set Request Rate,line,,python.d.plugin,memcached -memcached.delete,,"hits, misses",requests,Delete Requests,stacked,,python.d.plugin,memcached -memcached.cas,,"hits, misses, bad value",requests,Check and Set Requests,stacked,,python.d.plugin,memcached -memcached.increment,,"hits, misses",requests,Increment Requests,stacked,,python.d.plugin,memcached -memcached.decrement,,"hits, misses",requests,Decrement Requests,stacked,,python.d.plugin,memcached -memcached.touch,,"hits, misses",requests,Touch Requests,stacked,,python.d.plugin,memcached -memcached.touch_rate,,rate,requests/s,Touch Request Rate,line,,python.d.plugin,memcached diff --git a/collectors/python.d.plugin/monit/metadata.yaml b/collectors/python.d.plugin/monit/metadata.yaml index bfa3e621..b5127318 100644 --- a/collectors/python.d.plugin/monit/metadata.yaml +++ b/collectors/python.d.plugin/monit/metadata.yaml @@ -1,138 +1,217 @@ -meta: - plugin_name: python.d.plugin - module_name: monit - monitored_instance: - name: Monit - link: '' - categories: - - data-collection.synthetic-checks - icon_filename: 'monit.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Monit performance for optimal system monitoring operations. Monitor system status, process health, and error rates to maintain system stability.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: monit + monitored_instance: + name: Monit + link: https://mmonit.com/monit/ + categories: + - data-collection.synthetic-checks + icon_filename: "monit.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - monit + - mmonit + - supervision tool + - monitrc + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors Monit targets such as filesystems, directories, files, FIFO pipes and more. + method_description: | + It gathers data from Monit's XML interface. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: By default, this collector will attempt to connect to Monit at `http://localhost:2812` + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: "python.d/monit.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "local" + required: false + - name: url + description: The URL to fetch Monit's metrics. + default_value: http://localhost:2812 + required: true + - name: user + description: Username in case the URL is password protected. + default_value: "" + required: false + - name: pass + description: Password in case the URL is password protected. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic configuration example. + folding: + enabled: false + config: | + localhost: + name : 'local' + url : 'http://localhost:2812' + - name: Basic Authentication + description: Example using basic username and password in order to authenticate. + config: | + localhost: + name : 'local' + url : 'http://localhost:2812' + user: 'foo' + pass: 'bar' + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + localhost: + name: 'local' + url: 'http://localhost:2812' + + remote_job: + name: 'remote' + url: 'http://192.0.2.1:2812' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: monit.filesystems - description: Filesystems - unit: "filesystems" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.directories - description: Directories - unit: "directories" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.files - description: Files - unit: "files" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.fifos - description: Pipes (fifo) - unit: "pipes" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.programs - description: Programs statuses - unit: "programs" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.services - description: Processes statuses - unit: "processes" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.process_uptime - description: Processes uptime - unit: "seconds" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.process_threads - description: Processes threads - unit: "threads" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.process_childrens - description: Child processes - unit: "children" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.hosts - description: Hosts - unit: "hosts" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.host_latency - description: Hosts latency - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per target - - name: monit.networks - description: Network interfaces and addresses - unit: "interfaces" - chart_type: line - dimensions: - - name: a dimension per target + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: monit.filesystems + description: Filesystems + unit: "filesystems" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.directories + description: Directories + unit: "directories" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.files + description: Files + unit: "files" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.fifos + description: Pipes (fifo) + unit: "pipes" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.programs + description: Programs statuses + unit: "programs" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.services + description: Processes statuses + unit: "processes" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.process_uptime + description: Processes uptime + unit: "seconds" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.process_threads + description: Processes threads + unit: "threads" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.process_childrens + description: Child processes + unit: "children" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.hosts + description: Hosts + unit: "hosts" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.host_latency + description: Hosts latency + unit: "milliseconds" + chart_type: line + dimensions: + - name: a dimension per target + - name: monit.networks + description: Network interfaces and addresses + unit: "interfaces" + chart_type: line + dimensions: + - name: a dimension per target diff --git a/collectors/python.d.plugin/monit/metrics.csv b/collectors/python.d.plugin/monit/metrics.csv deleted file mode 100644 index 1981a07e..00000000 --- a/collectors/python.d.plugin/monit/metrics.csv +++ /dev/null @@ -1,13 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -monit.filesystems,,a dimension per target,filesystems,Filesystems,line,,python.d.plugin,monit -monit.directories,,a dimension per target,directories,Directories,line,,python.d.plugin,monit -monit.files,,a dimension per target,files,Files,line,,python.d.plugin,monit -monit.fifos,,a dimension per target,pipes,Pipes (fifo),line,,python.d.plugin,monit -monit.programs,,a dimension per target,programs,Programs statuses,line,,python.d.plugin,monit -monit.services,,a dimension per target,processes,Processes statuses,line,,python.d.plugin,monit -monit.process_uptime,,a dimension per target,seconds,Processes uptime,line,,python.d.plugin,monit -monit.process_threads,,a dimension per target,threads,Processes threads,line,,python.d.plugin,monit -monit.process_childrens,,a dimension per target,children,Child processes,line,,python.d.plugin,monit -monit.hosts,,a dimension per target,hosts,Hosts,line,,python.d.plugin,monit -monit.host_latency,,a dimension per target,milliseconds,Hosts latency,line,,python.d.plugin,monit -monit.networks,,a dimension per target,interfaces,Network interfaces and addresses,line,,python.d.plugin,monit diff --git a/collectors/python.d.plugin/nsd/metadata.yaml b/collectors/python.d.plugin/nsd/metadata.yaml index ce4ce35b..bd0a256f 100644 --- a/collectors/python.d.plugin/nsd/metadata.yaml +++ b/collectors/python.d.plugin/nsd/metadata.yaml @@ -1,124 +1,198 @@ -meta: - plugin_name: python.d.plugin - module_name: nsd - monitored_instance: - name: NSD - link: '' - categories: - - data-collection.dns-and-dhcp-servers - icon_filename: 'nsd.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor NSD performance for optimal authoritative DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: nsd + monitored_instance: + name: Name Server Daemon + link: https://nsd.docs.nlnetlabs.nl/en/latest/# + categories: + - data-collection.dns-and-dhcp-servers + icon_filename: "nsd.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - nsd + - name server daemon + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors NSD statistics like queries, zones, protocols, query types and more. + method_description: | + It uses the `nsd-control stats_noreset` command to gather metrics. + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: If permissions are satisfied, the collector will be able to run `nsd-control stats_noreset`, thus collecting metrics. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Provide Netdata the permissions to run the command + description: | + Netdata must have permissions to run the `nsd-control stats_noreset` command. + + You can: + + - Add "netdata" user to "nsd" group: + ``` + usermod -aG nsd netdata + ``` + - Add Netdata to sudoers + 1. Edit the sudoers file: + ``` + visudo -f /etc/sudoers.d/netdata + ``` + 2. Add the entry: + ``` + Defaults:netdata !requiretty + netdata ALL=(ALL) NOPASSWD: /usr/sbin/nsd-control stats_noreset + ``` + + > Note that you will need to set the `command` option to `sudo /usr/sbin/nsd-control stats_noreset` if you use this method. + + configuration: + file: + name: "python.d/nsd.conf" + options: + description: | + This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior. + + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 30 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed + running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: command + description: The command to run + default_value: "nsd-control stats_noreset" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic configuration example. + folding: + enabled: false + config: | + local: + name: 'nsd_local' + command: 'nsd-control stats_noreset' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: nsd.queries - description: queries - unit: "queries/s" - chart_type: line - dimensions: - - name: queries - - name: nsd.zones - description: zones - unit: "zones" - chart_type: stacked - dimensions: - - name: master - - name: slave - - name: nsd.protocols - description: protocol - unit: "queries/s" - chart_type: stacked - dimensions: - - name: udp - - name: udp6 - - name: tcp - - name: tcp6 - - name: nsd.type - description: query type - unit: "queries/s" - chart_type: stacked - dimensions: - - name: A - - name: NS - - name: CNAME - - name: SOA - - name: PTR - - name: HINFO - - name: MX - - name: NAPTR - - name: TXT - - name: AAAA - - name: SRV - - name: ANY - - name: nsd.transfer - description: transfer - unit: "queries/s" - chart_type: stacked - dimensions: - - name: NOTIFY - - name: AXFR - - name: nsd.rcode - description: return code - unit: "queries/s" - chart_type: stacked - dimensions: - - name: NOERROR - - name: FORMERR - - name: SERVFAIL - - name: NXDOMAIN - - name: NOTIMP - - name: REFUSED - - name: YXDOMAIN + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: nsd.queries + description: queries + unit: "queries/s" + chart_type: line + dimensions: + - name: queries + - name: nsd.zones + description: zones + unit: "zones" + chart_type: stacked + dimensions: + - name: master + - name: slave + - name: nsd.protocols + description: protocol + unit: "queries/s" + chart_type: stacked + dimensions: + - name: udp + - name: udp6 + - name: tcp + - name: tcp6 + - name: nsd.type + description: query type + unit: "queries/s" + chart_type: stacked + dimensions: + - name: A + - name: NS + - name: CNAME + - name: SOA + - name: PTR + - name: HINFO + - name: MX + - name: NAPTR + - name: TXT + - name: AAAA + - name: SRV + - name: ANY + - name: nsd.transfer + description: transfer + unit: "queries/s" + chart_type: stacked + dimensions: + - name: NOTIFY + - name: AXFR + - name: nsd.rcode + description: return code + unit: "queries/s" + chart_type: stacked + dimensions: + - name: NOERROR + - name: FORMERR + - name: SERVFAIL + - name: NXDOMAIN + - name: NOTIMP + - name: REFUSED + - name: YXDOMAIN diff --git a/collectors/python.d.plugin/nsd/metrics.csv b/collectors/python.d.plugin/nsd/metrics.csv deleted file mode 100644 index b82812bf..00000000 --- a/collectors/python.d.plugin/nsd/metrics.csv +++ /dev/null @@ -1,7 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -nsd.queries,,queries,queries/s,queries,line,,python.d.plugin,nsd -nsd.zones,,"master, slave",zones,zones,stacked,,python.d.plugin,nsd -nsd.protocols,,"udp, udp6, tcp, tcp6",queries/s,protocol,stacked,,python.d.plugin,nsd -nsd.type,,"A, NS, CNAME, SOA, PTR, HINFO, MX, NAPTR, TXT, AAAA, SRV, ANY",queries/s,query type,stacked,,python.d.plugin,nsd -nsd.transfer,,"NOTIFY, AXFR",queries/s,transfer,stacked,,python.d.plugin,nsd -nsd.rcode,,"NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP, REFUSED, YXDOMAIN",queries/s,return code,stacked,,python.d.plugin,nsd diff --git a/collectors/python.d.plugin/nvidia_smi/metadata.yaml b/collectors/python.d.plugin/nvidia_smi/metadata.yaml index fc0c90d5..9bf1e6ca 100644 --- a/collectors/python.d.plugin/nvidia_smi/metadata.yaml +++ b/collectors/python.d.plugin/nvidia_smi/metadata.yaml @@ -1,163 +1,166 @@ -meta: - plugin_name: python.d.plugin - module_name: nvidia_smi - monitored_instance: - name: python.d nvidia_smi - link: '' - categories: [] - icon_filename: '' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: '' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: GPU - description: "" - labels: [] - metrics: - - name: nvidia_smi.pci_bandwidth - description: PCI Express Bandwidth Utilization - unit: "KiB/s" - chart_type: area - dimensions: - - name: rx - - name: tx - - name: nvidia_smi.pci_bandwidth_percent - description: PCI Express Bandwidth Percent - unit: "percentage" - chart_type: area - dimensions: - - name: rx_percent - - name: tx_percent - - name: nvidia_smi.fan_speed - description: Fan Speed - unit: "percentage" - chart_type: line - dimensions: - - name: speed - - name: nvidia_smi.gpu_utilization - description: GPU Utilization - unit: "percentage" - chart_type: line - dimensions: - - name: utilization - - name: nvidia_smi.mem_utilization - description: Memory Bandwidth Utilization - unit: "percentage" - chart_type: line - dimensions: - - name: utilization - - name: nvidia_smi.encoder_utilization - description: Encoder/Decoder Utilization - unit: "percentage" - chart_type: line - dimensions: - - name: encoder - - name: decoder - - name: nvidia_smi.memory_allocated - description: Memory Usage - unit: "MiB" - chart_type: stacked - dimensions: - - name: free - - name: used - - name: nvidia_smi.bar1_memory_usage - description: Bar1 Memory Usage - unit: "MiB" - chart_type: stacked - dimensions: - - name: free - - name: used - - name: nvidia_smi.temperature - description: Temperature - unit: "celsius" - chart_type: line - dimensions: - - name: temp - - name: nvidia_smi.clocks - description: Clock Frequencies - unit: "MHz" - chart_type: line - dimensions: - - name: graphics - - name: video - - name: sm - - name: mem - - name: nvidia_smi.power - description: Power Utilization - unit: "Watts" - chart_type: line - dimensions: - - name: power - - name: nvidia_smi.power_state - description: Power State - unit: "state" - chart_type: line - dimensions: - - name: a dimension per {power_state} - - name: nvidia_smi.processes_mem - description: Memory Used by Each Process - unit: "MiB" - chart_type: stacked - dimensions: - - name: a dimension per process - - name: nvidia_smi.user_mem - description: Memory Used by Each User - unit: "MiB" - chart_type: stacked - dimensions: - - name: a dimension per user - - name: nvidia_smi.user_num - description: Number of User on GPU - unit: "num" - chart_type: line - dimensions: - - name: users +# This collector will not appear in documentation, as the go version is preferred, +# https://github.com/netdata/go.d.plugin/blob/master/modules/nvidia_smi/README.md +# +# meta: +# plugin_name: python.d.plugin +# module_name: nvidia_smi +# monitored_instance: +# name: python.d nvidia_smi +# link: '' +# categories: [] +# icon_filename: '' +# related_resources: +# integrations: +# list: [] +# info_provided_to_referring_integrations: +# description: '' +# keywords: [] +# most_popular: false +# overview: +# data_collection: +# metrics_description: '' +# method_description: '' +# supported_platforms: +# include: [] +# exclude: [] +# multi_instance: true +# additional_permissions: +# description: '' +# default_behavior: +# auto_detection: +# description: '' +# limits: +# description: '' +# performance_impact: +# description: '' +# setup: +# prerequisites: +# list: [] +# configuration: +# file: +# name: '' +# description: '' +# options: +# description: '' +# folding: +# title: '' +# enabled: true +# list: [] +# examples: +# folding: +# enabled: true +# title: '' +# list: [] +# troubleshooting: +# problems: +# list: [] +# alerts: [] +# metrics: +# folding: +# title: Metrics +# enabled: false +# description: "" +# availability: [] +# scopes: +# - name: GPU +# description: "" +# labels: [] +# metrics: +# - name: nvidia_smi.pci_bandwidth +# description: PCI Express Bandwidth Utilization +# unit: "KiB/s" +# chart_type: area +# dimensions: +# - name: rx +# - name: tx +# - name: nvidia_smi.pci_bandwidth_percent +# description: PCI Express Bandwidth Percent +# unit: "percentage" +# chart_type: area +# dimensions: +# - name: rx_percent +# - name: tx_percent +# - name: nvidia_smi.fan_speed +# description: Fan Speed +# unit: "percentage" +# chart_type: line +# dimensions: +# - name: speed +# - name: nvidia_smi.gpu_utilization +# description: GPU Utilization +# unit: "percentage" +# chart_type: line +# dimensions: +# - name: utilization +# - name: nvidia_smi.mem_utilization +# description: Memory Bandwidth Utilization +# unit: "percentage" +# chart_type: line +# dimensions: +# - name: utilization +# - name: nvidia_smi.encoder_utilization +# description: Encoder/Decoder Utilization +# unit: "percentage" +# chart_type: line +# dimensions: +# - name: encoder +# - name: decoder +# - name: nvidia_smi.memory_allocated +# description: Memory Usage +# unit: "MiB" +# chart_type: stacked +# dimensions: +# - name: free +# - name: used +# - name: nvidia_smi.bar1_memory_usage +# description: Bar1 Memory Usage +# unit: "MiB" +# chart_type: stacked +# dimensions: +# - name: free +# - name: used +# - name: nvidia_smi.temperature +# description: Temperature +# unit: "celsius" +# chart_type: line +# dimensions: +# - name: temp +# - name: nvidia_smi.clocks +# description: Clock Frequencies +# unit: "MHz" +# chart_type: line +# dimensions: +# - name: graphics +# - name: video +# - name: sm +# - name: mem +# - name: nvidia_smi.power +# description: Power Utilization +# unit: "Watts" +# chart_type: line +# dimensions: +# - name: power +# - name: nvidia_smi.power_state +# description: Power State +# unit: "state" +# chart_type: line +# dimensions: +# - name: a dimension per {power_state} +# - name: nvidia_smi.processes_mem +# description: Memory Used by Each Process +# unit: "MiB" +# chart_type: stacked +# dimensions: +# - name: a dimension per process +# - name: nvidia_smi.user_mem +# description: Memory Used by Each User +# unit: "MiB" +# chart_type: stacked +# dimensions: +# - name: a dimension per user +# - name: nvidia_smi.user_num +# description: Number of User on GPU +# unit: "num" +# chart_type: line +# dimensions: +# - name: users diff --git a/collectors/python.d.plugin/nvidia_smi/metrics.csv b/collectors/python.d.plugin/nvidia_smi/metrics.csv deleted file mode 100644 index 683ea565..00000000 --- a/collectors/python.d.plugin/nvidia_smi/metrics.csv +++ /dev/null @@ -1,16 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -nvidia_smi.pci_bandwidth,GPU,"rx, tx",KiB/s,PCI Express Bandwidth Utilization,area,,python.d.plugin,nvidia_smi -nvidia_smi.pci_bandwidth_percent,GPU,"rx_percent, tx_percent",percentage,PCI Express Bandwidth Percent,area,,python.d.plugin,nvidia_smi -nvidia_smi.fan_speed,GPU,speed,percentage,Fan Speed,line,,python.d.plugin,nvidia_smi -nvidia_smi.gpu_utilization,GPU,utilization,percentage,GPU Utilization,line,,python.d.plugin,nvidia_smi -nvidia_smi.mem_utilization,GPU,utilization,percentage,Memory Bandwidth Utilization,line,,python.d.plugin,nvidia_smi -nvidia_smi.encoder_utilization,GPU,"encoder, decoder",percentage,Encoder/Decoder Utilization,line,,python.d.plugin,nvidia_smi -nvidia_smi.memory_allocated,GPU,"free, used",MiB,Memory Usage,stacked,,python.d.plugin,nvidia_smi -nvidia_smi.bar1_memory_usage,GPU,"free, used",MiB,Bar1 Memory Usage,stacked,,python.d.plugin,nvidia_smi -nvidia_smi.temperature,GPU,temp,celsius,Temperature,line,,python.d.plugin,nvidia_smi -nvidia_smi.clocks,GPU,"graphics, video, sm, mem",MHz,Clock Frequencies,line,,python.d.plugin,nvidia_smi -nvidia_smi.power,GPU,power,Watts,Power Utilization,line,,python.d.plugin,nvidia_smi -nvidia_smi.power_state,GPU,a dimension per {power_state},state,Power State,line,,python.d.plugin,nvidia_smi -nvidia_smi.processes_mem,GPU,a dimension per process,MiB,Memory Used by Each Process,stacked,,python.d.plugin,nvidia_smi -nvidia_smi.user_mem,GPU,a dimension per user,MiB,Memory Used by Each User,stacked,,python.d.plugin,nvidia_smi -nvidia_smi.user_num,GPU,users,num,Number of User on GPU,line,,python.d.plugin,nvidia_smi diff --git a/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py b/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py index 271c9963..556a6143 100644 --- a/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py +++ b/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py @@ -62,20 +62,22 @@ POWER_STATES = ['P' + str(i) for i in range(0, 16)] # PCI Transfer data rate in gigabits per second (Gb/s) per generation PCI_SPEED = { - "1": 2.5, - "2": 5, - "3": 8, - "4": 16, - "5": 32 + "1": 2.5, + "2": 5, + "3": 8, + "4": 16, + "5": 32 } # PCI encoding per generation PCI_ENCODING = { - "1": 2/10, - "2": 2/10, - "3": 2/130, - "4": 2/130, - "5": 2/130 + "1": 2 / 10, + "2": 2 / 10, + "3": 2 / 130, + "4": 2 / 130, + "5": 2 / 130 } + + def gpu_charts(gpu): fam = gpu.full_name() @@ -88,7 +90,8 @@ def gpu_charts(gpu): ] }, PCI_BANDWIDTH_PERCENT: { - 'options': [None, 'PCI Express Bandwidth Percent', 'percentage', fam, 'nvidia_smi.pci_bandwidth_percent', 'area'], + 'options': [None, 'PCI Express Bandwidth Percent', 'percentage', fam, 'nvidia_smi.pci_bandwidth_percent', + 'area'], 'lines': [ ['rx_util_percent', 'rx_percent'], ['tx_util_percent', 'tx_percent'], @@ -358,7 +361,8 @@ class GPU: @handle_attr_error def pci_link_width(self): - return self.root.find('pci').find('pci_gpu_link_info').find('link_widths').find('max_link_width').text.split('x')[0] + info = self.root.find('pci').find('pci_gpu_link_info') + return info.find('link_widths').find('max_link_width').text.split('x')[0] def pci_bw_max(self): link_gen = self.pci_link_gen() @@ -368,7 +372,7 @@ class GPU: # Maximum PCIe Bandwidth = SPEED * WIDTH * (1 - ENCODING) - 1Gb/s. # see details https://enterprise-support.nvidia.com/s/article/understanding-pcie-configuration-for-maximum-performance # return max bandwidth in kilobytes per second (kB/s) - return (PCI_SPEED[link_gen] * link_width * (1- PCI_ENCODING[link_gen]) - 1) * 1000 * 1000 / 8 + return (PCI_SPEED[link_gen] * link_width * (1 - PCI_ENCODING[link_gen]) - 1) * 1000 * 1000 / 8 @handle_attr_error def rx_util(self): @@ -435,13 +439,18 @@ class GPU: return self.root.find('clocks').find('mem_clock').text.split()[0] @handle_attr_error + def power_readings(self): + elem = self.root.find('power_readings') + return elem if elem else self.root.find('gpu_power_readings') + + @handle_attr_error def power_state(self): - return str(self.root.find('power_readings').find('power_state').text.split()[0]) + return str(self.power_readings().find('power_state').text.split()[0]) @handle_value_error @handle_attr_error def power_draw(self): - return float(self.root.find('power_readings').find('power_draw').text.split()[0]) * 100 + return float(self.power_readings().find('power_draw').text.split()[0]) * 100 @handle_attr_error def processes(self): @@ -492,7 +501,6 @@ class GPU: data['rx_util_percent'] = str(int(int(self.rx_util()) * 100 / self.pci_bw_max())) data['tx_util_percent'] = str(int(int(self.tx_util()) * 100 / self.pci_bw_max())) - for v in POWER_STATES: data['power_state_' + v.lower()] = 0 p_state = self.power_state() diff --git a/collectors/python.d.plugin/openldap/metadata.yaml b/collectors/python.d.plugin/openldap/metadata.yaml index 413aaf1d..3826b22c 100644 --- a/collectors/python.d.plugin/openldap/metadata.yaml +++ b/collectors/python.d.plugin/openldap/metadata.yaml @@ -1,116 +1,225 @@ -meta: - plugin_name: python.d.plugin - module_name: openldap - monitored_instance: - name: OpenLDAP - link: '' - categories: - - data-collection.authentication-and-authorization - icon_filename: 'statsd.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine OpenLDAP metrics for insights into directory service operations. Analyze query rates, response times, and error rates for efficient directory services.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: openldap + monitored_instance: + name: OpenLDAP + link: "https://www.openldap.org/" + categories: + - data-collection.authentication-and-authorization + icon_filename: "statsd.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - openldap + - RBAC + - Directory access + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors OpenLDAP metrics about connections, operations, referrals and more." + method_description: | + Statistics are taken from the monitoring interface of a openLDAP (slapd) server + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: | + This collector doesn't work until all the prerequisites are checked. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Configure the openLDAP server to expose metrics to monitor it. + description: | + Follow instructions from https://www.openldap.org/doc/admin24/monitoringslapd.html to activate monitoring interface. + - title: Install python-ldap module + description: | + Install python ldap module + + 1. From pip package manager + + ```bash + pip install ldap + ``` + + 2. With apt package manager (in most deb based distros) + + + ```bash + apt-get install python-ldap + ``` + + + 3. With yum package manager (in most rpm based distros) + + + ```bash + yum install python-ldap + ``` + - title: Insert credentials for Netdata to access openLDAP server + description: | + Use the `ldappasswd` utility to set a password for the username you will use. + configuration: + file: + name: "python.d/openldap.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: username + description: The bind user with right to access monitor statistics + default_value: "" + required: true + - name: password + description: The password for the binded user + default_value: "" + required: true + - name: server + description: The listening address of the LDAP server. In case of TLS, use the hostname which the certificate is published for. + default_value: "" + required: true + - name: port + description: The listening port of the LDAP server. Change to 636 port in case of TLS connection. + default_value: "389" + required: true + - name: use_tls + description: Make True if a TLS connection is used over ldaps:// + default_value: False + required: false + - name: use_start_tls + description: Make True if a TLS connection is used over ldap:// + default_value: False + required: false + - name: cert_check + description: False if you want to ignore certificate check + default_value: "True" + required: true + - name: timeout + description: Seconds to timeout if no connection exist + default_value: "" + required: true + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic example configuration. + folding: + enabled: false + config: | + username: "cn=admin" + password: "pass" + server: "localhost" + port: "389" + check_cert: True + timeout: 1 + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: openldap.total_connections - description: Total Connections - unit: "connections/s" - chart_type: line - dimensions: - - name: connections - - name: openldap.traffic_stats - description: Traffic - unit: "KiB/s" - chart_type: line - dimensions: - - name: sent - - name: openldap.operations_status - description: Operations Status - unit: "ops/s" - chart_type: line - dimensions: - - name: completed - - name: initiated - - name: openldap.referrals - description: Referrals - unit: "referrals/s" - chart_type: line - dimensions: - - name: sent - - name: openldap.entries - description: Entries - unit: "entries/s" - chart_type: line - dimensions: - - name: sent - - name: openldap.ldap_operations - description: Operations - unit: "ops/s" - chart_type: line - dimensions: - - name: bind - - name: search - - name: unbind - - name: add - - name: delete - - name: modify - - name: compare - - name: openldap.waiters - description: Waiters - unit: "waiters/s" - chart_type: line - dimensions: - - name: write - - name: read + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: openldap.total_connections + description: Total Connections + unit: "connections/s" + chart_type: line + dimensions: + - name: connections + - name: openldap.traffic_stats + description: Traffic + unit: "KiB/s" + chart_type: line + dimensions: + - name: sent + - name: openldap.operations_status + description: Operations Status + unit: "ops/s" + chart_type: line + dimensions: + - name: completed + - name: initiated + - name: openldap.referrals + description: Referrals + unit: "referrals/s" + chart_type: line + dimensions: + - name: sent + - name: openldap.entries + description: Entries + unit: "entries/s" + chart_type: line + dimensions: + - name: sent + - name: openldap.ldap_operations + description: Operations + unit: "ops/s" + chart_type: line + dimensions: + - name: bind + - name: search + - name: unbind + - name: add + - name: delete + - name: modify + - name: compare + - name: openldap.waiters + description: Waiters + unit: "waiters/s" + chart_type: line + dimensions: + - name: write + - name: read diff --git a/collectors/python.d.plugin/openldap/metrics.csv b/collectors/python.d.plugin/openldap/metrics.csv deleted file mode 100644 index 0386b889..00000000 --- a/collectors/python.d.plugin/openldap/metrics.csv +++ /dev/null @@ -1,8 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -openldap.total_connections,,connections,connections/s,Total Connections,line,,python.d.plugin,openldap -openldap.traffic_stats,,sent,KiB/s,Traffic,line,,python.d.plugin,openldap -openldap.operations_status,,"completed, initiated",ops/s,Operations Status,line,,python.d.plugin,openldap -openldap.referrals,,sent,referrals/s,Referrals,line,,python.d.plugin,openldap -openldap.entries,,sent,entries/s,Entries,line,,python.d.plugin,openldap -openldap.ldap_operations,,"bind, search, unbind, add, delete, modify, compare",ops/s,Operations,line,,python.d.plugin,openldap -openldap.waiters,,"write, read",waiters/s,Waiters,line,,python.d.plugin,openldap diff --git a/collectors/python.d.plugin/oracledb/metadata.yaml b/collectors/python.d.plugin/oracledb/metadata.yaml index 7c530aa5..f2ab8312 100644 --- a/collectors/python.d.plugin/oracledb/metadata.yaml +++ b/collectors/python.d.plugin/oracledb/metadata.yaml @@ -1,216 +1,309 @@ -meta: - plugin_name: python.d.plugin - module_name: oracledb - monitored_instance: - name: OracleDB - link: '' - categories: - - data-collection.database-servers - icon_filename: 'oracle.jpeg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor OracleDB performance for efficient database operations and resource management. Netdata provides real-time insights and alerts for optimal database management.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: oracledb + monitored_instance: + name: Oracle DB + link: "https://docs.oracle.com/en/database/oracle/oracle-database/" + categories: + - data-collection.database-servers + icon_filename: "oracle.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - database + - oracle + - data warehouse + - SQL + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors OracleDB database metrics about sessions, tables, memory and more." + method_description: "It collects the metrics via the supported database client library" + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: | + In order for this collector to work, it needs a read-only user `netdata` in the RDBMS. + default_behavior: + auto_detection: + description: "When the requirements are met, databases on the local host on port 1521 will be auto-detected" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Install the python-oracledb package + description: | + You can follow the official guide below to install the required package: + + Source: https://python-oracledb.readthedocs.io/en/latest/user_guide/installation.html + - title: Create a read only user for netdata + description: | + Follow the official instructions for your oracle RDBMS to create a read-only user for netdata. The operation may follow this approach + + Connect to your Oracle database with an administrative user and execute: + + ```bash + CREATE USER netdata IDENTIFIED BY <PASSWORD>; + + GRANT CONNECT TO netdata; + GRANT SELECT_CATALOG_ROLE TO netdata; + ``` + - title: Edit the configuration + description: | + Edit the configuration troubleshooting: + + 1. Provide a valid user for the netdata collector to access the database + 2. Specify the network target this database is listening. + configuration: + file: + name: "python.d/oracledb.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: user + description: The username for the user account. + default_value: no + required: true + - name: password + description: The password for the user account. + default_value: no + required: true + - name: server + description: The IP address or hostname (and port) of the Oracle Database Server. + default_value: no + required: true + - name: service + description: The Oracle Database service name. To view the services available on your server run this query, `select SERVICE_NAME from gv$session where sid in (select sid from V$MYSTAT)`. + default_value: no + required: true + - name: protocol + description: one of the strings "tcp" or "tcps" indicating whether to use unencrypted network traffic or encrypted network traffic + default_value: no + required: true + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration, two jobs described for two databases. + config: | + local: + user: 'netdata' + password: 'secret' + server: 'localhost:1521' + service: 'XE' + protocol: 'tcps' + + remote: + user: 'netdata' + password: 'secret' + server: '10.0.0.1:1521' + service: 'XE' + protocol: 'tcps' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: oracledb.session_count - description: Session Count - unit: "sessions" - chart_type: line - dimensions: - - name: total - - name: active - - name: oracledb.session_limit_usage - description: Session Limit Usage - unit: "%" - chart_type: area - dimensions: - - name: usage - - name: oracledb.logons - description: Logons - unit: "events/s" - chart_type: area - dimensions: - - name: logons - - name: oracledb.physical_disk_read_writes - description: Physical Disk Reads/Writes - unit: "events/s" - chart_type: area - dimensions: - - name: reads - - name: writes - - name: oracledb.sorts_on_disks - description: Sorts On Disk - unit: "events/s" - chart_type: line - dimensions: - - name: sorts - - name: oracledb.full_table_scans - description: Full Table Scans - unit: "events/s" - chart_type: line - dimensions: - - name: full table scans - - name: oracledb.database_wait_time_ratio - description: Database Wait Time Ratio - unit: "%" - chart_type: line - dimensions: - - name: wait time ratio - - name: oracledb.shared_pool_free_memory - description: Shared Pool Free Memory - unit: "%" - chart_type: line - dimensions: - - name: free memory - - name: oracledb.in_memory_sorts_ratio - description: In-Memory Sorts Ratio - unit: "%" - chart_type: line - dimensions: - - name: in-memory sorts - - name: oracledb.sql_service_response_time - description: SQL Service Response Time - unit: "seconds" - chart_type: line - dimensions: - - name: time - - name: oracledb.user_rollbacks - description: User Rollbacks - unit: "events/s" - chart_type: line - dimensions: - - name: rollbacks - - name: oracledb.enqueue_timeouts - description: Enqueue Timeouts - unit: "events/s" - chart_type: line - dimensions: - - name: enqueue timeouts - - name: oracledb.cache_hit_ration - description: Cache Hit Ratio - unit: "%" - chart_type: stacked - dimensions: - - name: buffer - - name: cursor - - name: library - - name: row - - name: oracledb.global_cache_blocks - description: Global Cache Blocks Events - unit: "events/s" - chart_type: area - dimensions: - - name: corrupted - - name: lost - - name: oracledb.activity - description: Activities - unit: "events/s" - chart_type: stacked - dimensions: - - name: parse count - - name: execute count - - name: user commits - - name: user rollbacks - - name: oracledb.wait_time - description: Wait Time - unit: "ms" - chart_type: stacked - dimensions: - - name: application - - name: configuration - - name: administrative - - name: concurrency - - name: commit - - name: network - - name: user I/O - - name: system I/O - - name: scheduler - - name: other - - name: oracledb.tablespace_size - description: Size - unit: "KiB" - chart_type: line - dimensions: - - name: a dimension per active tablespace - - name: oracledb.tablespace_usage - description: Usage - unit: "KiB" - chart_type: line - dimensions: - - name: a dimension per active tablespace - - name: oracledb.tablespace_usage_in_percent - description: Usage - unit: "%" - chart_type: line - dimensions: - - name: a dimension per active tablespace - - name: oracledb.allocated_size - description: Size - unit: "B" - chart_type: line - dimensions: - - name: a dimension per active tablespace - - name: oracledb.allocated_usage - description: Usage - unit: "B" - chart_type: line - dimensions: - - name: a dimension per active tablespace - - name: oracledb.allocated_usage_in_percent - description: Usage - unit: "%" - chart_type: line - dimensions: - - name: a dimension per active tablespace + folding: + title: Metrics + enabled: false + description: "These metrics refer to the entire monitored application." + availability: [] + scopes: + - name: global + description: "" + labels: [] + metrics: + - name: oracledb.session_count + description: Session Count + unit: "sessions" + chart_type: line + dimensions: + - name: total + - name: active + - name: oracledb.session_limit_usage + description: Session Limit Usage + unit: "%" + chart_type: area + dimensions: + - name: usage + - name: oracledb.logons + description: Logons + unit: "events/s" + chart_type: area + dimensions: + - name: logons + - name: oracledb.physical_disk_read_writes + description: Physical Disk Reads/Writes + unit: "events/s" + chart_type: area + dimensions: + - name: reads + - name: writes + - name: oracledb.sorts_on_disks + description: Sorts On Disk + unit: "events/s" + chart_type: line + dimensions: + - name: sorts + - name: oracledb.full_table_scans + description: Full Table Scans + unit: "events/s" + chart_type: line + dimensions: + - name: full table scans + - name: oracledb.database_wait_time_ratio + description: Database Wait Time Ratio + unit: "%" + chart_type: line + dimensions: + - name: wait time ratio + - name: oracledb.shared_pool_free_memory + description: Shared Pool Free Memory + unit: "%" + chart_type: line + dimensions: + - name: free memory + - name: oracledb.in_memory_sorts_ratio + description: In-Memory Sorts Ratio + unit: "%" + chart_type: line + dimensions: + - name: in-memory sorts + - name: oracledb.sql_service_response_time + description: SQL Service Response Time + unit: "seconds" + chart_type: line + dimensions: + - name: time + - name: oracledb.user_rollbacks + description: User Rollbacks + unit: "events/s" + chart_type: line + dimensions: + - name: rollbacks + - name: oracledb.enqueue_timeouts + description: Enqueue Timeouts + unit: "events/s" + chart_type: line + dimensions: + - name: enqueue timeouts + - name: oracledb.cache_hit_ration + description: Cache Hit Ratio + unit: "%" + chart_type: stacked + dimensions: + - name: buffer + - name: cursor + - name: library + - name: row + - name: oracledb.global_cache_blocks + description: Global Cache Blocks Events + unit: "events/s" + chart_type: area + dimensions: + - name: corrupted + - name: lost + - name: oracledb.activity + description: Activities + unit: "events/s" + chart_type: stacked + dimensions: + - name: parse count + - name: execute count + - name: user commits + - name: user rollbacks + - name: oracledb.wait_time + description: Wait Time + unit: "ms" + chart_type: stacked + dimensions: + - name: application + - name: configuration + - name: administrative + - name: concurrency + - name: commit + - name: network + - name: user I/O + - name: system I/O + - name: scheduler + - name: other + - name: oracledb.tablespace_size + description: Size + unit: "KiB" + chart_type: line + dimensions: + - name: a dimension per active tablespace + - name: oracledb.tablespace_usage + description: Usage + unit: "KiB" + chart_type: line + dimensions: + - name: a dimension per active tablespace + - name: oracledb.tablespace_usage_in_percent + description: Usage + unit: "%" + chart_type: line + dimensions: + - name: a dimension per active tablespace + - name: oracledb.allocated_size + description: Size + unit: "B" + chart_type: line + dimensions: + - name: a dimension per active tablespace + - name: oracledb.allocated_usage + description: Usage + unit: "B" + chart_type: line + dimensions: + - name: a dimension per active tablespace + - name: oracledb.allocated_usage_in_percent + description: Usage + unit: "%" + chart_type: line + dimensions: + - name: a dimension per active tablespace diff --git a/collectors/python.d.plugin/oracledb/metrics.csv b/collectors/python.d.plugin/oracledb/metrics.csv deleted file mode 100644 index 126c5c4c..00000000 --- a/collectors/python.d.plugin/oracledb/metrics.csv +++ /dev/null @@ -1,23 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -oracledb.session_count,,"total, active",sessions,Session Count,line,,python.d.plugin,oracledb -oracledb.session_limit_usage,,usage,%,Session Limit Usage,area,,python.d.plugin,oracledb -oracledb.logons,,logons,events/s,Logons,area,,python.d.plugin,oracledb -oracledb.physical_disk_read_writes,,"reads, writes",events/s,Physical Disk Reads/Writes,area,,python.d.plugin,oracledb -oracledb.sorts_on_disks,,sorts,events/s,Sorts On Disk,line,,python.d.plugin,oracledb -oracledb.full_table_scans,,full table scans,events/s,Full Table Scans,line,,python.d.plugin,oracledb -oracledb.database_wait_time_ratio,,wait time ratio,%,Database Wait Time Ratio,line,,python.d.plugin,oracledb -oracledb.shared_pool_free_memory,,free memory,%,Shared Pool Free Memory,line,,python.d.plugin,oracledb -oracledb.in_memory_sorts_ratio,,in-memory sorts,%,In-Memory Sorts Ratio,line,,python.d.plugin,oracledb -oracledb.sql_service_response_time,,time,seconds,SQL Service Response Time,line,,python.d.plugin,oracledb -oracledb.user_rollbacks,,rollbacks,events/s,User Rollbacks,line,,python.d.plugin,oracledb -oracledb.enqueue_timeouts,,enqueue timeouts,events/s,Enqueue Timeouts,line,,python.d.plugin,oracledb -oracledb.cache_hit_ration,,"buffer, cursor, library, row",%,Cache Hit Ratio,stacked,,python.d.plugin,oracledb -oracledb.global_cache_blocks,,"corrupted, lost",events/s,Global Cache Blocks Events,area,,python.d.plugin,oracledb -oracledb.activity,,"parse count, execute count, user commits, user rollbacks",events/s,Activities,stacked,,python.d.plugin,oracledb -oracledb.wait_time,,"application, configuration, administrative, concurrency, commit, network, user I/O, system I/O, scheduler, other",ms,Wait Time,stacked,,python.d.plugin,oracledb -oracledb.tablespace_size,,a dimension per active tablespace,KiB,Size,line,,python.d.plugin,oracledb -oracledb.tablespace_usage,,a dimension per active tablespace,KiB,Usage,line,,python.d.plugin,oracledb -oracledb.tablespace_usage_in_percent,,a dimension per active tablespace,%,Usage,line,,python.d.plugin,oracledb -oracledb.allocated_size,,a dimension per active tablespace,B,Size,line,,python.d.plugin,oracledb -oracledb.allocated_usage,,a dimension per active tablespace,B,Usage,line,,python.d.plugin,oracledb -oracledb.allocated_usage_in_percent,,a dimension per active tablespace,%,Usage,line,,python.d.plugin,oracledb diff --git a/collectors/python.d.plugin/pandas/metadata.yaml b/collectors/python.d.plugin/pandas/metadata.yaml new file mode 100644 index 00000000..28a1d3b2 --- /dev/null +++ b/collectors/python.d.plugin/pandas/metadata.yaml @@ -0,0 +1,310 @@ +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: pandas + monitored_instance: + name: Pandas + link: https://learn.netdata.cloud/docs/data-collection/generic-data-collection/structured-data-pandas + categories: + - data-collection.generic-data-collection + icon_filename: pandas.png + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - pandas + - python + most_popular: false + overview: + data_collection: + metrics_description: | + [Pandas](https://pandas.pydata.org/) is a de-facto standard in reading and processing most types of structured data in Python. + If you have metrics appearing in a CSV, JSON, XML, HTML, or [other supported format](https://pandas.pydata.org/docs/user_guide/io.html), + either locally or via some HTTP endpoint, you can easily ingest and present those metrics in Netdata, by leveraging the Pandas collector. + + This collector can be used to collect pretty much anything that can be read by Pandas, and then processed by Pandas. + + More detailed information can be found in the Netdata documentation [here](https://learn.netdata.cloud/docs/data-collection/generic-data-collection/structured-data-pandas). + method_description: | + The collector uses [pandas](https://pandas.pydata.org/) to pull data and do pandas-based preprocessing, before feeding to Netdata. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Python Requirements + description: | + This collector depends on some Python (Python 3 only) packages that can usually be installed via `pip` or `pip3`. + + ```bash + sudo pip install pandas requests + ``` + + Note: If you would like to use [`pandas.read_sql`](https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html) to query a database, you will need to install the below packages as well. + + ```bash + sudo pip install 'sqlalchemy<2.0' psycopg2-binary + ``` + configuration: + file: + name: python.d/pandas.conf + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: chart_configs + description: an array of chart configuration dictionaries + default_value: "[]" + required: true + - name: chart_configs.name + description: name of the chart to be displayed in the dashboard. + default_value: None + required: true + - name: chart_configs.title + description: title of the chart to be displayed in the dashboard. + default_value: None + required: true + - name: chart_configs.family + description: "[family](https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#family) of the chart to be displayed in the dashboard." + default_value: None + required: true + - name: chart_configs.context + description: "[context](https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#context) of the chart to be displayed in the dashboard." + default_value: None + required: true + - name: chart_configs.type + description: the type of the chart to be displayed in the dashboard. + default_value: None + required: true + - name: chart_configs.units + description: the units of the chart to be displayed in the dashboard. + default_value: None + required: true + - name: chart_configs.df_steps + description: a series of pandas operations (one per line) that each returns a dataframe. + default_value: None + required: true + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: Config + list: + - name: Temperature API Example + folding: + enabled: true + description: example pulling some hourly temperature data, a chart for today forecast (mean,min,max) and another chart for current. + config: | + temperature: + name: "temperature" + update_every: 5 + chart_configs: + - name: "temperature_forecast_by_city" + title: "Temperature By City - Today Forecast" + family: "temperature.today" + context: "pandas.temperature" + type: "line" + units: "Celsius" + df_steps: > + pd.DataFrame.from_dict( + {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}&hourly=temperature_2m').json()['hourly']['temperature_2m'] + for (city,lat,lng) + in [ + ('dublin', 53.3441, -6.2675), + ('athens', 37.9792, 23.7166), + ('london', 51.5002, -0.1262), + ('berlin', 52.5235, 13.4115), + ('paris', 48.8567, 2.3510), + ('madrid', 40.4167, -3.7033), + ('new_york', 40.71, -74.01), + ('los_angeles', 34.05, -118.24), + ] + } + ); + df.describe(); # get aggregate stats for each city; + df.transpose()[['mean', 'max', 'min']].reset_index(); # just take mean, min, max; + df.rename(columns={'index':'city'}); # some column renaming; + df.pivot(columns='city').mean().to_frame().reset_index(); # force to be one row per city; + df.rename(columns={0:'degrees'}); # some column renaming; + pd.concat([df, df['city']+'_'+df['level_0']], axis=1); # add new column combining city and summary measurement label; + df.rename(columns={0:'measurement'}); # some column renaming; + df[['measurement', 'degrees']].set_index('measurement'); # just take two columns we want; + df.sort_index(); # sort by city name; + df.transpose(); # transpose so its just one wide row; + - name: "temperature_current_by_city" + title: "Temperature By City - Current" + family: "temperature.current" + context: "pandas.temperature" + type: "line" + units: "Celsius" + df_steps: > + pd.DataFrame.from_dict( + {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}¤t_weather=true').json()['current_weather'] + for (city,lat,lng) + in [ + ('dublin', 53.3441, -6.2675), + ('athens', 37.9792, 23.7166), + ('london', 51.5002, -0.1262), + ('berlin', 52.5235, 13.4115), + ('paris', 48.8567, 2.3510), + ('madrid', 40.4167, -3.7033), + ('new_york', 40.71, -74.01), + ('los_angeles', 34.05, -118.24), + ] + } + ); + df.transpose(); + df[['temperature']]; + df.transpose(); + - name: API CSV Example + folding: + enabled: true + description: example showing a read_csv from a url and some light pandas data wrangling. + config: | + example_csv: + name: "example_csv" + update_every: 2 + chart_configs: + - name: "london_system_cpu" + title: "London System CPU - Ratios" + family: "london_system_cpu" + context: "pandas" + type: "line" + units: "n" + df_steps: > + pd.read_csv('https://london.my-netdata.io/api/v1/data?chart=system.cpu&format=csv&after=-60', storage_options={'User-Agent': 'netdata'}); + df.drop('time', axis=1); + df.mean().to_frame().transpose(); + df.apply(lambda row: (row.user / row.system), axis = 1).to_frame(); + df.rename(columns={0:'average_user_system_ratio'}); + df*100; + - name: API JSON Example + folding: + enabled: true + description: example showing a read_json from a url and some light pandas data wrangling. + config: | + example_json: + name: "example_json" + update_every: 2 + chart_configs: + - name: "london_system_net" + title: "London System Net - Total Bandwidth" + family: "london_system_net" + context: "pandas" + type: "area" + units: "kilobits/s" + df_steps: > + pd.DataFrame(requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['data'], columns=requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['labels']); + df.drop('time', axis=1); + abs(df); + df.sum(axis=1).to_frame(); + df.rename(columns={0:'total_bandwidth'}); + - name: XML Example + folding: + enabled: true + description: example showing a read_xml from a url and some light pandas data wrangling. + config: | + example_xml: + name: "example_xml" + update_every: 2 + line_sep: "|" + chart_configs: + - name: "temperature_forcast" + title: "Temperature Forecast" + family: "temp" + context: "pandas.temp" + type: "line" + units: "celsius" + df_steps: > + pd.read_xml('http://metwdb-openaccess.ichec.ie/metno-wdb2ts/locationforecast?lat=54.7210798611;long=-8.7237392806', xpath='./product/time[1]/location/temperature', parser='etree')| + df.rename(columns={'value': 'dublin'})| + df[['dublin']]| + - name: SQL Example + folding: + enabled: true + description: example showing a read_sql from a postgres database using sqlalchemy. + config: | + sql: + name: "sql" + update_every: 5 + chart_configs: + - name: "sql" + title: "SQL Example" + family: "sql.example" + context: "example" + type: "line" + units: "percent" + df_steps: > + pd.read_sql_query( + sql='\ + select \ + random()*100 as metric_1, \ + random()*100 as metric_2 \ + ', + con=create_engine('postgresql://localhost/postgres?user=netdata&password=netdata') + ); + troubleshooting: + problems: + list: [] + alerts: [] + metrics: + folding: + title: Metrics + enabled: false + description: | + This collector is expecting one row in the final pandas DataFrame. It is that first row that will be taken + as the most recent values for each dimension on each chart using (`df.to_dict(orient='records')[0]`). + See [pd.to_dict()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_dict.html)." + availability: [] + scopes: + - name: global + description: | + These metrics refer to the entire monitored application. + labels: [] + metrics: [] diff --git a/collectors/python.d.plugin/pandas/pandas.conf b/collectors/python.d.plugin/pandas/pandas.conf index ca523ed3..74a7da3e 100644 --- a/collectors/python.d.plugin/pandas/pandas.conf +++ b/collectors/python.d.plugin/pandas/pandas.conf @@ -61,9 +61,7 @@ update_every: 5 # # Additionally to the above, example also supports the following: # -# num_lines: 4 # the number of lines to create -# lower: 0 # the lower bound of numbers to randomly sample from -# upper: 100 # the upper bound of numbers to randomly sample from +# chart_configs: [<dictionary>] # an array for chart config dictionaries. # # ---------------------------------------------------------------------- # AUTO-DETECTION JOBS diff --git a/collectors/python.d.plugin/postfix/metadata.yaml b/collectors/python.d.plugin/postfix/metadata.yaml index 3c1275ed..1bbb6116 100644 --- a/collectors/python.d.plugin/postfix/metadata.yaml +++ b/collectors/python.d.plugin/postfix/metadata.yaml @@ -1,78 +1,124 @@ -meta: - plugin_name: python.d.plugin - module_name: postfix - monitored_instance: - name: Postfix - link: '' - categories: - - data-collection.mail-servers - icon_filename: 'postfix.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Keep an eye on Postfix metrics for efficient mail server operations. Improve your mail server performance with Netdata''s real-time metrics and built-in alerts.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: postfix + monitored_instance: + name: Postfix + link: https://www.postfix.org/ + categories: + - data-collection.mail-servers + icon_filename: "postfix.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - postfix + - mail + - mail server + most_popular: false + overview: + data_collection: + metrics_description: > + Keep an eye on Postfix metrics for efficient mail server operations. + + Improve your mail server performance with Netdata's real-time metrics and built-in alerts. + method_description: > + Monitors MTA email queue statistics using [postqueue](http://www.postfix.org/postqueue.1.html) tool. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: > + Postfix has internal access controls that limit activities on the mail queue. By default, all users are allowed to view + the queue. If your system is configured with stricter access controls, you need to grant the `netdata` user access to + view the mail queue. In order to do it, add `netdata` to `authorized_mailq_users` in the `/etc/postfix/main.cf` file. + + See the `authorized_mailq_users` setting in + the [Postfix documentation](https://www.postfix.org/postconf.5.html) for more details. + default_behavior: + auto_detection: + description: "The collector executes `postqueue -p` to get Postfix queue statistics." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: "" + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "" + list: [] + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: postfix.qemails - description: Postfix Queue Emails - unit: "emails" - chart_type: line - dimensions: - - name: emails - - name: postfix.qsize - description: Postfix Queue Emails Size - unit: "KiB" - chart_type: area - dimensions: - - name: size + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: | + These metrics refer to the entire monitored application. + labels: [] + metrics: + - name: postfix.qemails + description: Postfix Queue Emails + unit: "emails" + chart_type: line + dimensions: + - name: emails + - name: postfix.qsize + description: Postfix Queue Emails Size + unit: "KiB" + chart_type: area + dimensions: + - name: size diff --git a/collectors/python.d.plugin/postfix/metrics.csv b/collectors/python.d.plugin/postfix/metrics.csv deleted file mode 100644 index 696f6ad3..00000000 --- a/collectors/python.d.plugin/postfix/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -postfix.qemails,,emails,emails,Postfix Queue Emails,line,,python.d.plugin,postfix -postfix.qsize,,size,KiB,Postfix Queue Emails Size,area,,python.d.plugin,postfix diff --git a/collectors/python.d.plugin/puppet/metadata.yaml b/collectors/python.d.plugin/puppet/metadata.yaml index fc162746..781519b6 100644 --- a/collectors/python.d.plugin/puppet/metadata.yaml +++ b/collectors/python.d.plugin/puppet/metadata.yaml @@ -1,93 +1,185 @@ -meta: - plugin_name: python.d.plugin - module_name: puppet - monitored_instance: - name: Puppet - link: '' - categories: - - data-collection.provisioning-systems - icon_filename: 'puppet.jpeg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Puppet configurations with Netdata for changes, errors, and performance metrics. Enhance configuration management and troubleshoot faster with real-time insights and built-in alerts.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: puppet + monitored_instance: + name: Puppet + link: "https://www.puppet.com/" + categories: + - data-collection.ci-cd-systems + icon_filename: "puppet.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - puppet + - jvm heap + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors Puppet metrics about JVM Heap, Non-Heap, CPU usage and file descriptors.' + method_description: | + It uses Puppet's metrics API endpoint to gather the metrics. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: By default, this collector will use `https://fqdn.example.com:8140` as the URL to look for metrics. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: "python.d/puppet.conf" + options: + description: | + This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior. + + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + + > Notes: + > - Exact Fully Qualified Domain Name of the node should be used. + > - Usually Puppet Server/DB startup time is VERY long. So, there should be quite reasonable retry count. + > - A secured PuppetDB config may require a client certificate. This does not apply to the default PuppetDB configuration though. + folding: + title: "Config options" + enabled: true + list: + - name: url + description: HTTP or HTTPS URL, exact Fully Qualified Domain Name of the node should be used. + default_value: https://fqdn.example.com:8081 + required: true + - name: tls_verify + description: Control HTTPS server certificate verification. + default_value: "False" + required: false + - name: tls_ca_file + description: Optional CA (bundle) file to use + default_value: "" + required: false + - name: tls_cert_file + description: Optional client certificate file + default_value: "" + required: false + - name: tls_key_file + description: Optional client key file + default_value: "" + required: false + - name: update_every + description: Sets the default data collection frequency. + default_value: 30 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic example configuration + folding: + enabled: false + config: | + puppetserver: + url: 'https://fqdn.example.com:8140' + autodetection_retry: 1 + - name: TLS Certificate + description: An example using a TLS certificate + config: | + puppetdb: + url: 'https://fqdn.example.com:8081' + tls_cert_file: /path/to/client.crt + tls_key_file: /path/to/client.key + autodetection_retry: 1 + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + puppetserver1: + url: 'https://fqdn.example.com:8140' + autodetection_retry: 1 + + puppetserver2: + url: 'https://fqdn.example2.com:8140' + autodetection_retry: 1 + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: puppet.jvm - description: JVM Heap - unit: "MiB" - chart_type: area - dimensions: - - name: committed - - name: used - - name: puppet.jvm - description: JVM Non-Heap - unit: "MiB" - chart_type: area - dimensions: - - name: committed - - name: used - - name: puppet.cpu - description: CPU usage - unit: "percentage" - chart_type: stacked - dimensions: - - name: execution - - name: GC - - name: puppet.fdopen - description: File Descriptors - unit: "descriptors" - chart_type: line - dimensions: - - name: used + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: puppet.jvm + description: JVM Heap + unit: "MiB" + chart_type: area + dimensions: + - name: committed + - name: used + - name: puppet.jvm + description: JVM Non-Heap + unit: "MiB" + chart_type: area + dimensions: + - name: committed + - name: used + - name: puppet.cpu + description: CPU usage + unit: "percentage" + chart_type: stacked + dimensions: + - name: execution + - name: GC + - name: puppet.fdopen + description: File Descriptors + unit: "descriptors" + chart_type: line + dimensions: + - name: used diff --git a/collectors/python.d.plugin/puppet/metrics.csv b/collectors/python.d.plugin/puppet/metrics.csv deleted file mode 100644 index 1ec99e10..00000000 --- a/collectors/python.d.plugin/puppet/metrics.csv +++ /dev/null @@ -1,5 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -puppet.jvm,,"committed, used",MiB,JVM Heap,area,,python.d.plugin,puppet -puppet.jvm,,"committed, used",MiB,JVM Non-Heap,area,,python.d.plugin,puppet -puppet.cpu,,"execution, GC",percentage,CPU usage,stacked,,python.d.plugin,puppet -puppet.fdopen,,used,descriptors,File Descriptors,line,,python.d.plugin,puppet diff --git a/collectors/python.d.plugin/rethinkdbs/metadata.yaml b/collectors/python.d.plugin/rethinkdbs/metadata.yaml index 53959b89..bbc50eac 100644 --- a/collectors/python.d.plugin/rethinkdbs/metadata.yaml +++ b/collectors/python.d.plugin/rethinkdbs/metadata.yaml @@ -1,121 +1,188 @@ -meta: - plugin_name: python.d.plugin - module_name: rethinkdbs - monitored_instance: - name: RethinkDB - link: '' - categories: - - data-collection.database-servers - icon_filename: 'rethinkdb.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor RethinkDB performance for real-time database operations and performance. Improve your database operations with Netdata''s real-time metrics and built-in alerts.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: rethinkdbs + monitored_instance: + name: RethinkDB + link: 'https://rethinkdb.com/' + categories: + - data-collection.database-servers + icon_filename: 'rethinkdb.png' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - rethinkdb + - database + - db + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors metrics about RethinkDB clusters and database servers.' + method_description: 'It uses the `rethinkdb` python module to connect to a RethinkDB server instance and gather statistics.' + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: 'When no configuration file is found, the collector tries to connect to 127.0.0.1:28015.' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: 'Required python module' + description: 'The collector requires the `rethinkdb` python module to be installed.' + configuration: + file: + name: python.d/rethinkdbs.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + - name: host + description: Hostname or ip of the RethinkDB server. + default_value: 'localhost' + required: false + - name: port + description: Port to connect to the RethinkDB server. + default_value: '28015' + required: false + - name: user + description: The username to use to connect to the RethinkDB server. + default_value: 'admin' + required: false + - name: password + description: The password to use to connect to the RethinkDB server. + default_value: '' + required: false + - name: timeout + description: Set a connect timeout to the RethinkDB server. + default_value: '2' + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Local RethinkDB server + description: An example of a configuration for a local RethinkDB server + folding: + enabled: false + config: | + localhost: + name: 'local' + host: '127.0.0.1' + port: 28015 + user: "user" + password: "pass" + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: rethinkdb.cluster_connected_servers - description: Connected Servers - unit: "servers" - chart_type: stacked - dimensions: - - name: connected - - name: missing - - name: rethinkdb.cluster_clients_active - description: Active Clients - unit: "clients" - chart_type: line - dimensions: - - name: active - - name: rethinkdb.cluster_queries - description: Queries - unit: "queries/s" - chart_type: line - dimensions: - - name: queries - - name: rethinkdb.cluster_documents - description: Documents - unit: "documents/s" - chart_type: line - dimensions: - - name: reads - - name: writes - - name: database server - description: "" - labels: [] - metrics: - - name: rethinkdb.client_connections - description: Client Connections - unit: "connections" - chart_type: line - dimensions: - - name: connections - - name: rethinkdb.clients_active - description: Active Clients - unit: "clients" - chart_type: line - dimensions: - - name: active - - name: rethinkdb.queries - description: Queries - unit: "queries/s" - chart_type: line - dimensions: - - name: queries - - name: rethinkdb.documents - description: Documents - unit: "documents/s" - chart_type: line - dimensions: - - name: reads - - name: writes + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: rethinkdb.cluster_connected_servers + description: Connected Servers + unit: "servers" + chart_type: stacked + dimensions: + - name: connected + - name: missing + - name: rethinkdb.cluster_clients_active + description: Active Clients + unit: "clients" + chart_type: line + dimensions: + - name: active + - name: rethinkdb.cluster_queries + description: Queries + unit: "queries/s" + chart_type: line + dimensions: + - name: queries + - name: rethinkdb.cluster_documents + description: Documents + unit: "documents/s" + chart_type: line + dimensions: + - name: reads + - name: writes + - name: database server + description: "" + labels: [] + metrics: + - name: rethinkdb.client_connections + description: Client Connections + unit: "connections" + chart_type: line + dimensions: + - name: connections + - name: rethinkdb.clients_active + description: Active Clients + unit: "clients" + chart_type: line + dimensions: + - name: active + - name: rethinkdb.queries + description: Queries + unit: "queries/s" + chart_type: line + dimensions: + - name: queries + - name: rethinkdb.documents + description: Documents + unit: "documents/s" + chart_type: line + dimensions: + - name: reads + - name: writes diff --git a/collectors/python.d.plugin/rethinkdbs/metrics.csv b/collectors/python.d.plugin/rethinkdbs/metrics.csv deleted file mode 100644 index 2eb1eb7a..00000000 --- a/collectors/python.d.plugin/rethinkdbs/metrics.csv +++ /dev/null @@ -1,9 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -rethinkdb.cluster_connected_servers,,"connected, missing",servers,Connected Servers,stacked,,python.d.plugin,rethinkdbs -rethinkdb.cluster_clients_active,,active,clients,Active Clients,line,,python.d.plugin,rethinkdbs -rethinkdb.cluster_queries,,queries,queries/s,Queries,line,,python.d.plugin,rethinkdbs -rethinkdb.cluster_documents,,"reads, writes",documents/s,Documents,line,,python.d.plugin,rethinkdbs -rethinkdb.client_connections,database server,connections,connections,Client Connections,line,,python.d.plugin,rethinkdbs -rethinkdb.clients_active,database server,active,clients,Active Clients,line,,python.d.plugin,rethinkdbs -rethinkdb.queries,database server,queries,queries/s,Queries,line,,python.d.plugin,rethinkdbs -rethinkdb.documents,database server,"reads, writes",documents/s,Documents,line,,python.d.plugin,rethinkdbs diff --git a/collectors/python.d.plugin/retroshare/metadata.yaml b/collectors/python.d.plugin/retroshare/metadata.yaml index b847bb6f..0a769616 100644 --- a/collectors/python.d.plugin/retroshare/metadata.yaml +++ b/collectors/python.d.plugin/retroshare/metadata.yaml @@ -1,91 +1,144 @@ -meta: - plugin_name: python.d.plugin - module_name: retroshare - monitored_instance: - name: RetroShare - link: '' - categories: - - data-collection.p2p - icon_filename: 'retroshare.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor RetroShare metrics for efficient peer-to-peer communication and file sharing. Enhance your communication and file sharing performance with real-time insights and alerts from Netdata.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: retroshare_dht_working - link: https://github.com/netdata/netdata/blob/master/health/health.d/retroshare.conf - metric: retroshare.dht - info: number of DHT peers -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: retroshare + monitored_instance: + name: RetroShare + link: "https://retroshare.cc/" + categories: + - data-collection.media-streaming-servers + icon_filename: "retroshare.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - retroshare + - p2p + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors RetroShare statistics such as application bandwidth, peers, and DHT metrics." + method_description: "It connects to the RetroShare web interface to gather metrics." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "The collector will attempt to connect and detect a RetroShare web interface through http://localhost:9090, even without any configuration." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "RetroShare web interface" + description: | + RetroShare needs to be configured to enable the RetroShare WEB Interface and allow access from the Netdata host. + configuration: + file: + name: python.d/retroshare.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: url + description: The URL to the RetroShare Web UI. + default_value: "http://localhost:9090" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Local RetroShare Web UI + description: A basic configuration for a RetroShare server running on localhost. + config: | + localhost: + name: 'local retroshare' + url: 'http://localhost:9090' + - name: Remote RetroShare Web UI + description: A basic configuration for a remote RetroShare server. + config: | + remote: + name: 'remote retroshare' + url: 'http://1.2.3.4:9090' + + troubleshooting: + problems: + list: [] + alerts: + - name: retroshare_dht_working + link: https://github.com/netdata/netdata/blob/master/health/health.d/retroshare.conf + metric: retroshare.dht + info: number of DHT peers metrics: - - name: retroshare.bandwidth - description: RetroShare Bandwidth - unit: "kilobits/s" - chart_type: area - dimensions: - - name: Upload - - name: Download - - name: retroshare.peers - description: RetroShare Peers - unit: "peers" - chart_type: line - dimensions: - - name: All friends - - name: Connected friends - - name: retroshare.dht - description: Retroshare DHT - unit: "peers" - chart_type: line - dimensions: - - name: DHT nodes estimated - - name: RS nodes estimated + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: retroshare.bandwidth + description: RetroShare Bandwidth + unit: "kilobits/s" + chart_type: area + dimensions: + - name: Upload + - name: Download + - name: retroshare.peers + description: RetroShare Peers + unit: "peers" + chart_type: line + dimensions: + - name: All friends + - name: Connected friends + - name: retroshare.dht + description: Retroshare DHT + unit: "peers" + chart_type: line + dimensions: + - name: DHT nodes estimated + - name: RS nodes estimated diff --git a/collectors/python.d.plugin/retroshare/metrics.csv b/collectors/python.d.plugin/retroshare/metrics.csv deleted file mode 100644 index 35a0a48c..00000000 --- a/collectors/python.d.plugin/retroshare/metrics.csv +++ /dev/null @@ -1,4 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -retroshare.bandwidth,,"Upload, Download",kilobits/s,RetroShare Bandwidth,area,,python.d.plugin,retroshare -retroshare.peers,,"All friends, Connected friends",peers,RetroShare Peers,line,,python.d.plugin,retroshare -retroshare.dht,,"DHT nodes estimated, RS nodes estimated",peers,Retroshare DHT,line,,python.d.plugin,retroshare diff --git a/collectors/python.d.plugin/riakkv/metadata.yaml b/collectors/python.d.plugin/riakkv/metadata.yaml index 795763eb..441937f8 100644 --- a/collectors/python.d.plugin/riakkv/metadata.yaml +++ b/collectors/python.d.plugin/riakkv/metadata.yaml @@ -1,300 +1,358 @@ -meta: - plugin_name: python.d.plugin - module_name: riakkv - monitored_instance: - name: RiakKV - link: '' - categories: - - data-collection.database-servers - icon_filename: 'riak.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine RiakKV metrics for optimal key-value database performance. Netdata provides comprehensive dashboards and anomaly detection for efficient database operations.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: -- name: riakkv_1h_kv_get_mean_latency - link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf - metric: riak.kv.latency.get - info: average time between reception of client GET request and subsequent response to client over the last hour -- name: riakkv_kv_get_slow - link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf - metric: riak.kv.latency.get - info: average time between reception of client GET request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour -- name: riakkv_1h_kv_put_mean_latency - link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf - metric: riak.kv.latency.put - info: average time between reception of client PUT request and subsequent response to the client over the last hour -- name: riakkv_kv_put_slow - link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf - metric: riak.kv.latency.put - info: average time between reception of client PUT request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour -- name: riakkv_vm_high_process_count - link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf - metric: riak.vm - info: number of processes running in the Erlang VM -- name: riakkv_list_keys_active - link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf - metric: riak.core.fsm_active - info: number of currently running list keys finite state machines -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: riakkv + monitored_instance: + name: RiakKV + link: "https://riak.com/products/riak-kv/index.html" + categories: + - data-collection.database-servers + icon_filename: "riak.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - database + - nosql + - big data + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors RiakKV metrics about throughput, latency, resources and more.' + method_description: "This collector reads the database stats from the `/stats` endpoint." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "If the /stats endpoint is accessible, RiakKV instances on the local host running on port 8098 will be autodetected." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Configure RiakKV to enable /stats endpoint + description: | + You can follow the RiakKV configuration reference documentation for how to enable this. + + Source : https://docs.riak.com/riak/kv/2.2.3/configuring/reference/#client-interfaces + configuration: + file: + name: "python.d/riakkv.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: url + description: The url of the server + default_value: no + required: true + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic (default) + folding: + enabled: false + description: A basic example configuration per job + config: | + local: + url: 'http://localhost:8098/stats' + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + local: + url: 'http://localhost:8098/stats' + + remote: + url: 'http://192.0.2.1:8098/stats' + troubleshooting: + problems: + list: [] + alerts: + - name: riakkv_1h_kv_get_mean_latency + link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf + metric: riak.kv.latency.get + info: average time between reception of client GET request and subsequent response to client over the last hour + - name: riakkv_kv_get_slow + link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf + metric: riak.kv.latency.get + info: average time between reception of client GET request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour + - name: riakkv_1h_kv_put_mean_latency + link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf + metric: riak.kv.latency.put + info: average time between reception of client PUT request and subsequent response to the client over the last hour + - name: riakkv_kv_put_slow + link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf + metric: riak.kv.latency.put + info: average time between reception of client PUT request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour + - name: riakkv_vm_high_process_count + link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf + metric: riak.vm + info: number of processes running in the Erlang VM + - name: riakkv_list_keys_active + link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf + metric: riak.core.fsm_active + info: number of currently running list keys finite state machines metrics: - - name: riak.kv.throughput - description: Reads & writes coordinated by this node - unit: "operations/s" - chart_type: line - dimensions: - - name: gets - - name: puts - - name: riak.dt.vnode_updates - description: Update operations coordinated by local vnodes by data type - unit: "operations/s" - chart_type: line - dimensions: - - name: counters - - name: sets - - name: maps - - name: riak.search - description: Search queries on the node - unit: "queries/s" - chart_type: line - dimensions: - - name: queries - - name: riak.search.documents - description: Documents indexed by search - unit: "documents/s" - chart_type: line - dimensions: - - name: indexed - - name: riak.consistent.operations - description: Consistent node operations - unit: "operations/s" - chart_type: line - dimensions: - - name: gets - - name: puts - - name: riak.kv.latency.get - description: Time between reception of a client GET request and subsequent response to client - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.kv.latency.put - description: Time between reception of a client PUT request and subsequent response to client - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.dt.latency.counter_merge - description: Time it takes to perform an Update Counter operation - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.dt.latency.set_merge - description: Time it takes to perform an Update Set operation - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.dt.latency.map_merge - description: Time it takes to perform an Update Map operation - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.search.latency.query - description: Search query latency - unit: "ms" - chart_type: line - dimensions: - - name: median - - name: min - - name: '95' - - name: '99' - - name: '999' - - name: max - - name: riak.search.latency.index - description: Time it takes Search to index a new document - unit: "ms" - chart_type: line - dimensions: - - name: median - - name: min - - name: '95' - - name: '99' - - name: '999' - - name: max - - name: riak.consistent.latency.get - description: Strongly consistent read latency - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.consistent.latency.put - description: Strongly consistent write latency - unit: "ms" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.vm - description: Total processes running in the Erlang VM - unit: "total" - chart_type: line - dimensions: - - name: processes - - name: riak.vm.memory.processes - description: Memory allocated & used by Erlang processes - unit: "MB" - chart_type: line - dimensions: - - name: allocated - - name: used - - name: riak.kv.siblings_encountered.get - description: Number of siblings encountered during GET operations by this node during the past minute - unit: "siblings" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.kv.objsize.get - description: Object size encountered by this node during the past minute - unit: "KB" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.search.vnodeq_size - description: Number of unprocessed messages in the vnode message queues of Search on this node in the past minute - unit: "messages" - chart_type: line - dimensions: - - name: mean - - name: median - - name: '95' - - name: '99' - - name: '100' - - name: riak.search.index - description: Number of document index errors encountered by Search - unit: "errors" - chart_type: line - dimensions: - - name: errors - - name: riak.core.protobuf_connections - description: Protocol buffer connections by status - unit: "connections" - chart_type: line - dimensions: - - name: active - - name: riak.core.repairs - description: Number of repair operations this node has coordinated - unit: "repairs" - chart_type: line - dimensions: - - name: read - - name: riak.core.fsm_active - description: Active finite state machines by kind - unit: "fsms" - chart_type: line - dimensions: - - name: get - - name: put - - name: secondary index - - name: list keys - - name: riak.core.fsm_rejected - description: Finite state machines being rejected by Sidejobs overload protection - unit: "fsms" - chart_type: line - dimensions: - - name: get - - name: put - - name: riak.search.index - description: Number of writes to Search failed due to bad data format by reason - unit: "writes" - chart_type: line - dimensions: - - name: bad_entry - - name: extract_fail + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: riak.kv.throughput + description: Reads & writes coordinated by this node + unit: "operations/s" + chart_type: line + dimensions: + - name: gets + - name: puts + - name: riak.dt.vnode_updates + description: Update operations coordinated by local vnodes by data type + unit: "operations/s" + chart_type: line + dimensions: + - name: counters + - name: sets + - name: maps + - name: riak.search + description: Search queries on the node + unit: "queries/s" + chart_type: line + dimensions: + - name: queries + - name: riak.search.documents + description: Documents indexed by search + unit: "documents/s" + chart_type: line + dimensions: + - name: indexed + - name: riak.consistent.operations + description: Consistent node operations + unit: "operations/s" + chart_type: line + dimensions: + - name: gets + - name: puts + - name: riak.kv.latency.get + description: Time between reception of a client GET request and subsequent response to client + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.kv.latency.put + description: Time between reception of a client PUT request and subsequent response to client + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.dt.latency.counter_merge + description: Time it takes to perform an Update Counter operation + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.dt.latency.set_merge + description: Time it takes to perform an Update Set operation + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.dt.latency.map_merge + description: Time it takes to perform an Update Map operation + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.search.latency.query + description: Search query latency + unit: "ms" + chart_type: line + dimensions: + - name: median + - name: min + - name: "95" + - name: "99" + - name: "999" + - name: max + - name: riak.search.latency.index + description: Time it takes Search to index a new document + unit: "ms" + chart_type: line + dimensions: + - name: median + - name: min + - name: "95" + - name: "99" + - name: "999" + - name: max + - name: riak.consistent.latency.get + description: Strongly consistent read latency + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.consistent.latency.put + description: Strongly consistent write latency + unit: "ms" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.vm + description: Total processes running in the Erlang VM + unit: "total" + chart_type: line + dimensions: + - name: processes + - name: riak.vm.memory.processes + description: Memory allocated & used by Erlang processes + unit: "MB" + chart_type: line + dimensions: + - name: allocated + - name: used + - name: riak.kv.siblings_encountered.get + description: Number of siblings encountered during GET operations by this node during the past minute + unit: "siblings" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.kv.objsize.get + description: Object size encountered by this node during the past minute + unit: "KB" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.search.vnodeq_size + description: Number of unprocessed messages in the vnode message queues of Search on this node in the past minute + unit: "messages" + chart_type: line + dimensions: + - name: mean + - name: median + - name: "95" + - name: "99" + - name: "100" + - name: riak.search.index + description: Number of document index errors encountered by Search + unit: "errors" + chart_type: line + dimensions: + - name: errors + - name: riak.core.protobuf_connections + description: Protocol buffer connections by status + unit: "connections" + chart_type: line + dimensions: + - name: active + - name: riak.core.repairs + description: Number of repair operations this node has coordinated + unit: "repairs" + chart_type: line + dimensions: + - name: read + - name: riak.core.fsm_active + description: Active finite state machines by kind + unit: "fsms" + chart_type: line + dimensions: + - name: get + - name: put + - name: secondary index + - name: list keys + - name: riak.core.fsm_rejected + description: Finite state machines being rejected by Sidejobs overload protection + unit: "fsms" + chart_type: line + dimensions: + - name: get + - name: put + - name: riak.search.index + description: Number of writes to Search failed due to bad data format by reason + unit: "writes" + chart_type: line + dimensions: + - name: bad_entry + - name: extract_fail diff --git a/collectors/python.d.plugin/riakkv/metrics.csv b/collectors/python.d.plugin/riakkv/metrics.csv deleted file mode 100644 index fbac7603..00000000 --- a/collectors/python.d.plugin/riakkv/metrics.csv +++ /dev/null @@ -1,26 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -riak.kv.throughput,,"gets, puts",operations/s,Reads & writes coordinated by this node,line,,python.d.plugin,riakkv -riak.dt.vnode_updates,,"counters, sets, maps",operations/s,Update operations coordinated by local vnodes by data type,line,,python.d.plugin,riakkv -riak.search,,queries,queries/s,Search queries on the node,line,,python.d.plugin,riakkv -riak.search.documents,,indexed,documents/s,Documents indexed by search,line,,python.d.plugin,riakkv -riak.consistent.operations,,"gets, puts",operations/s,Consistent node operations,line,,python.d.plugin,riakkv -riak.kv.latency.get,,"mean, median, 95, 99, 100",ms,Time between reception of a client GET request and subsequent response to client,line,,python.d.plugin,riakkv -riak.kv.latency.put,,"mean, median, 95, 99, 100",ms,Time between reception of a client PUT request and subsequent response to client,line,,python.d.plugin,riakkv -riak.dt.latency.counter_merge,,"mean, median, 95, 99, 100",ms,Time it takes to perform an Update Counter operation,line,,python.d.plugin,riakkv -riak.dt.latency.set_merge,,"mean, median, 95, 99, 100",ms,Time it takes to perform an Update Set operation,line,,python.d.plugin,riakkv -riak.dt.latency.map_merge,,"mean, median, 95, 99, 100",ms,Time it takes to perform an Update Map operation,line,,python.d.plugin,riakkv -riak.search.latency.query,,"median, min, 95, 99, 999, max",ms,Search query latency,line,,python.d.plugin,riakkv -riak.search.latency.index,,"median, min, 95, 99, 999, max",ms,Time it takes Search to index a new document,line,,python.d.plugin,riakkv -riak.consistent.latency.get,,"mean, median, 95, 99, 100",ms,Strongly consistent read latency,line,,python.d.plugin,riakkv -riak.consistent.latency.put,,"mean, median, 95, 99, 100",ms,Strongly consistent write latency,line,,python.d.plugin,riakkv -riak.vm,,processes,total,Total processes running in the Erlang VM,line,,python.d.plugin,riakkv -riak.vm.memory.processes,,"allocated, used",MB,Memory allocated & used by Erlang processes,line,,python.d.plugin,riakkv -riak.kv.siblings_encountered.get,,"mean, median, 95, 99, 100",siblings,Number of siblings encountered during GET operations by this node during the past minute,line,,python.d.plugin,riakkv -riak.kv.objsize.get,,"mean, median, 95, 99, 100",KB,Object size encountered by this node during the past minute,line,,python.d.plugin,riakkv -riak.search.vnodeq_size,,"mean, median, 95, 99, 100",messages,Number of unprocessed messages in the vnode message queues of Search on this node in the past minute,line,,python.d.plugin,riakkv -riak.search.index,,errors,errors,Number of document index errors encountered by Search,line,,python.d.plugin,riakkv -riak.core.protobuf_connections,,active,connections,Protocol buffer connections by status,line,,python.d.plugin,riakkv -riak.core.repairs,,read,repairs,Number of repair operations this node has coordinated,line,,python.d.plugin,riakkv -riak.core.fsm_active,,"get, put, secondary index, list keys",fsms,Active finite state machines by kind,line,,python.d.plugin,riakkv -riak.core.fsm_rejected,,"get, put",fsms,Finite state machines being rejected by Sidejobs overload protection,line,,python.d.plugin,riakkv -riak.search.index,,"bad_entry, extract_fail",writes,Number of writes to Search failed due to bad data format by reason,line,,python.d.plugin,riakkv diff --git a/collectors/python.d.plugin/samba/metadata.yaml b/collectors/python.d.plugin/samba/metadata.yaml index d9231a1f..43bca208 100644 --- a/collectors/python.d.plugin/samba/metadata.yaml +++ b/collectors/python.d.plugin/samba/metadata.yaml @@ -1,123 +1,196 @@ -meta: - plugin_name: python.d.plugin - module_name: samba - monitored_instance: - name: Samba - link: '' - categories: - - data-collection.storage-mount-points-and-filesystems - icon_filename: 'samba.jpg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Samba performance for optimal network file sharing operations. Netdata provides real-time insights and alerts for efficient file sharing.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: samba + monitored_instance: + name: Samba + link: https://www.samba.org/samba/ + categories: + - data-collection.storage-mount-points-and-filesystems + icon_filename: "samba.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - samba + - file sharing + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors the performance metrics of Samba file sharing." + method_description: | + It is using the `smbstatus` command-line tool. + + Executed commands: + + - `sudo -n smbstatus -P` + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: | + `smbstatus` is used, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password. + default_behavior: + auto_detection: + description: "After all the permissions are satisfied, the `smbstatus -P` binary is executed." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Permissions and programs + description: | + To run the collector you need: + + - `smbstatus` program + - `sudo` program + - `smbd` must be compiled with profiling enabled + - `smbd` must be started either with the `-P 1` option or inside `smb.conf` using `smbd profiling level` + + The module uses `smbstatus`, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password. + + - add to your `/etc/sudoers` file: + + `which smbstatus` shows the full path to the binary. + + ```bash + netdata ALL=(root) NOPASSWD: /path/to/smbstatus + ``` + + - Reset Netdata's systemd unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux distributions with systemd) + + The default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `smbstatus` using `sudo`. + + + As the `root` user, do the following: + + ```cmd + mkdir /etc/systemd/system/netdata.service.d + echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf + systemctl daemon-reload + systemctl restart netdata.service + ``` + configuration: + file: + name: python.d/samba.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic example configuration. + config: | + my_job_name: + name: my_name + update_every: 1 + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: syscall.rw - description: R/Ws - unit: "KiB/s" - chart_type: area - dimensions: - - name: sendfile - - name: recvfile - - name: smb2.rw - description: R/Ws - unit: "KiB/s" - chart_type: area - dimensions: - - name: readout - - name: writein - - name: readin - - name: writeout - - name: smb2.create_close - description: Create/Close - unit: "operations/s" - chart_type: line - dimensions: - - name: create - - name: close - - name: smb2.get_set_info - description: Info - unit: "operations/s" - chart_type: line - dimensions: - - name: getinfo - - name: setinfo - - name: smb2.find - description: Find - unit: "operations/s" - chart_type: line - dimensions: - - name: find - - name: smb2.notify - description: Notify - unit: "operations/s" - chart_type: line - dimensions: - - name: notify - - name: smb2.sm_counters - description: Lesser Ops - unit: "count" - chart_type: stacked - dimensions: - - name: tcon - - name: negprot - - name: tdis - - name: cancel - - name: logoff - - name: flush - - name: lock - - name: keepalive - - name: break - - name: sessetup + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: syscall.rw + description: R/Ws + unit: "KiB/s" + chart_type: area + dimensions: + - name: sendfile + - name: recvfile + - name: smb2.rw + description: R/Ws + unit: "KiB/s" + chart_type: area + dimensions: + - name: readout + - name: writein + - name: readin + - name: writeout + - name: smb2.create_close + description: Create/Close + unit: "operations/s" + chart_type: line + dimensions: + - name: create + - name: close + - name: smb2.get_set_info + description: Info + unit: "operations/s" + chart_type: line + dimensions: + - name: getinfo + - name: setinfo + - name: smb2.find + description: Find + unit: "operations/s" + chart_type: line + dimensions: + - name: find + - name: smb2.notify + description: Notify + unit: "operations/s" + chart_type: line + dimensions: + - name: notify + - name: smb2.sm_counters + description: Lesser Ops + unit: "count" + chart_type: stacked + dimensions: + - name: tcon + - name: negprot + - name: tdis + - name: cancel + - name: logoff + - name: flush + - name: lock + - name: keepalive + - name: break + - name: sessetup diff --git a/collectors/python.d.plugin/samba/metrics.csv b/collectors/python.d.plugin/samba/metrics.csv deleted file mode 100644 index 600181f6..00000000 --- a/collectors/python.d.plugin/samba/metrics.csv +++ /dev/null @@ -1,8 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -syscall.rw,,"sendfile, recvfile",KiB/s,R/Ws,area,,python.d.plugin,samba -smb2.rw,,"readout, writein, readin, writeout",KiB/s,R/Ws,area,,python.d.plugin,samba -smb2.create_close,,"create, close",operations/s,Create/Close,line,,python.d.plugin,samba -smb2.get_set_info,,"getinfo, setinfo",operations/s,Info,line,,python.d.plugin,samba -smb2.find,,find,operations/s,Find,line,,python.d.plugin,samba -smb2.notify,,notify,operations/s,Notify,line,,python.d.plugin,samba -smb2.sm_counters,,"tcon, negprot, tdis, cancel, logoff, flush, lock, keepalive, break, sessetup",count,Lesser Ops,stacked,,python.d.plugin,samba diff --git a/collectors/python.d.plugin/sensors/metadata.yaml b/collectors/python.d.plugin/sensors/metadata.yaml index 1c01554a..c3f68191 100644 --- a/collectors/python.d.plugin/sensors/metadata.yaml +++ b/collectors/python.d.plugin/sensors/metadata.yaml @@ -1,108 +1,175 @@ -meta: - plugin_name: python.d.plugin - module_name: sensors - monitored_instance: - name: Linux Sensors (lm-sensors) - link: '' - categories: - - data-collection.hardware-devices-and-sensors - icon_filename: 'microchip.svg' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Examine Linux Sensors metrics with Netdata for insights into hardware health and performance. Enhance your system''s reliability with real-time hardware health insights.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: chip - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: sensors + monitored_instance: + name: Linux Sensors (lm-sensors) + link: https://hwmon.wiki.kernel.org/lm_sensors + categories: + - data-collection.hardware-devices-and-sensors + icon_filename: "microchip.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - sensors + - temperature + - voltage + - current + - power + - fan + - energy + - humidity + most_popular: false + overview: + data_collection: + metrics_description: | + Examine Linux Sensors metrics with Netdata for insights into hardware health and performance. + + Enhance your system's reliability with real-time hardware health insights. + method_description: > + Reads system sensors information (temperature, voltage, electric current, power, etc.) via [lm-sensors](https://hwmon.wiki.kernel.org/lm_sensors). + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: > + The following type of sensors are auto-detected: + + - temperature + - fan + - voltage + - current + - power + - energy + - humidity + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: [] + configuration: + file: + name: python.d/sensors.conf + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: types + description: The types of sensors to collect. + default_value: "temperature, fan, voltage, current, power, energy, humidity" + required: true + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + examples: + folding: + enabled: true + title: Config + list: + - name: Default + folding: + enabled: false + description: Default configuration. + config: | + types: + - temperature + - fan + - voltage + - current + - power + - energy + - humidity + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: sensors.temperature - description: Temperature - unit: "Celsius" - chart_type: line - dimensions: - - name: a dimension per sensor - - name: sensors.voltage - description: Voltage - unit: "Volts" - chart_type: line - dimensions: - - name: a dimension per sensor - - name: sensors.current - description: Current - unit: "Ampere" - chart_type: line - dimensions: - - name: a dimension per sensor - - name: sensors.power - description: Power - unit: "Watt" - chart_type: line - dimensions: - - name: a dimension per sensor - - name: sensors.fan - description: Fans speed - unit: "Rotations/min" - chart_type: line - dimensions: - - name: a dimension per sensor - - name: sensors.energy - description: Energy - unit: "Joule" - chart_type: line - dimensions: - - name: a dimension per sensor - - name: sensors.humidity - description: Humidity - unit: "Percent" - chart_type: line - dimensions: - - name: a dimension per sensor + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: chip + description: > + Metrics related to chips. Each chip provides a set of the following metrics, each having the chip name in the metric name as reported by `sensors -u`. + labels: [] + metrics: + - name: sensors.temperature + description: Temperature + unit: "Celsius" + chart_type: line + dimensions: + - name: a dimension per sensor + - name: sensors.voltage + description: Voltage + unit: "Volts" + chart_type: line + dimensions: + - name: a dimension per sensor + - name: sensors.current + description: Current + unit: "Ampere" + chart_type: line + dimensions: + - name: a dimension per sensor + - name: sensors.power + description: Power + unit: "Watt" + chart_type: line + dimensions: + - name: a dimension per sensor + - name: sensors.fan + description: Fans speed + unit: "Rotations/min" + chart_type: line + dimensions: + - name: a dimension per sensor + - name: sensors.energy + description: Energy + unit: "Joule" + chart_type: line + dimensions: + - name: a dimension per sensor + - name: sensors.humidity + description: Humidity + unit: "Percent" + chart_type: line + dimensions: + - name: a dimension per sensor diff --git a/collectors/python.d.plugin/sensors/metrics.csv b/collectors/python.d.plugin/sensors/metrics.csv deleted file mode 100644 index d49e1938..00000000 --- a/collectors/python.d.plugin/sensors/metrics.csv +++ /dev/null @@ -1,8 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -sensors.temperature,chip,a dimension per sensor,Celsius,Temperature,line,,python.d.plugin,sensors -sensors.voltage,chip,a dimension per sensor,Volts,Voltage,line,,python.d.plugin,sensors -sensors.current,chip,a dimension per sensor,Ampere,Current,line,,python.d.plugin,sensors -sensors.power,chip,a dimension per sensor,Watt,Power,line,,python.d.plugin,sensors -sensors.fan,chip,a dimension per sensor,Rotations/min,Fans speed,line,,python.d.plugin,sensors -sensors.energy,chip,a dimension per sensor,Joule,Energy,line,,python.d.plugin,sensors -sensors.humidity,chip,a dimension per sensor,Percent,Humidity,line,,python.d.plugin,sensors diff --git a/collectors/python.d.plugin/smartd_log/metadata.yaml b/collectors/python.d.plugin/smartd_log/metadata.yaml index 334fb90c..d1194969 100644 --- a/collectors/python.d.plugin/smartd_log/metadata.yaml +++ b/collectors/python.d.plugin/smartd_log/metadata.yaml @@ -1,276 +1,429 @@ -meta: - plugin_name: python.d.plugin - module_name: smartd_log - monitored_instance: - name: S.M.A.R.T. - link: '' - categories: - - data-collection.hardware-devices-and-sensors - icon_filename: 'smart.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor S.M.A.R.T. metrics for insights into your hard drive health and performance. Enhance your hard drive performance and reliability with real-time insights and alerts from Netdata.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: smartd_log + monitored_instance: + name: S.M.A.R.T. + link: "https://linux.die.net/man/8/smartd" + categories: + - data-collection.hardware-devices-and-sensors + icon_filename: "smart.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - smart + - S.M.A.R.T. + - SCSI devices + - ATA devices + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors HDD/SSD S.M.A.R.T. metrics about drive health and performance. + method_description: | + It reads `smartd` log files to collect the metrics. + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: Upon satisfying the prerequisites, the collector will auto-detect metrics if written in either `/var/log/smartd/` or `/var/lib/smartmontools/`. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Configure `smartd` to write attribute information to files. + description: | + `smartd` must be running with `-A` option to write `smartd` attribute information to files. + + For this you need to set `smartd_opts` (or `SMARTD_ARGS`, check _smartd.service_ content) in `/etc/default/smartmontools`: + + ``` + # dump smartd attrs info every 600 seconds + smartd_opts="-A /var/log/smartd/ -i 600" + ``` + + You may need to create the smartd directory before smartd will write to it: + + ```sh + mkdir -p /var/log/smartd + ``` + + Otherwise, all the smartd `.csv` files may get written to `/var/lib/smartmontools` (default location). See also <https://linux.die.net/man/8/smartd> for more info on the `-A --attributelog=PREFIX` command. + + `smartd` appends logs at every run. It's strongly recommended to use `logrotate` for smartd files. + configuration: + file: + name: "python.d/smartd_log.conf" + options: + description: | + This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior. + + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: log_path + description: path to smartd log files. + default_value: /var/log/smartd + required: true + - name: exclude_disks + description: Space-separated patterns. If the pattern is in the drive name, the module will not collect data for it. + default_value: "" + required: false + - name: age + description: Time in minutes since the last dump to file. + default_value: 30 + required: false + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic configuration example. + folding: + enabled: false + config: | + custom: + name: smartd_log + log_path: '/var/log/smartd/' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: smartd_log.read_error_rate - description: Read Error Rate - unit: "value" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.seek_error_rate - description: Seek Error Rate - unit: "value" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.soft_read_error_rate - description: Soft Read Error Rate - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.write_error_rate - description: Write Error Rate - unit: "value" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.read_total_err_corrected - description: Read Error Corrected - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.read_total_unc_errors - description: Read Error Uncorrected - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.write_total_err_corrected - description: Write Error Corrected - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.write_total_unc_errors - description: Write Error Uncorrected - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.verify_total_err_corrected - description: Verify Error Corrected - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.verify_total_unc_errors - description: Verify Error Uncorrected - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.sata_interface_downshift - description: SATA Interface Downshift - unit: "events" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.udma_crc_error_count - description: UDMA CRC Error Count - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.throughput_performance - description: Throughput Performance - unit: "value" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.seek_time_performance - description: Seek Time Performance - unit: "value" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.start_stop_count - description: Start/Stop Count - unit: "events" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.power_on_hours_count - description: Power-On Hours Count - unit: "hours" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.power_cycle_count - description: Power Cycle Count - unit: "events" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.unexpected_power_loss - description: Unexpected Power Loss - unit: "events" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.spin_up_time - description: Spin-Up Time - unit: "ms" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.spin_up_retries - description: Spin-up Retries - unit: "retries" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.calibration_retries - description: Calibration Retries - unit: "retries" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.airflow_temperature_celsius - description: Airflow Temperature Celsius - unit: "celsius" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.temperature_celsius - description: Temperature - unit: "celsius" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.reallocated_sectors_count - description: Reallocated Sectors Count - unit: "sectors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.reserved_block_count - description: Reserved Block Count - unit: "percentage" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.program_fail_count - description: Program Fail Count - unit: "errors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.erase_fail_count - description: Erase Fail Count - unit: "failures" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.wear_leveller_worst_case_erase_count - description: Wear Leveller Worst Case Erase Count - unit: "erases" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.unused_reserved_nand_blocks - description: Unused Reserved NAND Blocks - unit: "blocks" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.reallocation_event_count - description: Reallocation Event Count - unit: "events" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.current_pending_sector_count - description: Current Pending Sector Count - unit: "sectors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.offline_uncorrectable_sector_count - description: Offline Uncorrectable Sector Count - unit: "sectors" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.percent_lifetime_used - description: Percent Lifetime Used - unit: "percentage" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.media_wearout_indicator - description: Media Wearout Indicator - unit: "percentage" - chart_type: line - dimensions: - - name: a dimension per device - - name: smartd_log.nand_writes_1gib - description: NAND Writes - unit: "GiB" - chart_type: line - dimensions: - - name: a dimension per device + folding: + title: Metrics + enabled: false + description: "The metrics listed below are split in terms of availability on device type, SCSI or ATA." + availability: + - "SCSI" + - "ATA" + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: smartd_log.read_error_rate + description: Read Error Rate + availability: + - ATA + unit: "value" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.seek_error_rate + description: Seek Error Rate + availability: + - ATA + unit: "value" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.soft_read_error_rate + description: Soft Read Error Rate + availability: + - ATA + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.write_error_rate + description: Write Error Rate + availability: + - ATA + unit: "value" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.read_total_err_corrected + description: Read Error Corrected + availability: + - SCSI + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.read_total_unc_errors + description: Read Error Uncorrected + availability: + - SCSI + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.write_total_err_corrected + description: Write Error Corrected + availability: + - SCSI + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.write_total_unc_errors + description: Write Error Uncorrected + availability: + - SCSI + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.verify_total_err_corrected + description: Verify Error Corrected + availability: + - SCSI + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.verify_total_unc_errors + description: Verify Error Uncorrected + availability: + - SCSI + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.sata_interface_downshift + description: SATA Interface Downshift + availability: + - ATA + unit: "events" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.udma_crc_error_count + description: UDMA CRC Error Count + availability: + - ATA + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.throughput_performance + description: Throughput Performance + availability: + - ATA + unit: "value" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.seek_time_performance + description: Seek Time Performance + availability: + - ATA + unit: "value" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.start_stop_count + description: Start/Stop Count + availability: + - ATA + unit: "events" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.power_on_hours_count + description: Power-On Hours Count + availability: + - ATA + unit: "hours" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.power_cycle_count + description: Power Cycle Count + availability: + - ATA + unit: "events" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.unexpected_power_loss + description: Unexpected Power Loss + availability: + - ATA + unit: "events" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.spin_up_time + description: Spin-Up Time + availability: + - ATA + unit: "ms" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.spin_up_retries + description: Spin-up Retries + availability: + - ATA + unit: "retries" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.calibration_retries + description: Calibration Retries + availability: + - ATA + unit: "retries" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.airflow_temperature_celsius + description: Airflow Temperature Celsius + availability: + - ATA + unit: "celsius" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.temperature_celsius + description: Temperature + availability: + - SCSI + - ATA + unit: "celsius" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.reallocated_sectors_count + description: Reallocated Sectors Count + availability: + - ATA + unit: "sectors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.reserved_block_count + description: Reserved Block Count + availability: + - ATA + unit: "percentage" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.program_fail_count + description: Program Fail Count + availability: + - ATA + unit: "errors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.erase_fail_count + description: Erase Fail Count + availability: + - ATA + unit: "failures" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.wear_leveller_worst_case_erase_count + description: Wear Leveller Worst Case Erase Count + availability: + - ATA + unit: "erases" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.unused_reserved_nand_blocks + description: Unused Reserved NAND Blocks + availability: + - ATA + unit: "blocks" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.reallocation_event_count + description: Reallocation Event Count + availability: + - ATA + unit: "events" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.current_pending_sector_count + description: Current Pending Sector Count + availability: + - ATA + unit: "sectors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.offline_uncorrectable_sector_count + description: Offline Uncorrectable Sector Count + availability: + - ATA + unit: "sectors" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.percent_lifetime_used + description: Percent Lifetime Used + availability: + - ATA + unit: "percentage" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.media_wearout_indicator + description: Media Wearout Indicator + availability: + - ATA + unit: "percentage" + chart_type: line + dimensions: + - name: a dimension per device + - name: smartd_log.nand_writes_1gib + description: NAND Writes + availability: + - ATA + unit: "GiB" + chart_type: line + dimensions: + - name: a dimension per device diff --git a/collectors/python.d.plugin/smartd_log/metrics.csv b/collectors/python.d.plugin/smartd_log/metrics.csv deleted file mode 100644 index 7dcc703c..00000000 --- a/collectors/python.d.plugin/smartd_log/metrics.csv +++ /dev/null @@ -1,36 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -smartd_log.read_error_rate,,a dimension per device,value,Read Error Rate,line,,python.d.plugin,smartd_log -smartd_log.seek_error_rate,,a dimension per device,value,Seek Error Rate,line,,python.d.plugin,smartd_log -smartd_log.soft_read_error_rate,,a dimension per device,errors,Soft Read Error Rate,line,,python.d.plugin,smartd_log -smartd_log.write_error_rate,,a dimension per device,value,Write Error Rate,line,,python.d.plugin,smartd_log -smartd_log.read_total_err_corrected,,a dimension per device,errors,Read Error Corrected,line,,python.d.plugin,smartd_log -smartd_log.read_total_unc_errors,,a dimension per device,errors,Read Error Uncorrected,line,,python.d.plugin,smartd_log -smartd_log.write_total_err_corrected,,a dimension per device,errors,Write Error Corrected,line,,python.d.plugin,smartd_log -smartd_log.write_total_unc_errors,,a dimension per device,errors,Write Error Uncorrected,line,,python.d.plugin,smartd_log -smartd_log.verify_total_err_corrected,,a dimension per device,errors,Verify Error Corrected,line,,python.d.plugin,smartd_log -smartd_log.verify_total_unc_errors,,a dimension per device,errors,Verify Error Uncorrected,line,,python.d.plugin,smartd_log -smartd_log.sata_interface_downshift,,a dimension per device,events,SATA Interface Downshift,line,,python.d.plugin,smartd_log -smartd_log.udma_crc_error_count,,a dimension per device,errors,UDMA CRC Error Count,line,,python.d.plugin,smartd_log -smartd_log.throughput_performance,,a dimension per device,value,Throughput Performance,line,,python.d.plugin,smartd_log -smartd_log.seek_time_performance,,a dimension per device,value,Seek Time Performance,line,,python.d.plugin,smartd_log -smartd_log.start_stop_count,,a dimension per device,events,Start/Stop Count,line,,python.d.plugin,smartd_log -smartd_log.power_on_hours_count,,a dimension per device,hours,Power-On Hours Count,line,,python.d.plugin,smartd_log -smartd_log.power_cycle_count,,a dimension per device,events,Power Cycle Count,line,,python.d.plugin,smartd_log -smartd_log.unexpected_power_loss,,a dimension per device,events,Unexpected Power Loss,line,,python.d.plugin,smartd_log -smartd_log.spin_up_time,,a dimension per device,ms,Spin-Up Time,line,,python.d.plugin,smartd_log -smartd_log.spin_up_retries,,a dimension per device,retries,Spin-up Retries,line,,python.d.plugin,smartd_log -smartd_log.calibration_retries,,a dimension per device,retries,Calibration Retries,line,,python.d.plugin,smartd_log -smartd_log.airflow_temperature_celsius,,a dimension per device,celsius,Airflow Temperature Celsius,line,,python.d.plugin,smartd_log -smartd_log.temperature_celsius,,"a dimension per device",celsius,Temperature,line,,python.d.plugin,smartd_log -smartd_log.reallocated_sectors_count,,a dimension per device,sectors,Reallocated Sectors Count,line,,python.d.plugin,smartd_log -smartd_log.reserved_block_count,,a dimension per device,percentage,Reserved Block Count,line,,python.d.plugin,smartd_log -smartd_log.program_fail_count,,a dimension per device,errors,Program Fail Count,line,,python.d.plugin,smartd_log -smartd_log.erase_fail_count,,a dimension per device,failures,Erase Fail Count,line,,python.d.plugin,smartd_log -smartd_log.wear_leveller_worst_case_erase_count,,a dimension per device,erases,Wear Leveller Worst Case Erase Count,line,,python.d.plugin,smartd_log -smartd_log.unused_reserved_nand_blocks,,a dimension per device,blocks,Unused Reserved NAND Blocks,line,,python.d.plugin,smartd_log -smartd_log.reallocation_event_count,,a dimension per device,events,Reallocation Event Count,line,,python.d.plugin,smartd_log -smartd_log.current_pending_sector_count,,a dimension per device,sectors,Current Pending Sector Count,line,,python.d.plugin,smartd_log -smartd_log.offline_uncorrectable_sector_count,,a dimension per device,sectors,Offline Uncorrectable Sector Count,line,,python.d.plugin,smartd_log -smartd_log.percent_lifetime_used,,a dimension per device,percentage,Percent Lifetime Used,line,,python.d.plugin,smartd_log -smartd_log.media_wearout_indicator,,a dimension per device,percentage,Media Wearout Indicator,line,,python.d.plugin,smartd_log -smartd_log.nand_writes_1gib,,a dimension per device,GiB,NAND Writes,line,,python.d.plugin,smartd_log diff --git a/collectors/python.d.plugin/spigotmc/metadata.yaml b/collectors/python.d.plugin/spigotmc/metadata.yaml index 5446bb30..5dea9f0c 100644 --- a/collectors/python.d.plugin/spigotmc/metadata.yaml +++ b/collectors/python.d.plugin/spigotmc/metadata.yaml @@ -1,88 +1,176 @@ -meta: - plugin_name: python.d.plugin - module_name: spigotmc - monitored_instance: - name: SpigotMC - link: '' - categories: - - data-collection.gaming - icon_filename: 'spigot.jfif' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor SpigotMC performance with Netdata for optimal Minecraft server operations. Improve your gaming experience with real-time server performance insights.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: spigotmc + monitored_instance: + name: SpigotMC + link: "" + categories: + - data-collection.gaming + icon_filename: "spigot.jfif" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - minecraft server + - spigotmc server + - spigot + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors SpigotMC server performance, in the form of ticks per second average, memory utilization, and active users. + method_description: | + It sends the `tps`, `list` and `online` commands to the Server, and gathers the metrics from the responses. + supported_platforms: + include: + - Linux + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: By default, this collector will attempt to connect to a Spigot server running on the local host on port `25575`. + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Enable the Remote Console Protocol + description: | + Under your SpigotMC server's `server.properties` configuration file, you should set `enable-rcon` to `true`. + + This will allow the Server to listen and respond to queries over the rcon protocol. + configuration: + file: + name: "python.d/spigotmc.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed + running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: host + description: The host's IP to connect to. + default_value: localhost + required: true + - name: port + description: The port the remote console is listening on. + default_value: 25575 + required: true + - name: password + description: Remote console password if any. + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic configuration example. + folding: + enabled: false + config: | + local: + name: local_server + url: 127.0.0.1 + port: 25575 + - name: Basic Authentication + description: An example using basic password for authentication with the remote console. + config: | + local: + name: local_server_pass + url: 127.0.0.1 + port: 25575 + password: 'foobar' + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + local_server: + name : my_local_server + url : 127.0.0.1 + port: 25575 + + remote_server: + name : another_remote_server + url : 192.0.2.1 + port: 25575 + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: spigotmc.tps - description: Spigot Ticks Per Second - unit: "ticks" - chart_type: line - dimensions: - - name: 1 Minute Average - - name: 5 Minute Average - - name: 15 Minute Average - - name: spigotmc.users - description: Minecraft Users - unit: "users" - chart_type: area - dimensions: - - name: Users - - name: spigotmc.mem - description: Minecraft Memory Usage - unit: "MiB" - chart_type: line - dimensions: - - name: used - - name: allocated - - name: max + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: spigotmc.tps + description: Spigot Ticks Per Second + unit: "ticks" + chart_type: line + dimensions: + - name: 1 Minute Average + - name: 5 Minute Average + - name: 15 Minute Average + - name: spigotmc.users + description: Minecraft Users + unit: "users" + chart_type: area + dimensions: + - name: Users + - name: spigotmc.mem + description: Minecraft Memory Usage + unit: "MiB" + chart_type: line + dimensions: + - name: used + - name: allocated + - name: max diff --git a/collectors/python.d.plugin/spigotmc/metrics.csv b/collectors/python.d.plugin/spigotmc/metrics.csv deleted file mode 100644 index 8d040b95..00000000 --- a/collectors/python.d.plugin/spigotmc/metrics.csv +++ /dev/null @@ -1,4 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -spigotmc.tps,,"1 Minute Average, 5 Minute Average, 15 Minute Average",ticks,Spigot Ticks Per Second,line,,python.d.plugin,spigotmc -spigotmc.users,,Users,users,Minecraft Users,area,,python.d.plugin,spigotmc -spigotmc.mem,,"used, allocated, max",MiB,Minecraft Memory Usage,line,,python.d.plugin,spigotmc diff --git a/collectors/python.d.plugin/squid/metadata.yaml b/collectors/python.d.plugin/squid/metadata.yaml index 736a2204..d0c5b3ec 100644 --- a/collectors/python.d.plugin/squid/metadata.yaml +++ b/collectors/python.d.plugin/squid/metadata.yaml @@ -1,96 +1,174 @@ -meta: - plugin_name: python.d.plugin - module_name: squid - monitored_instance: - name: Squid - link: '' - categories: - - data-collection.web-servers-and-web-proxies - icon_filename: 'squid.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Squid metrics with Netdata for efficient caching proxy for the Web performance. Improve your web caching efficiency with real-time Squid metrics.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: squid instance - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: squid + monitored_instance: + name: Squid + link: "http://www.squid-cache.org/" + categories: + - data-collection.web-servers-and-web-proxies + icon_filename: "squid.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - squid + - web delivery + - squid caching proxy + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors statistics about the Squid Clients and Servers, like bandwidth and requests. + method_description: "It collects metrics from the endpoint where Squid exposes its `counters` data." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "By default, this collector will try to autodetect where Squid presents its `counters` data, by trying various configurations." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Configure Squid's Cache Manager + description: | + Take a look at [Squid's official documentation](https://wiki.squid-cache.org/Features/CacheManager/Index#controlling-access-to-the-cache-manager) on how to configure access to the Cache Manager. + configuration: + file: + name: "python.d/squid.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 1 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: > + Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "local" + required: false + - name: host + description: The host to connect to. + default_value: "" + required: true + - name: port + description: The port to connect to. + default_value: "" + required: true + - name: request + description: The URL to request from Squid. + default_value: "" + required: true + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + description: A basic configuration example. + folding: + enabled: false + config: | + example_job_name: + name: 'local' + host: 'localhost' + port: 3128 + request: 'cache_object://localhost:3128/counters' + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + local_job: + name: 'local' + host: '127.0.0.1' + port: 3128 + request: 'cache_object://127.0.0.1:3128/counters' + + remote_job: + name: 'remote' + host: '192.0.2.1' + port: 3128 + request: 'cache_object://192.0.2.1:3128/counters' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: squid.clients_net - description: Squid Client Bandwidth - unit: "kilobits/s" - chart_type: area - dimensions: - - name: in - - name: out - - name: hits - - name: squid.clients_requests - description: Squid Client Requests - unit: "requests/s" - chart_type: line - dimensions: - - name: requests - - name: hits - - name: errors - - name: squid.servers_net - description: Squid Server Bandwidth - unit: "kilobits/s" - chart_type: area - dimensions: - - name: in - - name: out - - name: squid.servers_requests - description: Squid Server Requests - unit: "requests/s" - chart_type: line - dimensions: - - name: requests - - name: errors + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: Squid instance + description: "These metrics refer to each monitored Squid instance." + labels: [] + metrics: + - name: squid.clients_net + description: Squid Client Bandwidth + unit: "kilobits/s" + chart_type: area + dimensions: + - name: in + - name: out + - name: hits + - name: squid.clients_requests + description: Squid Client Requests + unit: "requests/s" + chart_type: line + dimensions: + - name: requests + - name: hits + - name: errors + - name: squid.servers_net + description: Squid Server Bandwidth + unit: "kilobits/s" + chart_type: area + dimensions: + - name: in + - name: out + - name: squid.servers_requests + description: Squid Server Requests + unit: "requests/s" + chart_type: line + dimensions: + - name: requests + - name: errors diff --git a/collectors/python.d.plugin/squid/metrics.csv b/collectors/python.d.plugin/squid/metrics.csv deleted file mode 100644 index c2899f2e..00000000 --- a/collectors/python.d.plugin/squid/metrics.csv +++ /dev/null @@ -1,5 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -squid.clients_net,squid instance,"in, out, hits",kilobits/s,Squid Client Bandwidth,area,,python.d.plugin,squid -squid.clients_requests,squid instance,"requests, hits, errors",requests/s,Squid Client Requests,line,,python.d.plugin,squid -squid.servers_net,squid instance,"in, out",kilobits/s,Squid Server Bandwidth,area,,python.d.plugin,squid -squid.servers_requests,squid instance,"requests, errors",requests/s,Squid Server Requests,line,,python.d.plugin,squid diff --git a/collectors/python.d.plugin/tomcat/metadata.yaml b/collectors/python.d.plugin/tomcat/metadata.yaml index 4f2a2b0e..c22f4f58 100644 --- a/collectors/python.d.plugin/tomcat/metadata.yaml +++ b/collectors/python.d.plugin/tomcat/metadata.yaml @@ -1,129 +1,200 @@ -meta: - plugin_name: python.d.plugin - module_name: tomcat - monitored_instance: - name: Tomcat - link: '' - categories: - - data-collection.web-servers-and-web-proxies - icon_filename: 'tomcat.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Tomcat performance with Netdata for optimal Java servlet container operations. Improve your web application performance with real-time Tomcat metrics.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: tomcat + monitored_instance: + name: Tomcat + link: "https://tomcat.apache.org/" + categories: + - data-collection.web-servers-and-web-proxies + icon_filename: "tomcat.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - apache + - tomcat + - webserver + - websocket + - jakarta + - javaEE + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors Tomcat metrics about bandwidth, processing time, threads and more. + method_description: | + It parses the information provided by the http endpoint of the `/manager/status` in XML format + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "You need to provide the username and the password, to access the webserver's status page. Create a seperate user with read only rights for this particular endpoint" + default_behavior: + auto_detection: + description: "If the Netdata Agent and the Tomcat webserver are in the same host, without configuration, module attempts to connect to http://localhost:8080/manager/status?XML=true, without any credentials. So it will probably fail." + limits: + description: "This module is not supporting SSL communication. If you want a Netdata Agent to monitor a Tomcat deployment, you shouldnt try to monitor it via public network (public internet). Credentials are passed by Netdata in an unsecure port" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Create a read-only `netdata` user, to monitor the `/status` endpoint. + description: You will need this configuring the collector + configuration: + file: + name: "python.d/tomcat.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options per job" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: url + description: The URL of the Tomcat server's status endpoint. Always add the suffix ?XML=true. + default_value: no + required: true + - name: user + description: A valid user with read permission to access the /manager/status endpoint of the server. Required if the endpoint is password protected + default_value: no + required: false + - name: pass + description: A valid password for the user in question. Required if the endpoint is password protected + default_value: no + required: false + - name: connector_name + description: The connector component that communicates with a web connector via the AJP protocol, e.g ajp-bio-8009 + default_value: "" + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic + folding: + enabled: false + description: A basic example configuration + config: | + localhost: + name : 'local' + url : 'http://localhost:8080/manager/status?XML=true' + - name: Using an IPv4 endpoint + description: A typical configuration using an IPv4 endpoint + config: | + local_ipv4: + name : 'local' + url : 'http://127.0.0.1:8080/manager/status?XML=true' + - name: Using an IPv6 endpoint + description: A typical configuration using an IPv6 endpoint + config: | + local_ipv6: + name : 'local' + url : 'http://[::1]:8080/manager/status?XML=true' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: tomcat.accesses - description: Requests - unit: "requests/s" - chart_type: area - dimensions: - - name: accesses - - name: errors - - name: tomcat.bandwidth - description: Bandwidth - unit: "KiB/s" - chart_type: area - dimensions: - - name: sent - - name: received - - name: tomcat.processing_time - description: processing time - unit: "seconds" - chart_type: area - dimensions: - - name: processing time - - name: tomcat.threads - description: Threads - unit: "current threads" - chart_type: area - dimensions: - - name: current - - name: busy - - name: tomcat.jvm - description: JVM Memory Pool Usage - unit: "MiB" - chart_type: stacked - dimensions: - - name: free - - name: eden - - name: survivor - - name: tenured - - name: code cache - - name: compressed - - name: metaspace - - name: tomcat.jvm_eden - description: Eden Memory Usage - unit: "MiB" - chart_type: area - dimensions: - - name: used - - name: committed - - name: max - - name: tomcat.jvm_survivor - description: Survivor Memory Usage - unit: "MiB" - chart_type: area - dimensions: - - name: used - - name: committed - - name: max - - name: tomcat.jvm_tenured - description: Tenured Memory Usage - unit: "MiB" - chart_type: area - dimensions: - - name: used - - name: committed - - name: max + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: tomcat.accesses + description: Requests + unit: "requests/s" + chart_type: area + dimensions: + - name: accesses + - name: errors + - name: tomcat.bandwidth + description: Bandwidth + unit: "KiB/s" + chart_type: area + dimensions: + - name: sent + - name: received + - name: tomcat.processing_time + description: processing time + unit: "seconds" + chart_type: area + dimensions: + - name: processing time + - name: tomcat.threads + description: Threads + unit: "current threads" + chart_type: area + dimensions: + - name: current + - name: busy + - name: tomcat.jvm + description: JVM Memory Pool Usage + unit: "MiB" + chart_type: stacked + dimensions: + - name: free + - name: eden + - name: survivor + - name: tenured + - name: code cache + - name: compressed + - name: metaspace + - name: tomcat.jvm_eden + description: Eden Memory Usage + unit: "MiB" + chart_type: area + dimensions: + - name: used + - name: committed + - name: max + - name: tomcat.jvm_survivor + description: Survivor Memory Usage + unit: "MiB" + chart_type: area + dimensions: + - name: used + - name: committed + - name: max + - name: tomcat.jvm_tenured + description: Tenured Memory Usage + unit: "MiB" + chart_type: area + dimensions: + - name: used + - name: committed + - name: max diff --git a/collectors/python.d.plugin/tomcat/metrics.csv b/collectors/python.d.plugin/tomcat/metrics.csv deleted file mode 100644 index 6769fa3f..00000000 --- a/collectors/python.d.plugin/tomcat/metrics.csv +++ /dev/null @@ -1,9 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -tomcat.accesses,,"accesses, errors",requests/s,Requests,area,,python.d.plugin,tomcat -tomcat.bandwidth,,"sent, received",KiB/s,Bandwidth,area,,python.d.plugin,tomcat -tomcat.processing_time,,processing time,seconds,processing time,area,,python.d.plugin,tomcat -tomcat.threads,,"current, busy",current threads,Threads,area,,python.d.plugin,tomcat -tomcat.jvm,,"free, eden, survivor, tenured, code cache, compressed, metaspace",MiB,JVM Memory Pool Usage,stacked,,python.d.plugin,tomcat -tomcat.jvm_eden,,"used, committed, max",MiB,Eden Memory Usage,area,,python.d.plugin,tomcat -tomcat.jvm_survivor,,"used, committed, max",MiB,Survivor Memory Usage,area,,python.d.plugin,tomcat -tomcat.jvm_tenured,,"used, committed, max",MiB,Tenured Memory Usage,area,,python.d.plugin,tomcat diff --git a/collectors/python.d.plugin/tor/metadata.yaml b/collectors/python.d.plugin/tor/metadata.yaml index 7d02b2d7..d0ecc1a4 100644 --- a/collectors/python.d.plugin/tor/metadata.yaml +++ b/collectors/python.d.plugin/tor/metadata.yaml @@ -1,73 +1,140 @@ -meta: - plugin_name: python.d.plugin - module_name: tor - monitored_instance: - name: Tor - link: '' - categories: - - data-collection.vpns - icon_filename: 'tor.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Tor metrics with Netdata for efficient anonymous communication operations. Enhance your anonymous communication with real-time insights and alerts.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: tor + monitored_instance: + name: Tor + link: 'https://www.torproject.org/' + categories: + - data-collection.vpns + icon_filename: 'tor.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - tor + - traffic + - vpn + most_popular: false + overview: + data_collection: + metrics_description: 'This collector monitors Tor bandwidth traffic .' + method_description: 'It connects to the Tor control port to collect traffic statistics.' + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: '' + default_behavior: + auto_detection: + description: 'If no configuration is provided the collector will try to connect to 127.0.0.1:9051 to detect a running tor instance.' + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: 'Required Tor configuration' + description: | + Add to /etc/tor/torrc: + + ControlPort 9051 + + For more options please read the manual. + configuration: + file: + name: python.d/tor.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + - name: control_addr + description: Tor control IP address + default_value: 127.0.0.1 + required: false + - name: control_port + description: Tor control port. Can be either a tcp port, or a path to a socket file. + default_value: 9051 + required: false + - name: password + description: Tor control password + default_value: '' + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Local TCP + description: A basic TCP configuration. `local_addr` is ommited and will default to `127.0.0.1` + config: | + local_tcp: + name: 'local' + control_port: 9051 + password: <password> # if required + - name: Local socket + description: A basic local socket configuration + config: | + local_socket: + name: 'local' + control_port: '/var/run/tor/control' + password: <password> # if required + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: tor.traffic - description: Tor Traffic - unit: "KiB/s" - chart_type: area - dimensions: - - name: read - - name: write + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: tor.traffic + description: Tor Traffic + unit: "KiB/s" + chart_type: area + dimensions: + - name: read + - name: write diff --git a/collectors/python.d.plugin/tor/metrics.csv b/collectors/python.d.plugin/tor/metrics.csv deleted file mode 100644 index 62402d8d..00000000 --- a/collectors/python.d.plugin/tor/metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -tor.traffic,,"read, write",KiB/s,Tor Traffic,area,,python.d.plugin,tor diff --git a/collectors/python.d.plugin/traefik/metadata.yaml b/collectors/python.d.plugin/traefik/metadata.yaml index b817d422..dcfb098a 100644 --- a/collectors/python.d.plugin/traefik/metadata.yaml +++ b/collectors/python.d.plugin/traefik/metadata.yaml @@ -1,122 +1,125 @@ -meta: - plugin_name: python.d.plugin - module_name: traefik - monitored_instance: - name: python.d traefik - link: '' - categories: [] - icon_filename: '' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: '' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] - metrics: - - name: traefik.response_statuses - description: Response statuses - unit: "requests/s" - chart_type: stacked - dimensions: - - name: success - - name: error - - name: redirect - - name: bad - - name: other - - name: traefik.response_codes - description: Responses by codes - unit: "requests/s" - chart_type: stacked - dimensions: - - name: 2xx - - name: 5xx - - name: 3xx - - name: 4xx - - name: 1xx - - name: other - - name: traefik.detailed_response_codes - description: Detailed response codes - unit: "requests/s" - chart_type: stacked - dimensions: - - name: a dimension for each response code family - - name: traefik.requests - description: Requests - unit: "requests/s" - chart_type: line - dimensions: - - name: requests - - name: traefik.total_response_time - description: Total response time - unit: "seconds" - chart_type: line - dimensions: - - name: response - - name: traefik.average_response_time - description: Average response time - unit: "milliseconds" - chart_type: line - dimensions: - - name: response - - name: traefik.average_response_time_per_iteration - description: Average response time per iteration - unit: "milliseconds" - chart_type: line - dimensions: - - name: response - - name: traefik.uptime - description: Uptime - unit: "seconds" - chart_type: line - dimensions: - - name: uptime +# This collector will not appear in documentation, as the go version is preferred, +# https://github.com/netdata/go.d.plugin/blob/master/modules/traefik/README.md +# +# meta: +# plugin_name: python.d.plugin +# module_name: traefik +# monitored_instance: +# name: python.d traefik +# link: '' +# categories: [] +# icon_filename: '' +# related_resources: +# integrations: +# list: [] +# info_provided_to_referring_integrations: +# description: '' +# keywords: [] +# most_popular: false +# overview: +# data_collection: +# metrics_description: '' +# method_description: '' +# supported_platforms: +# include: [] +# exclude: [] +# multi_instance: true +# additional_permissions: +# description: '' +# default_behavior: +# auto_detection: +# description: '' +# limits: +# description: '' +# performance_impact: +# description: '' +# setup: +# prerequisites: +# list: [] +# configuration: +# file: +# name: '' +# description: '' +# options: +# description: '' +# folding: +# title: '' +# enabled: true +# list: [] +# examples: +# folding: +# enabled: true +# title: '' +# list: [] +# troubleshooting: +# problems: +# list: [] +# alerts: [] +# metrics: +# folding: +# title: Metrics +# enabled: false +# description: "" +# availability: [] +# scopes: +# - name: global +# description: "" +# labels: [] +# metrics: +# - name: traefik.response_statuses +# description: Response statuses +# unit: "requests/s" +# chart_type: stacked +# dimensions: +# - name: success +# - name: error +# - name: redirect +# - name: bad +# - name: other +# - name: traefik.response_codes +# description: Responses by codes +# unit: "requests/s" +# chart_type: stacked +# dimensions: +# - name: 2xx +# - name: 5xx +# - name: 3xx +# - name: 4xx +# - name: 1xx +# - name: other +# - name: traefik.detailed_response_codes +# description: Detailed response codes +# unit: "requests/s" +# chart_type: stacked +# dimensions: +# - name: a dimension for each response code family +# - name: traefik.requests +# description: Requests +# unit: "requests/s" +# chart_type: line +# dimensions: +# - name: requests +# - name: traefik.total_response_time +# description: Total response time +# unit: "seconds" +# chart_type: line +# dimensions: +# - name: response +# - name: traefik.average_response_time +# description: Average response time +# unit: "milliseconds" +# chart_type: line +# dimensions: +# - name: response +# - name: traefik.average_response_time_per_iteration +# description: Average response time per iteration +# unit: "milliseconds" +# chart_type: line +# dimensions: +# - name: response +# - name: traefik.uptime +# description: Uptime +# unit: "seconds" +# chart_type: line +# dimensions: +# - name: uptime diff --git a/collectors/python.d.plugin/traefik/metrics.csv b/collectors/python.d.plugin/traefik/metrics.csv deleted file mode 100644 index 77e1c294..00000000 --- a/collectors/python.d.plugin/traefik/metrics.csv +++ /dev/null @@ -1,9 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -traefik.response_statuses,,"success, error, redirect, bad, other",requests/s,Response statuses,stacked,,python.d.plugin,traefik -traefik.response_codes,,"2xx, 5xx, 3xx, 4xx, 1xx, other",requests/s,Responses by codes,stacked,,python.d.plugin,traefik -traefik.detailed_response_codes,,a dimension for each response code family,requests/s,Detailed response codes,stacked,,python.d.plugin,traefik -traefik.requests,,requests,requests/s,Requests,line,,python.d.plugin,traefik -traefik.total_response_time,,response,seconds,Total response time,line,,python.d.plugin,traefik -traefik.average_response_time,,response,milliseconds,Average response time,line,,python.d.plugin,traefik -traefik.average_response_time_per_iteration,,response,milliseconds,Average response time per iteration,line,,python.d.plugin,traefik -traefik.uptime,,uptime,seconds,Uptime,line,,python.d.plugin,traefik diff --git a/collectors/python.d.plugin/uwsgi/metadata.yaml b/collectors/python.d.plugin/uwsgi/metadata.yaml index 3447f532..cdb090ac 100644 --- a/collectors/python.d.plugin/uwsgi/metadata.yaml +++ b/collectors/python.d.plugin/uwsgi/metadata.yaml @@ -1,114 +1,201 @@ -meta: - plugin_name: python.d.plugin - module_name: uwsgi - monitored_instance: - name: uWSGI - link: '' - categories: - - data-collection.web-servers-and-web-proxies - icon_filename: 'uwsgi.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor uWSGI performance for optimal application server operations. Monitor request rates, worker statuses, and error rates to ensure efficient application delivery.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: uwsgi + monitored_instance: + name: uWSGI + link: "https://github.com/unbit/uwsgi/tree/2.0.21" + categories: + - data-collection.web-servers-and-web-proxies + icon_filename: "uwsgi.svg" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - application server + - python + - web applications + most_popular: false + overview: + data_collection: + metrics_description: "This collector monitors uWSGI metrics about requests, workers, memory and more." + method_description: "It collects every metric exposed from the stats server of uWSGI, either from the `stats.socket` or from the web server's TCP/IP socket." + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "This collector will auto-detect uWSGI instances deployed on the local host, running on port 1717, or exposing stats on socket `tmp/stats.socket`." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Enable the uWSGI Stats server + description: | + Make sure that you uWSGI exposes it's metrics via a Stats server. + + Source: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html + configuration: + file: + name: "python.d/uwsgi.conf" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: The JOB's name as it will appear at the dashboard (by default is the job_name) + default_value: job_name + required: false + - name: socket + description: The 'path/to/uwsgistats.sock' + default_value: no + required: false + - name: host + description: The host to connect to + default_value: no + required: false + - name: port + description: The port to connect to + default_value: no + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Basic (default out-of-the-box) + description: A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. As all JOBs have the same name, only one can run at a time. + config: | + socket: + name : 'local' + socket : '/tmp/stats.socket' + + localhost: + name : 'local' + host : 'localhost' + port : 1717 + + localipv4: + name : 'local' + host : '127.0.0.1' + port : 1717 + + localipv6: + name : 'local' + host : '::1' + port : 1717 + - name: Multi-instance + description: | + > **Note**: When you define multiple jobs, their names must be unique. + + Collecting metrics from local and remote instances. + config: | + local: + name : 'local' + host : 'localhost' + port : 1717 + + remote: + name : 'remote' + host : '192.0.2.1' + port : 1717 + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: uwsgi.requests - description: Requests - unit: "requests/s" - chart_type: stacked - dimensions: - - name: a dimension per worker - - name: uwsgi.tx - description: Transmitted data - unit: "KiB/s" - chart_type: stacked - dimensions: - - name: a dimension per worker - - name: uwsgi.avg_rt - description: Average request time - unit: "milliseconds" - chart_type: line - dimensions: - - name: a dimension per worker - - name: uwsgi.memory_rss - description: RSS (Resident Set Size) - unit: "MiB" - chart_type: stacked - dimensions: - - name: a dimension per worker - - name: uwsgi.memory_vsz - description: VSZ (Virtual Memory Size) - unit: "MiB" - chart_type: stacked - dimensions: - - name: a dimension per worker - - name: uwsgi.exceptions - description: Exceptions - unit: "exceptions" - chart_type: line - dimensions: - - name: exceptions - - name: uwsgi.harakiris - description: Harakiris - unit: "harakiris" - chart_type: line - dimensions: - - name: harakiris - - name: uwsgi.respawns - description: Respawns - unit: "respawns" - chart_type: line - dimensions: - - name: respawns + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: uwsgi.requests + description: Requests + unit: "requests/s" + chart_type: stacked + dimensions: + - name: a dimension per worker + - name: uwsgi.tx + description: Transmitted data + unit: "KiB/s" + chart_type: stacked + dimensions: + - name: a dimension per worker + - name: uwsgi.avg_rt + description: Average request time + unit: "milliseconds" + chart_type: line + dimensions: + - name: a dimension per worker + - name: uwsgi.memory_rss + description: RSS (Resident Set Size) + unit: "MiB" + chart_type: stacked + dimensions: + - name: a dimension per worker + - name: uwsgi.memory_vsz + description: VSZ (Virtual Memory Size) + unit: "MiB" + chart_type: stacked + dimensions: + - name: a dimension per worker + - name: uwsgi.exceptions + description: Exceptions + unit: "exceptions" + chart_type: line + dimensions: + - name: exceptions + - name: uwsgi.harakiris + description: Harakiris + unit: "harakiris" + chart_type: line + dimensions: + - name: harakiris + - name: uwsgi.respawns + description: Respawns + unit: "respawns" + chart_type: line + dimensions: + - name: respawns diff --git a/collectors/python.d.plugin/uwsgi/metrics.csv b/collectors/python.d.plugin/uwsgi/metrics.csv deleted file mode 100644 index c974653f..00000000 --- a/collectors/python.d.plugin/uwsgi/metrics.csv +++ /dev/null @@ -1,9 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -uwsgi.requests,,a dimension per worker,requests/s,Requests,stacked,,python.d.plugin,uwsgi -uwsgi.tx,,a dimension per worker,KiB/s,Transmitted data,stacked,,python.d.plugin,uwsgi -uwsgi.avg_rt,,a dimension per worker,milliseconds,Average request time,line,,python.d.plugin,uwsgi -uwsgi.memory_rss,,a dimension per worker,MiB,RSS (Resident Set Size),stacked,,python.d.plugin,uwsgi -uwsgi.memory_vsz,,a dimension per worker,MiB,VSZ (Virtual Memory Size),stacked,,python.d.plugin,uwsgi -uwsgi.exceptions,,exceptions,exceptions,Exceptions,line,,python.d.plugin,uwsgi -uwsgi.harakiris,,harakiris,harakiris,Harakiris,line,,python.d.plugin,uwsgi -uwsgi.respawns,,respawns,respawns,Respawns,line,,python.d.plugin,uwsgi diff --git a/collectors/python.d.plugin/varnish/metadata.yaml b/collectors/python.d.plugin/varnish/metadata.yaml index 267279fa..aa245c25 100644 --- a/collectors/python.d.plugin/varnish/metadata.yaml +++ b/collectors/python.d.plugin/varnish/metadata.yaml @@ -1,192 +1,253 @@ -meta: - plugin_name: python.d.plugin - module_name: varnish - monitored_instance: - name: Varnish - link: '' - categories: - - data-collection.web-servers-and-web-proxies - icon_filename: 'varnish.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor Varnish metrics with Netdata for efficient HTTP accelerator performance. Enhance your web performance with real-time Varnish metrics.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] - metrics: - - name: varnish.session_connection - description: Connections Statistics - unit: "connections/s" - chart_type: line - dimensions: - - name: accepted - - name: dropped - - name: varnish.client_requests - description: Client Requests - unit: "requests/s" - chart_type: line - dimensions: - - name: received - - name: varnish.all_time_hit_rate - description: All History Hit Rate Ratio - unit: "percentage" - chart_type: stacked - dimensions: - - name: hit - - name: miss - - name: hitpass - - name: varnish.current_poll_hit_rate - description: Current Poll Hit Rate Ratio - unit: "percentage" - chart_type: stacked - dimensions: - - name: hit - - name: miss - - name: hitpass - - name: varnish.cached_objects_expired - description: Expired Objects - unit: "expired/s" - chart_type: line - dimensions: - - name: objects - - name: varnish.cached_objects_nuked - description: Least Recently Used Nuked Objects - unit: "nuked/s" - chart_type: line - dimensions: - - name: objects - - name: varnish.threads_total - description: Number Of Threads In All Pools - unit: "number" - chart_type: line - dimensions: - - name: None - - name: varnish.threads_statistics - description: Threads Statistics - unit: "threads/s" - chart_type: line - dimensions: - - name: created - - name: failed - - name: limited - - name: varnish.threads_queue_len - description: Current Queue Length - unit: "requests" - chart_type: line - dimensions: - - name: in queue - - name: varnish.backend_connections - description: Backend Connections Statistics - unit: "connections/s" - chart_type: line - dimensions: - - name: successful - - name: unhealthy - - name: reused - - name: closed - - name: recycled - - name: failed - - name: varnish.backend_requests - description: Requests To The Backend - unit: "requests/s" - chart_type: line - dimensions: - - name: sent - - name: varnish.esi_statistics - description: ESI Statistics - unit: "problems/s" - chart_type: line - dimensions: - - name: errors - - name: warnings - - name: varnish.memory_usage - description: Memory Usage - unit: "MiB" - chart_type: stacked - dimensions: - - name: free - - name: allocated - - name: varnish.uptime - description: Uptime - unit: "seconds" - chart_type: line - dimensions: - - name: uptime - - name: Backend - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: varnish + monitored_instance: + name: Varnish + link: https://varnish-cache.org/ + categories: + - data-collection.web-servers-and-web-proxies + icon_filename: 'varnish.svg' + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: '' + keywords: + - varnish + - varnishstat + - varnishd + - cache + - web server + - web cache + most_popular: false + overview: + data_collection: + metrics_description: | + This collector monitors Varnish metrics about HTTP accelerator global, Backends (VBE) and Storages (SMF, SMA, MSE) statistics. + + Note that both, Varnish-Cache (free and open source) and Varnish-Plus (Commercial/Enterprise version), are supported. + method_description: | + It uses the `varnishstat` tool in order to collect the metrics. + supported_platforms: + include: [] + exclude: [] + multi_instance: false + additional_permissions: + description: | + `netdata` user must be a member of the `varnish` group. + default_behavior: + auto_detection: + description: By default, if the permissions are satisfied, the `varnishstat` tool will be executed on the host. + limits: + description: '' + performance_impact: + description: '' + setup: + prerequisites: + list: + - title: Provide the necessary permissions + description: | + In order for the collector to work, you need to add the `netdata` user to the `varnish` user group, so that it can execute the `varnishstat` tool: + + ``` + usermod -aG varnish netdata + ``` + configuration: + file: + name: python.d/varnish.conf + description: '' + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: Config options + enabled: true + list: + - name: instance_name + description: the name of the varnishd instance to get logs from. If not specified, the host name is used. + default_value: '<host name>' + required: true + - name: update_every + description: Sets the default data collection frequency. + default_value: 10 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: '' + required: false + examples: + folding: + enabled: true + title: 'Config' + list: + - name: Basic + description: An example configuration. + folding: + enabled: false + config: | + job_name: + instance_name: '<name-of-varnishd-instance>' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: varnish.backend - description: Backend {backend_name} - unit: "kilobits/s" - chart_type: area - dimensions: - - name: header - - name: body - - name: Storage - description: "" - labels: [] - metrics: - - name: varnish.storage_usage - description: Storage {storage_name} Usage - unit: "KiB" - chart_type: stacked - dimensions: - - name: free - - name: allocated - - name: varnish.storage_alloc_objs - description: Storage {storage_name} Allocated Objects - unit: "objects" - chart_type: line - dimensions: - - name: allocated + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: varnish.session_connection + description: Connections Statistics + unit: "connections/s" + chart_type: line + dimensions: + - name: accepted + - name: dropped + - name: varnish.client_requests + description: Client Requests + unit: "requests/s" + chart_type: line + dimensions: + - name: received + - name: varnish.all_time_hit_rate + description: All History Hit Rate Ratio + unit: "percentage" + chart_type: stacked + dimensions: + - name: hit + - name: miss + - name: hitpass + - name: varnish.current_poll_hit_rate + description: Current Poll Hit Rate Ratio + unit: "percentage" + chart_type: stacked + dimensions: + - name: hit + - name: miss + - name: hitpass + - name: varnish.cached_objects_expired + description: Expired Objects + unit: "expired/s" + chart_type: line + dimensions: + - name: objects + - name: varnish.cached_objects_nuked + description: Least Recently Used Nuked Objects + unit: "nuked/s" + chart_type: line + dimensions: + - name: objects + - name: varnish.threads_total + description: Number Of Threads In All Pools + unit: "number" + chart_type: line + dimensions: + - name: None + - name: varnish.threads_statistics + description: Threads Statistics + unit: "threads/s" + chart_type: line + dimensions: + - name: created + - name: failed + - name: limited + - name: varnish.threads_queue_len + description: Current Queue Length + unit: "requests" + chart_type: line + dimensions: + - name: in queue + - name: varnish.backend_connections + description: Backend Connections Statistics + unit: "connections/s" + chart_type: line + dimensions: + - name: successful + - name: unhealthy + - name: reused + - name: closed + - name: recycled + - name: failed + - name: varnish.backend_requests + description: Requests To The Backend + unit: "requests/s" + chart_type: line + dimensions: + - name: sent + - name: varnish.esi_statistics + description: ESI Statistics + unit: "problems/s" + chart_type: line + dimensions: + - name: errors + - name: warnings + - name: varnish.memory_usage + description: Memory Usage + unit: "MiB" + chart_type: stacked + dimensions: + - name: free + - name: allocated + - name: varnish.uptime + description: Uptime + unit: "seconds" + chart_type: line + dimensions: + - name: uptime + - name: Backend + description: "" + labels: [] + metrics: + - name: varnish.backend + description: Backend {backend_name} + unit: "kilobits/s" + chart_type: area + dimensions: + - name: header + - name: body + - name: Storage + description: "" + labels: [] + metrics: + - name: varnish.storage_usage + description: Storage {storage_name} Usage + unit: "KiB" + chart_type: stacked + dimensions: + - name: free + - name: allocated + - name: varnish.storage_alloc_objs + description: Storage {storage_name} Allocated Objects + unit: "objects" + chart_type: line + dimensions: + - name: allocated diff --git a/collectors/python.d.plugin/varnish/metrics.csv b/collectors/python.d.plugin/varnish/metrics.csv deleted file mode 100644 index bafb9fd1..00000000 --- a/collectors/python.d.plugin/varnish/metrics.csv +++ /dev/null @@ -1,18 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -varnish.session_connection,,"accepted, dropped",connections/s,Connections Statistics,line,,python.d.plugin,varnish -varnish.client_requests,,received,requests/s,Client Requests,line,,python.d.plugin,varnish -varnish.all_time_hit_rate,,"hit, miss, hitpass",percentage,All History Hit Rate Ratio,stacked,,python.d.plugin,varnish -varnish.current_poll_hit_rate,,"hit, miss, hitpass",percentage,Current Poll Hit Rate Ratio,stacked,,python.d.plugin,varnish -varnish.cached_objects_expired,,objects,expired/s,Expired Objects,line,,python.d.plugin,varnish -varnish.cached_objects_nuked,,objects,nuked/s,Least Recently Used Nuked Objects,line,,python.d.plugin,varnish -varnish.threads_total,,None,number,Number Of Threads In All Pools,line,,python.d.plugin,varnish -varnish.threads_statistics,,"created, failed, limited",threads/s,Threads Statistics,line,,python.d.plugin,varnish -varnish.threads_queue_len,,in queue,requests,Current Queue Length,line,,python.d.plugin,varnish -varnish.backend_connections,,"successful, unhealthy, reused, closed, recycled, failed",connections/s,Backend Connections Statistics,line,,python.d.plugin,varnish -varnish.backend_requests,,sent,requests/s,Requests To The Backend,line,,python.d.plugin,varnish -varnish.esi_statistics,,"errors, warnings",problems/s,ESI Statistics,line,,python.d.plugin,varnish -varnish.memory_usage,,"free, allocated",MiB,Memory Usage,stacked,,python.d.plugin,varnish -varnish.uptime,,uptime,seconds,Uptime,line,,python.d.plugin,varnish -varnish.backend,Backend,"header, body",kilobits/s,Backend {backend_name},area,,python.d.plugin,varnish -varnish.storage_usage,Storage,"free, allocated",KiB,Storage {storage_name} Usage,stacked,,python.d.plugin,varnish -varnish.storage_alloc_objs,Storage,allocated,objects,Storage {storage_name} Allocated Objects,line,,python.d.plugin,varnish diff --git a/collectors/python.d.plugin/w1sensor/metadata.yaml b/collectors/python.d.plugin/w1sensor/metadata.yaml index 5d495fe5..7b076823 100644 --- a/collectors/python.d.plugin/w1sensor/metadata.yaml +++ b/collectors/python.d.plugin/w1sensor/metadata.yaml @@ -1,72 +1,119 @@ -meta: - plugin_name: python.d.plugin - module_name: w1sensor - monitored_instance: - name: 1-Wire Sensors - link: '' - categories: - - data-collection.hardware-devices-and-sensors - icon_filename: '1-wire.png' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: 'Monitor 1-Wire Sensors metrics with Netdata for optimal environmental conditions monitoring. Enhance your environmental monitoring with real-time insights and alerts.' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: w1sensor + monitored_instance: + name: 1-Wire Sensors + link: "https://www.analog.com/en/product-category/1wire-temperature-sensors.html" + categories: + - data-collection.hardware-devices-and-sensors + icon_filename: "1-wire.png" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - temperature + - sensor + - 1-wire + most_popular: false + overview: + data_collection: + metrics_description: "Monitor 1-Wire Sensors metrics with Netdata for optimal environmental conditions monitoring. Enhance your environmental monitoring with real-time insights and alerts." + method_description: "The collector uses the wire, w1_gpio, and w1_therm kernel modules. Currently temperature sensors are supported and automatically detected." + supported_platforms: + include: + - Linux + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "The collector will try to auto detect available 1-Wire devices." + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: "Required Linux kernel modules" + description: "Make sure `wire`, `w1_gpio`, and `w1_therm` kernel modules are loaded." + configuration: + file: + name: python.d/w1sensor.conf + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + - name: name + description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. + default_value: "" + required: false + - name: name_<1-Wire id> + description: This allows associating a human readable name with a sensor's 1-Wire identifier. + default_value: "" + required: false + examples: + folding: + enabled: false + title: "Config" + list: + - name: Provide human readable names + description: Associate two 1-Wire identifiers with human readable names. + config: | + sensors: + name_00000022276e: 'Machine room' + name_00000022298f: 'Rack 12' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: w1sensor.temp - description: 1-Wire Temperature Sensor - unit: "Celsius" - chart_type: line - dimensions: - - name: a dimension per sensor + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: w1sensor.temp + description: 1-Wire Temperature Sensor + unit: "Celsius" + chart_type: line + dimensions: + - name: a dimension per sensor diff --git a/collectors/python.d.plugin/w1sensor/metrics.csv b/collectors/python.d.plugin/w1sensor/metrics.csv deleted file mode 100644 index 54564934..00000000 --- a/collectors/python.d.plugin/w1sensor/metrics.csv +++ /dev/null @@ -1,2 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -w1sensor.temp,,a dimension per sensor,Celsius,1-Wire Temperature Sensor,line,,python.d.plugin,w1sensor diff --git a/collectors/python.d.plugin/w1sensor/w1sensor.conf b/collectors/python.d.plugin/w1sensor/w1sensor.conf index 17271001..b60d2865 100644 --- a/collectors/python.d.plugin/w1sensor/w1sensor.conf +++ b/collectors/python.d.plugin/w1sensor/w1sensor.conf @@ -59,7 +59,7 @@ # penalty: yes # the JOB's penalty # autodetection_retry: 0 # the JOB's re-check interval in seconds # -# Additionally to the above, example also supports the following: +# Additionally to the above, w1sensor also supports the following: # # name_<1-Wire id>: '<human readable name>' # This allows associating a human readable name with a sensor's 1-Wire diff --git a/collectors/python.d.plugin/zscores/metadata.yaml b/collectors/python.d.plugin/zscores/metadata.yaml index 740d91e4..388e9b46 100644 --- a/collectors/python.d.plugin/zscores/metadata.yaml +++ b/collectors/python.d.plugin/zscores/metadata.yaml @@ -1,77 +1,187 @@ -meta: - plugin_name: python.d.plugin - module_name: zscores - monitored_instance: - name: python.d zscores - link: '' - categories: [] - icon_filename: '' - related_resources: - integrations: - list: [] - info_provided_to_referring_integrations: - description: '' - keywords: [] - most_popular: false -overview: - data_collection: - metrics_description: '' - method_description: '' - supported_platforms: - include: [] - exclude: [] - multi-instance: true - additional_permissions: - description: '' - default_behavior: - auto_detection: - description: '' - limits: - description: '' - performance_impact: - description: '' -setup: - prerequisites: - list: [] - configuration: - file: - name: '' - description: '' - options: - description: '' - folding: - title: '' - enabled: true - list: [] - examples: - folding: - enabled: true - title: '' - list: [] -troubleshooting: - problems: - list: [] -alerts: [] -metrics: - folding: - title: Metrics - enabled: false - description: "" - availability: [] - scopes: - - name: global - description: "" - labels: [] +plugin_name: python.d.plugin +modules: + - meta: + plugin_name: python.d.plugin + module_name: zscores + monitored_instance: + name: python.d zscores + link: https://en.wikipedia.org/wiki/Standard_score + categories: + - data-collection.other + icon_filename: "" + related_resources: + integrations: + list: [] + info_provided_to_referring_integrations: + description: "" + keywords: + - zscore + - z-score + - standard score + - standard deviation + - anomaly detection + - statistical anomaly detection + most_popular: false + overview: + data_collection: + metrics_description: | + By using smoothed, rolling [Z-Scores](https://en.wikipedia.org/wiki/Standard_score) for selected metrics or charts you can narrow down your focus and shorten root cause analysis. + method_description: | + This collector uses the [Netdata rest api](https://github.com/netdata/netdata/blob/master/web/api/README.md) to get the `mean` and `stddev` + for each dimension on specified charts over a time range (defined by `train_secs` and `offset_secs`). + + For each dimension it will calculate a Z-Score as `z = (x - mean) / stddev` (clipped at `z_clip`). Scores are then smoothed over + time (`z_smooth_n`) and, if `mode: 'per_chart'`, aggregated across dimensions to a smoothed, rolling chart level Z-Score at each time step. + supported_platforms: + include: [] + exclude: [] + multi_instance: true + additional_permissions: + description: "" + default_behavior: + auto_detection: + description: "" + limits: + description: "" + performance_impact: + description: "" + setup: + prerequisites: + list: + - title: Python Requirements + description: | + This collector will only work with Python 3 and requires the below packages be installed. + + ```bash + # become netdata user + sudo su -s /bin/bash netdata + # install required packages + pip3 install numpy pandas requests netdata-pandas==0.0.38 + ``` + configuration: + file: + name: python.d/zscores.conf + description: "" + options: + description: | + There are 2 sections: + + * Global variables + * One or more JOBS that can define multiple different instances to monitor. + + The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values. + + Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition. + + Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. + folding: + title: "Config options" + enabled: true + list: + - name: charts_regex + description: what charts to pull data for - A regex like `system\..*|` or `system\..*|apps.cpu|apps.mem` etc. + default_value: "system\\..*" + required: true + - name: train_secs + description: length of time (in seconds) to base calculations off for mean and stddev. + default_value: 14400 + required: true + - name: offset_secs + description: offset (in seconds) preceding latest data to ignore when calculating mean and stddev. + default_value: 300 + required: true + - name: train_every_n + description: recalculate the mean and stddev every n steps of the collector. + default_value: 900 + required: true + - name: z_smooth_n + description: smooth the z score (to reduce sensitivity to spikes) by averaging it over last n values. + default_value: 15 + required: true + - name: z_clip + description: cap absolute value of zscore (before smoothing) for better stability. + default_value: 10 + required: true + - name: z_abs + description: "set z_abs: 'true' to make all zscores be absolute values only." + default_value: "true" + required: true + - name: burn_in + description: burn in period in which to initially calculate mean and stddev on every step. + default_value: 2 + required: true + - name: mode + description: mode can be to get a zscore 'per_dim' or 'per_chart'. + default_value: per_chart + required: true + - name: per_chart_agg + description: per_chart_agg is how you aggregate from dimension to chart when mode='per_chart'. + default_value: mean + required: true + - name: update_every + description: Sets the default data collection frequency. + default_value: 5 + required: false + - name: priority + description: Controls the order of charts at the netdata dashboard. + default_value: 60000 + required: false + - name: autodetection_retry + description: Sets the job re-check interval in seconds. + default_value: 0 + required: false + - name: penalty + description: Indicates whether to apply penalty to update_every in case of failures. + default_value: yes + required: false + examples: + folding: + enabled: true + title: "Config" + list: + - name: Default + description: Default configuration. + folding: + enabled: false + config: | + local: + name: 'local' + host: '127.0.0.1:19999' + charts_regex: 'system\..*' + charts_to_exclude: 'system.uptime' + train_secs: 14400 + offset_secs: 300 + train_every_n: 900 + z_smooth_n: 15 + z_clip: 10 + z_abs: 'true' + burn_in: 2 + mode: 'per_chart' + per_chart_agg: 'mean' + troubleshooting: + problems: + list: [] + alerts: [] metrics: - - name: zscores.z - description: Z Score - unit: "z" - chart_type: line - dimensions: - - name: a dimension per chart or dimension - - name: zscores.3stddev - description: Z Score >3 - unit: "count" - chart_type: stacked - dimensions: - - name: a dimension per chart or dimension + folding: + title: Metrics + enabled: false + description: "" + availability: [] + scopes: + - name: global + description: "These metrics refer to the entire monitored application." + labels: [] + metrics: + - name: zscores.z + description: Z Score + unit: "z" + chart_type: line + dimensions: + - name: a dimension per chart or dimension + - name: zscores.3stddev + description: Z Score >3 + unit: "count" + chart_type: stacked + dimensions: + - name: a dimension per chart or dimension diff --git a/collectors/python.d.plugin/zscores/metrics.csv b/collectors/python.d.plugin/zscores/metrics.csv deleted file mode 100644 index 5066c7c3..00000000 --- a/collectors/python.d.plugin/zscores/metrics.csv +++ /dev/null @@ -1,3 +0,0 @@ -metric,scope,dimensions,unit,description,chart_type,labels,plugin,module -zscores.z,,a dimension per chart or dimension,z,Z Score,line,,python.d.plugin,zscores -zscores.3stddev,,a dimension per chart or dimension,count,Z Score >3,stacked,,python.d.plugin,zscores |