virt plugin: Do not report 'domain_state' metric when not enabled by ExtraStats
authorPavel Rochnyack <pavel2000@ngs.ru>
Sun, 12 May 2019 08:53:08 +0000 (15:53 +0700)
committerPavel Rochnyack <pavel2000@ngs.ru>
Sun, 12 May 2019 09:23:27 +0000 (16:23 +0700)
PR #2701 adds 'domain_state' metric and ExtraStats's option `domain_state`
selector behaviour was changed: now it enables metric, not notification.
Removed inconsistency between documentation and implementation.

Not all `get_domain_state` calls was covered by selector check.
As result, metric was always sent for inactive domains.
That is fixed now.

src/collectd.conf.pod
src/virt.c

index fb0751a..800c0d2 100644 (file)
@@ -9466,9 +9466,7 @@ I<0.9.5> or later.
 =item B<disk_err>: report disk errors if any occured. Requires libvirt API version
 I<0.9.10> or later.
 
-=item B<domain_state>: report domain state and reason in human-readable format as
-a notification. If libvirt API version I<0.9.2> or later is available, domain
-reason will be included in notification.
+=item B<domain_state>: report domain state and reason as 'domain_state' metric.
 
 =item B<fs_info>: report file system information as a notification. Requires
 libvirt API version I<1.2.11> or later. Can be collected only if I<Guest Agent>
index 58bacab..1267dbc 100644 (file)
@@ -2297,7 +2297,7 @@ static int lv_read(user_data_t *ud) {
     if (dom->active)
       status = get_domain_metrics(dom);
 #ifdef HAVE_DOM_REASON
-    else
+    else if (extra_stats & ex_stats_domain_state)
       status = submit_domain_state(dom->ptr);
 #endif