diff --git a/net-mgmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/Collectd/forms/general.xml b/net-mgmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/Collectd/forms/general.xml
index 3e588da00..1b60bf26f 100644
--- a/net-mgmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/Collectd/forms/general.xml
+++ b/net-mgmt/collectd/src/opnsense/mvc/app/controllers/OPNsense/Collectd/forms/general.xml
@@ -85,16 +85,22 @@
general.p_graphite_prefix
-
+
text
Prefix to set before the hostname. If it ends with a dot it creates an own directory.
general.p_graphite_postfix
-
+
text
String to set after the hostname. For compatibility reason default is collectd, but you can also simply remove it.
+
+ general.p_graphite_separate_instances
+
+ checkbox
+ 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.
+
general.p_contextswitch_enable
@@ -107,6 +113,24 @@
checkbox
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.
+
+ general.p_cpu_percent
+
+ checkbox
+ When set, report CPU usage in percent instead of units of kernel time.
+
+
+ general.p_cpu_aggregates
+
+ checkbox
+ Send aggregate values for CPU metrics in addition to values for individual cores.
+
+
+ general.p_disk_enable
+
+ checkbox
+ The Disk plugin collects disk I/O information, i.e. read and write operations per second.
+
general.p_df_enable
@@ -129,7 +153,13 @@
general.p_memory_enable
checkbox
- The Memory plugin collects physical memory utilization (Used, buffered, cached and free).
+ The Memory plugin collects physical memory utilization (used, buffered, cached and free).
+
+
+ general.p_swap_enable
+
+ checkbox
+ The Swap plugin collects swap space utilization (used and free).
general.p_processes_enable
diff --git a/net-mgmt/collectd/src/opnsense/mvc/app/models/OPNsense/Collectd/General.xml b/net-mgmt/collectd/src/opnsense/mvc/app/models/OPNsense/Collectd/General.xml
index 9dd07f44a..960a6ed4e 100644
--- a/net-mgmt/collectd/src/opnsense/mvc/app/models/OPNsense/Collectd/General.xml
+++ b/net-mgmt/collectd/src/opnsense/mvc/app/models/OPNsense/Collectd/General.xml
@@ -38,18 +38,18 @@
- N
- /^([0-9a-zA-Z._\-]){1,128}$/u
-
-
-
- N
- /^([0-9a-zA-Z._\-\!\$\%\/\(\)\+\#\=]){1,128}$/u
-
-
- 0
- N
-
+ N
+ /^([0-9a-zA-Z._\-]){1,128}$/u
+
+
+
+ N
+ /^([0-9a-zA-Z._\-\!\$\%\/\(\)\+\#\=]){1,128}$/u
+
+
+ 0
+ N
+
0
N
@@ -77,6 +77,10 @@
collectd
N
+
+ 0
+ N
+
1
N
@@ -85,6 +89,18 @@
1
N
+
+ 1
+ N
+
+
+ 1
+ N
+
+
+ 1
+ N
+
1
N
@@ -101,6 +117,10 @@
1
N
+
+ 1
+ N
+
1
N
diff --git a/net-mgmt/collectd/src/opnsense/service/templates/OPNsense/Collectd/collectd.conf b/net-mgmt/collectd/src/opnsense/service/templates/OPNsense/Collectd/collectd.conf
index b91d93af7..15af1eae7 100644
--- a/net-mgmt/collectd/src/opnsense/service/templates/OPNsense/Collectd/collectd.conf
+++ b/net-mgmt/collectd/src/opnsense/service/templates/OPNsense/Collectd/collectd.conf
@@ -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
- LogLevel err
+ LogLevel err
{% 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 != '' %}
-
+
{% 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 %}
-
+
{% 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
@@ -113,4 +122,28 @@ LoadPlugin write_graphite
{% endif %}
{% endif %}
+
+{% if helpers.exists('OPNsense.collectd.general.p_cpu_percent') and OPNsense.collectd.general.p_cpu_percent == '1' %}
+ ValuesPercentage true
+{% else %}
+ ValuesPercentage false
+{% endif %}
+
+
+{% if helpers.exists('OPNsense.collectd.general.p_cpu_aggregates') and OPNsense.collectd.general.p_cpu_aggregates == '1' %}
+
+
+ Plugin "cpu"
+ Type "percent"
+ GroupBy "Host"
+ GroupBy "TypeInstance"
+ CalculateNum false
+ CalculateSum true
+ CalculateAverage true
+ CalculateMinimum false
+ CalculateMaximum false
+ CalculateStddev false
+
+
+{% endif %}
{% endif %}