]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
value_list: Simplify the control flow when setting metric labels. 4197/head
authorFlorian Forster <octo@collectd.org>
Tue, 19 Dec 2023 22:35:00 +0000 (23:35 +0100)
committerFlorian Forster <octo@collectd.org>
Tue, 19 Dec 2023 22:35:00 +0000 (23:35 +0100)
src/utils/value_list/value_list.c

index a585cbc8a9c8b7ae45183bddf71e19d8acfcc7a4..2ca6692e3f34431a78bce4265992ed114b09594b 100644 (file)
@@ -420,17 +420,16 @@ plugin_value_list_to_metric_family(value_list_t const *vl, data_set_t const *ds,
     status = status || metric_label_set(&m, "direction", ds->ds[index].name);
   }
 
-  if (strlen(vl->plugin_instance) != 0) {
+  bool have_plugin_instance = strlen(vl->plugin_instance) != 0;
+  bool have_type_instance = strlen(vl->type_instance) != 0;
+  if (have_plugin_instance && have_type_instance) {
     status = status || metric_label_set(&m, vl->plugin, vl->plugin_instance);
-  }
-  if (strlen(vl->type_instance) != 0) {
-    char const *name = "type";
-    if (strlen(vl->plugin_instance) == 0) {
-      name = vl->plugin;
-    }
-    status = status || metric_label_set(&m, name, vl->type_instance);
-  }
-  if (strlen(vl->plugin_instance) == 0 && strlen(vl->type_instance) == 0) {
+    status = status || metric_label_set(&m, "type", vl->type_instance);
+  } else if (have_plugin_instance && !have_type_instance) {
+    status = status || metric_label_set(&m, vl->plugin, vl->plugin_instance);
+  } else if (!have_plugin_instance && have_type_instance) {
+    status = status || metric_label_set(&m, vl->plugin, vl->type_instance);
+  } else if (!have_plugin_instance && !have_type_instance) {
     status = status || metric_label_set(&m, "plugin", vl->plugin);
   }