mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
Add support for aggregation and Graphite Separate Instances to Collectd plugin, add 2 plugins to collectd (#1927)
* Fix indentation * Make Graphite separate instances configurable * Add configuration to send CPU aggregate values * Remove superfluous blank lines * Fix inconsistent capitalisation * Add blank line between plugin sections * Add option to send CPU metrics as percent values * Fix inconsistent indentation * Fix inconsistent indentation * Add CPU temperature plugin * Add disk I/O plugin, remove CPU temperature plugin - it's not available * Add swap plugin * Fix misplaced `endif` in jinja template
This commit is contained in:
+33
-3
@@ -85,16 +85,22 @@
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_graphite_prefix</id>
|
||||
<label>Graphite Prefix</label>
|
||||
<label>Graphite prefix</label>
|
||||
<type>text</type>
|
||||
<help>Prefix to set before the hostname. If it ends with a dot it creates an own directory.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_graphite_postfix</id>
|
||||
<label>Graphite Postfix</label>
|
||||
<label>Graphite postfix</label>
|
||||
<type>text</type>
|
||||
<help>String to set after the hostname. For compatibility reason default is collectd, but you can also simply remove it.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_graphite_separate_instances</id>
|
||||
<label>Graphite separate instances</label>
|
||||
<type>checkbox</type>
|
||||
<help>Enabling sends the plugin instance and type instance to Graphite as separate path components: host.cpu.0.cpu.idle. Disabling sends the plugin and plugin instance as one path component and type and type instance as another component: host.cpu-0.cpu-idle.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_contextswitch_enable</id>
|
||||
<label>Enable contextswitch plugin</label>
|
||||
@@ -107,6 +113,24 @@
|
||||
<type>checkbox</type>
|
||||
<help>The CPU plugin collects the amount of time spent by the CPU in various states, most notably executing user code, executing system code, waiting for IO-operations and being idle.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_cpu_percent</id>
|
||||
<label>Report cpu usage in percent</label>
|
||||
<type>checkbox</type>
|
||||
<help>When set, report CPU usage in percent instead of units of kernel time.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_cpu_aggregates</id>
|
||||
<label>Enable cpu aggregates</label>
|
||||
<type>checkbox</type>
|
||||
<help>Send aggregate values for CPU metrics in addition to values for individual cores.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_disk_enable</id>
|
||||
<label>Enable disk plugin</label>
|
||||
<type>checkbox</type>
|
||||
<help>The Disk plugin collects disk I/O information, i.e. read and write operations per second.</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_df_enable</id>
|
||||
<label>Enable df plugin</label>
|
||||
@@ -129,7 +153,13 @@
|
||||
<id>general.p_memory_enable</id>
|
||||
<label>Enable memory plugin</label>
|
||||
<type>checkbox</type>
|
||||
<help>The Memory plugin collects physical memory utilization (Used, buffered, cached and free).</help>
|
||||
<help>The Memory plugin collects physical memory utilization (used, buffered, cached and free).</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_swap_enable</id>
|
||||
<label>Enable swap plugin</label>
|
||||
<type>checkbox</type>
|
||||
<help>The Swap plugin collects swap space utilization (used and free).</help>
|
||||
</field>
|
||||
<field>
|
||||
<id>general.p_processes_enable</id>
|
||||
|
||||
@@ -38,18 +38,18 @@
|
||||
</p_network_port>
|
||||
<p_network_username type="TextField">
|
||||
<default></default>
|
||||
<Required>N</Required>
|
||||
<mask>/^([0-9a-zA-Z._\-]){1,128}$/u</mask>
|
||||
</p_network_username>
|
||||
<p_network_password type="TextField">
|
||||
<default></default>
|
||||
<Required>N</Required>
|
||||
<mask>/^([0-9a-zA-Z._\-\!\$\%\/\(\)\+\#\=]){1,128}$/u</mask>
|
||||
</p_network_password>
|
||||
<p_network_encryption type="BooleanField">
|
||||
<default>0</default>
|
||||
<Required>N</Required>
|
||||
</p_network_encryption>
|
||||
<Required>N</Required>
|
||||
<mask>/^([0-9a-zA-Z._\-]){1,128}$/u</mask>
|
||||
</p_network_username>
|
||||
<p_network_password type="TextField">
|
||||
<default></default>
|
||||
<Required>N</Required>
|
||||
<mask>/^([0-9a-zA-Z._\-\!\$\%\/\(\)\+\#\=]){1,128}$/u</mask>
|
||||
</p_network_password>
|
||||
<p_network_encryption type="BooleanField">
|
||||
<default>0</default>
|
||||
<Required>N</Required>
|
||||
</p_network_encryption>
|
||||
<p_graphite_enable type="BooleanField">
|
||||
<default>0</default>
|
||||
<Required>N</Required>
|
||||
@@ -77,6 +77,10 @@
|
||||
<default>collectd</default>
|
||||
<Required>N</Required>
|
||||
</p_graphite_postfix>
|
||||
<p_graphite_separate_instances type="BooleanField">
|
||||
<default>0</default>
|
||||
<Required>N</Required>
|
||||
</p_graphite_separate_instances>
|
||||
<p_contextswitch_enable type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
@@ -85,6 +89,18 @@
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
</p_cpu_enable>
|
||||
<p_cpu_percent type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
</p_cpu_percent>
|
||||
<p_cpu_aggregates type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
</p_cpu_aggregates>
|
||||
<p_disk_enable type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
</p_disk_enable>
|
||||
<p_df_enable type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
@@ -101,6 +117,10 @@
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
</p_memory_enable>
|
||||
<p_swap_enable type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
</p_swap_enable>
|
||||
<p_processes_enable type="BooleanField">
|
||||
<default>1</default>
|
||||
<Required>N</Required>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{% if helpers.exists('OPNsense.collectd.general.enabled') and OPNsense.collectd.general.enabled == '1' %}
|
||||
|
||||
{% if helpers.exists('OPNsense.collectd.general.hostname') and OPNsense.collectd.general.hostname != '' %}
|
||||
Hostname "{{ OPNsense.collectd.general.hostname }}"
|
||||
{% else %}
|
||||
@@ -12,12 +11,9 @@ FQDNLookup true
|
||||
Interval {{ OPNsense.collectd.general.interval }}
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
|
||||
LoadPlugin syslog
|
||||
<Plugin syslog>
|
||||
LogLevel err
|
||||
LogLevel err
|
||||
</Plugin>
|
||||
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_contextswitch_enable') and OPNsense.collectd.general.p_contextswitch_enable == '1' %}
|
||||
@@ -26,6 +22,12 @@ LoadPlugin contextswitch
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_cpu_enable') and OPNsense.collectd.general.p_cpu_enable == '1' %}
|
||||
LoadPlugin cpu
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_cpu_aggregates') and OPNsense.collectd.general.p_cpu_aggregates == '1' %}
|
||||
LoadPlugin aggregation
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_disk_enable') and OPNsense.collectd.general.p_disk_enable == '1' %}
|
||||
LoadPlugin disk
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_df_enable') and OPNsense.collectd.general.p_df_enable == '1' %}
|
||||
LoadPlugin df
|
||||
{% endif %}
|
||||
@@ -38,6 +40,9 @@ LoadPlugin load
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_memory_enable') and OPNsense.collectd.general.p_memory_enable == '1' %}
|
||||
LoadPlugin memory
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_swap_enable') and OPNsense.collectd.general.p_swap_enable == '1' %}
|
||||
LoadPlugin swap
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_enable') and OPNsense.collectd.general.p_network_enable == '1' %}
|
||||
LoadPlugin network
|
||||
{% endif %}
|
||||
@@ -65,19 +70,19 @@ LoadPlugin write_graphite
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_host') and OPNsense.collectd.general.p_network_host != '' %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_port') and OPNsense.collectd.general.p_network_port != '' %}
|
||||
<Plugin network>
|
||||
<Server "{{ OPNsense.collectd.general.p_network_host }}" "{{ OPNsense.collectd.general.p_network_port }}">
|
||||
<Server "{{ OPNsense.collectd.general.p_network_host }}" "{{ OPNsense.collectd.general.p_network_port }}">
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_username') and OPNsense.collectd.general.p_network_username != '' %}
|
||||
Username "{{ OPNsense.collectd.general.p_network_username }}"
|
||||
Username "{{ OPNsense.collectd.general.p_network_username }}"
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_password') and OPNsense.collectd.general.p_network_password != '' %}
|
||||
Password "{{ OPNsense.collectd.general.p_network_password }}"
|
||||
Password "{{ OPNsense.collectd.general.p_network_password }}"
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_username') and OPNsense.collectd.general.p_network_username != '' %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_network_encryption') and OPNsense.collectd.general.p_network_encryption == '1' %}
|
||||
SecurityLevel Encrypt
|
||||
SecurityLevel Encrypt
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</Server>
|
||||
</Server>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@@ -101,11 +106,15 @@ LoadPlugin write_graphite
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_graphite_postfix') and OPNsense.collectd.general.p_graphite_postfix != '' %}
|
||||
Postfix "{{ OPNsense.collectd.general.p_graphite_postfix }}"
|
||||
{% endif %}
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_graphite_separate_instances') and OPNsense.collectd.general.p_graphite_separate_instances == '1' %}
|
||||
SeparateInstances true
|
||||
{% else %}
|
||||
SeparateInstances false
|
||||
{% endif %}
|
||||
StoreRates true
|
||||
AlwaysAppendDS false
|
||||
EscapeCharacter "_"
|
||||
SeparateInstances false
|
||||
PreserveSeparator false
|
||||
DropDuplicateFields false
|
||||
</Node>
|
||||
@@ -113,4 +122,28 @@ LoadPlugin write_graphite
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<Plugin cpu>
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_cpu_percent') and OPNsense.collectd.general.p_cpu_percent == '1' %}
|
||||
ValuesPercentage true
|
||||
{% else %}
|
||||
ValuesPercentage false
|
||||
{% endif %}
|
||||
</Plugin>
|
||||
|
||||
{% if helpers.exists('OPNsense.collectd.general.p_cpu_aggregates') and OPNsense.collectd.general.p_cpu_aggregates == '1' %}
|
||||
<Plugin "aggregation">
|
||||
<Aggregation>
|
||||
Plugin "cpu"
|
||||
Type "percent"
|
||||
GroupBy "Host"
|
||||
GroupBy "TypeInstance"
|
||||
CalculateNum false
|
||||
CalculateSum true
|
||||
CalculateAverage true
|
||||
CalculateMinimum false
|
||||
CalculateMaximum false
|
||||
CalculateStddev false
|
||||
</Aggregation>
|
||||
</Plugin>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user