Merge branch 'collectd-4.10' into collectd-5.0
[collectd.git] / src / libvirt.c
index 5d9d84b..774067c 100644 (file)
@@ -138,16 +138,12 @@ init_value_list (value_list_t *vl, virDomainPtr dom)
     int i, n;
     const char *name;
     char uuid[VIR_UUID_STRING_BUFLEN];
-    char  *host_ptr;
-    size_t host_len;
 
     vl->interval = interval_g;
 
     sstrncpy (vl->plugin, "libvirt", sizeof (vl->plugin));
 
     vl->host[0] = '\0';
-    host_ptr = vl->host;
-    host_len = sizeof (vl->host);
 
     /* Construct the hostname field according to HostnameFormat. */
     for (i = 0; i < HF_MAX_FIELDS; ++i) {
@@ -190,7 +186,7 @@ cpu_submit (unsigned long long cpu_time,
 
     init_value_list (&vl, dom);
 
-    values[0].counter = cpu_time;
+    values[0].derive = cpu_time;
 
     vl.values = values;
     vl.values_len = 1;
@@ -201,7 +197,7 @@ cpu_submit (unsigned long long cpu_time,
 }
 
 static void
-vcpu_submit (counter_t cpu_time,
+vcpu_submit (derive_t cpu_time,
              virDomainPtr dom, int vcpu_nr, const char *type)
 {
     value_t values[1];
@@ -209,7 +205,7 @@ vcpu_submit (counter_t cpu_time,
 
     init_value_list (&vl, dom);
 
-    values[0].counter = cpu_time;
+    values[0].derive = cpu_time;
     vl.values = values;
     vl.values_len = 1;
 
@@ -220,7 +216,7 @@ vcpu_submit (counter_t cpu_time,
 }
 
 static void
-submit_counter2 (const char *type, counter_t v0, counter_t v1,
+submit_derive2 (const char *type, derive_t v0, derive_t v1,
              virDomainPtr dom, const char *devname)
 {
     value_t values[2];
@@ -228,8 +224,8 @@ submit_counter2 (const char *type, counter_t v0, counter_t v1,
 
     init_value_list (&vl, dom);
 
-    values[0].counter = v0;
-    values[1].counter = v1;
+    values[0].derive = v0;
+    values[1].derive = v1;
     vl.values = values;
     vl.values_len = 2;
 
@@ -237,7 +233,7 @@ submit_counter2 (const char *type, counter_t v0, counter_t v1,
     sstrncpy (vl.type_instance, devname, sizeof (vl.type_instance));
 
     plugin_dispatch_values (&vl);
-} /* void submit_counter2 */
+} /* void submit_derive2 */
 
 static int
 lv_init (void)
@@ -413,22 +409,32 @@ lv_read (void)
     for (i = 0; i < nr_domains; ++i) {
         virDomainInfo info;
         virVcpuInfoPtr vinfo = NULL;
+        int status;
         int j;
 
-        if (virDomainGetInfo (domains[i], &info) != 0)
+        status = virDomainGetInfo (domains[i], &info);
+        if (status != 0)
+        {
+            ERROR ("libvirt plugin: virDomainGetInfo failed with status %i.",
+                    status);
             continue;
+        }
 
         cpu_submit (info.cpuTime, domains[i], "virt_cpu_total");
 
-        vinfo = malloc (info.nrVirtCpu * sizeof vinfo[0]);
+        vinfo = malloc (info.nrVirtCpu * sizeof (vinfo[0]));
         if (vinfo == NULL) {
             ERROR ("libvirt plugin: malloc failed.");
             continue;
         }
 
-        if (virDomainGetVcpus (domains[i], vinfo, info.nrVirtCpu,
-                    NULL, 0) != 0) {
-            sfree (vinfo);
+        status = virDomainGetVcpus (domains[i], vinfo, info.nrVirtCpu,
+                /* cpu map = */ NULL, /* cpu map length = */ 0);
+        if (status < 0)
+        {
+            ERROR ("libvirt plugin: virDomainGetVcpus failed with status %i.",
+                    status);
+            free (vinfo);
             continue;
         }
 
@@ -448,13 +454,13 @@ lv_read (void)
             continue;
 
         if ((stats.rd_req != -1) && (stats.wr_req != -1))
-            submit_counter2 ("disk_ops",
-                    (counter_t) stats.rd_req, (counter_t) stats.wr_req,
+            submit_derive2 ("disk_ops",
+                    (derive_t) stats.rd_req, (derive_t) stats.wr_req,
                     block_devices[i].dom, block_devices[i].path);
 
         if ((stats.rd_bytes != -1) && (stats.wr_bytes != -1))
-            submit_counter2 ("disk_octets",
-                    (counter_t) stats.rd_bytes, (counter_t) stats.wr_bytes,
+            submit_derive2 ("disk_octets",
+                    (derive_t) stats.rd_bytes, (derive_t) stats.wr_bytes,
                     block_devices[i].dom, block_devices[i].path);
     } /* for (nr_block_devices) */
 
@@ -472,23 +478,23 @@ lv_read (void)
             continue;
 
        if ((stats.rx_bytes != -1) && (stats.tx_bytes != -1))
-           submit_counter2 ("if_octets",
-                   (counter_t) stats.rx_bytes, (counter_t) stats.tx_bytes,
+           submit_derive2 ("if_octets",
+                   (derive_t) stats.rx_bytes, (derive_t) stats.tx_bytes,
                    interface_devices[i].dom, display_name);
 
        if ((stats.rx_packets != -1) && (stats.tx_packets != -1))
-           submit_counter2 ("if_packets",
-                   (counter_t) stats.rx_packets, (counter_t) stats.tx_packets,
+           submit_derive2 ("if_packets",
+                   (derive_t) stats.rx_packets, (derive_t) stats.tx_packets,
                    interface_devices[i].dom, display_name);
 
        if ((stats.rx_errs != -1) && (stats.tx_errs != -1))
-           submit_counter2 ("if_errors",
-                   (counter_t) stats.rx_errs, (counter_t) stats.tx_errs,
+           submit_derive2 ("if_errors",
+                   (derive_t) stats.rx_errs, (derive_t) stats.tx_errs,
                    interface_devices[i].dom, display_name);
 
        if ((stats.rx_drop != -1) && (stats.tx_drop != -1))
-           submit_counter2 ("if_dropped",
-                   (counter_t) stats.rx_drop, (counter_t) stats.tx_drop,
+           submit_derive2 ("if_dropped",
+                   (derive_t) stats.rx_drop, (derive_t) stats.tx_drop,
                    interface_devices[i].dom, display_name);
     } /* for (nr_interface_devices) */