Merge pull request #2096 from eeff/v2.7

Pick to v2.7 feat(core): add `interval` field to struct neu_plugin_group
This commit is contained in:
fengzeroz
2024-06-13 15:25:21 +08:00
committed by GitHub
2 changed files with 7 additions and 1 deletions
+1
View File
@@ -69,6 +69,7 @@ struct neu_plugin_group {
void * user_data;
neu_plugin_group_free group_free;
uint32_t interval;
};
typedef int (*neu_plugin_tag_validator_t)(const neu_datatag_t *tag);
+6 -1
View File
@@ -1081,6 +1081,7 @@ int neu_adapter_driver_add_group(neu_adapter_driver_t *driver, const char *name,
find->name = strdup(name);
find->group = neu_group_new(name, interval);
find->grp.group_name = strdup(name);
find->grp.interval = interval;
neu_group_split_static_tags(find->group, &find->static_tags,
&find->grp.tags);
@@ -1130,6 +1131,8 @@ int neu_adapter_driver_update_group(neu_adapter_driver_t *driver,
return NEU_ERR_GROUP_EXIST;
}
}
} else if (neu_group_get_interval(find->group) == interval) {
return 0; // no change
}
// stop the timer first to avoid race condition
@@ -1155,7 +1158,6 @@ int neu_adapter_driver_update_group(neu_adapter_driver_t *driver,
find->grp.group_name = new_name_cp2;
neu_adapter_metric_update_group_name((neu_adapter_t *) driver, name,
new_name);
find->timestamp = global_timestamp; // trigger group_change
HASH_ADD_STR(driver->groups, name, find);
} else {
free(new_name_cp1);
@@ -1164,6 +1166,8 @@ int neu_adapter_driver_update_group(neu_adapter_driver_t *driver,
}
}
find->timestamp = global_timestamp; // trigger group_change
find->grp.interval = interval;
neu_group_set_interval(find->group, interval);
// restore the timers
@@ -1734,6 +1738,7 @@ static void group_change(void *arg, int64_t timestamp, UT_array *static_tags,
neu_plugin_group_t grp = {
.group_name = strdup(group->name),
.interval = neu_group_get_interval(group->group),
.tags = NULL,
.group_free = NULL,
.user_data = NULL,