X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fvirt.c;h=81bf18f8e0c2728aba6e3aa065d239b64f486aec;hb=a72ad42076337f3b85db3b06565ae86a83226ab3;hp=d3d8c6a72823d1c5cf023a9d484ee00cbb7bd54f;hpb=abaa1c8a24e8eff5632dd6052b1da5f6535caf19;p=collectd.git diff --git a/src/virt.c b/src/virt.c index d3d8c6a7..81bf18f8 100644 --- a/src/virt.c +++ b/src/virt.c @@ -1027,7 +1027,7 @@ static void disk_block_stats_submit(struct lv_block_stats *bstats, char flush_type_instance[DATA_MAX_NAME_LEN]; ssnprintf(flush_type_instance, sizeof(flush_type_instance), "flush-%s", - type_instance); + type_instance); if ((bstats->bi.rd_req != -1) && (bstats->bi.wr_req != -1)) submit_derive2("disk_ops", (derive_t)bstats->bi.rd_req, @@ -1131,7 +1131,7 @@ static void domain_state_submit_notif(virDomainPtr dom, int state, int reason) { #endif ssnprintf(msg, sizeof(msg), "Domain state: %s. Reason: %s", state_str, - reason_str); + reason_str); int severity; switch (state) { @@ -1578,7 +1578,8 @@ static void vcpu_pin_submit(virDomainPtr dom, int max_cpus, int vcpu, char type_instance[DATA_MAX_NAME_LEN]; bool is_set = VIR_CPU_USABLE(cpu_maps, cpu_map_len, vcpu, cpu); - ssnprintf(type_instance, sizeof(type_instance), "vcpu_%d-cpu_%d", vcpu, cpu); + ssnprintf(type_instance, sizeof(type_instance), "vcpu_%d-cpu_%d", vcpu, + cpu); submit(dom, "cpu_affinity", type_instance, &(value_t){.gauge = is_set}, 1); } } @@ -1665,16 +1666,7 @@ static int get_pcpu_stats(virDomainPtr dom) { #endif /* HAVE_CPU_STATS */ #ifdef HAVE_DOM_REASON - -static void domain_state_submit(virDomainPtr dom, int state, int reason) { - value_t values[] = { - {.gauge = (gauge_t)state}, {.gauge = (gauge_t)reason}, - }; - - submit(dom, "domain_state", NULL, values, STATIC_ARRAY_SIZE(values)); -} - -static int get_domain_state(virDomainPtr domain) { +static int submit_domain_state(virDomainPtr domain) { int domain_state = 0; int domain_reason = 0; @@ -1685,9 +1677,13 @@ static int get_domain_state(virDomainPtr domain) { return status; } - domain_state_submit(domain, domain_state, domain_reason); + value_t values[] = { + {.gauge = (gauge_t)domain_state}, {.gauge = (gauge_t)domain_reason}, + }; + + submit(domain, "domain_state", NULL, values, STATIC_ARRAY_SIZE(values)); - return status; + return 0; } #ifdef HAVE_LIST_ALL_DOMAINS @@ -1702,8 +1698,7 @@ static int get_domain_state_notify(virDomainPtr domain) { return status; } - if (persistent_notification) - domain_state_submit_notif(domain, domain_state, domain_reason); + domain_state_submit_notif(domain, domain_state, domain_reason); return status; } @@ -1737,9 +1732,9 @@ static int get_memory_stats(virDomainPtr domain) { swap_in = minfo[i].val; else if (minfo[i].tag == VIR_DOMAIN_MEMORY_STAT_SWAP_OUT) swap_out = minfo[i].val; - else if (minfo[i].tag == VIR_DOMAIN_MEMORY_STAT_MAJOR_FAULT) - min_flt = minfo[i].val; else if (minfo[i].tag == VIR_DOMAIN_MEMORY_STAT_MINOR_FAULT) + min_flt = minfo[i].val; + else if (minfo[i].tag == VIR_DOMAIN_MEMORY_STAT_MAJOR_FAULT) maj_flt = minfo[i].val; #ifdef LIBVIR_CHECK_VERSION #if LIBVIR_CHECK_VERSION(2, 1, 0) @@ -2007,7 +2002,7 @@ static int get_domain_metrics(domain_t *domain) { * however it doesn't provide a reason for entering particular state. * We need to get it from virDomainGetState. */ - GET_STATS(get_domain_state, "domain reason", domain->ptr); + GET_STATS(submit_domain_state, "domain reason", domain->ptr); #endif } @@ -2363,8 +2358,8 @@ static int lv_read(user_data_t *ud) { if (dom->active) status = get_domain_metrics(dom); #ifdef HAVE_DOM_REASON - else - status = get_domain_state(dom->ptr); + else if (extra_stats & ex_stats_domain_state) + status = submit_domain_state(dom->ptr); #endif if (status != 0) @@ -2473,7 +2468,7 @@ static int lv_domain_get_tag(xmlXPathContextPtr xpath_ctx, const char *dom_name, } ssnprintf(xpath_str, sizeof(xpath_str), "/domain/metadata/%s:%s/text()", - METADATA_VM_PARTITION_PREFIX, METADATA_VM_PARTITION_ELEMENT); + METADATA_VM_PARTITION_PREFIX, METADATA_VM_PARTITION_ELEMENT); xpath_obj = xmlXPathEvalExpression((xmlChar *)xpath_str, xpath_ctx); if (xpath_obj == NULL) { ERROR(PLUGIN_NAME " plugin: xmlXPathEval(%s) failed on domain %s",