From 3f6a75250d8251b0142248ed2f33f7d857ee21c8 Mon Sep 17 00:00:00 2001 From: Costa Tsaousis Date: Wed, 7 Sep 2022 15:28:30 +0300 Subject: Obsolete RRDSET state (#13635) * move chart_labels to rrdset * rename chart_labels to rrdlabels * renamed hash_id to uuid * turned is_ar_chart into an rrdset flag * removed rrdset state * removed unused senders_connected member of rrdhost * removed unused host flag RRDHOST_FLAG_MULTIHOST * renamed rrdhost host_labels to rrdlabels * Update exporting unit tests Co-authored-by: Vladimir Kobal --- database/rrd.h | 31 ++++++++++++++----------------- database/rrdcalc.c | 10 +++++----- database/rrdcalctemplate.c | 2 +- database/rrdcontext.c | 16 ++++++++-------- database/rrddim.c | 4 ++-- database/rrdhost.c | 18 +++++++++--------- database/rrdlabels.c | 8 ++++---- database/rrdset.c | 21 ++++++++++----------- database/sqlite/sqlite_aclk.c | 2 +- database/sqlite/sqlite_aclk_chart.c | 6 +++--- database/sqlite/sqlite_aclk_node.c | 2 +- database/sqlite/sqlite_functions.c | 4 ++-- 12 files changed, 60 insertions(+), 64 deletions(-) (limited to 'database') diff --git a/database/rrd.h b/database/rrd.h index 4c3b13dfb1..f473e308ac 100644 --- a/database/rrd.h +++ b/database/rrd.h @@ -444,14 +444,6 @@ struct rrddim_tier { extern void rrdr_fill_tier_gap_from_smaller_tiers(RRDDIM *rd, int tier, time_t now); -// ---------------------------------------------------------------------------- -// volatile state per chart -struct rrdset_volatile { - uuid_t hash_id; - DICTIONARY *chart_labels; - bool is_ar_chart; -}; - // ---------------------------------------------------------------------------- // these loop macros make sure the linked list is accessed with the right lock @@ -491,15 +483,21 @@ typedef enum rrdset_flags { RRDSET_FLAG_ACLK = (1 << 16), RRDSET_FLAG_PENDING_FOREACH_ALARMS = (1 << 17), // contains dims with uninitialized foreach alarms RRDSET_FLAG_ANOMALY_DETECTION = (1 << 18), // flag to identify anomaly detection charts. - RRDSET_FLAG_INDEXED_ID = (1 << 19), - RRDSET_FLAG_INDEXED_NAME = (1 << 20), + RRDSET_FLAG_INDEXED_ID = (1 << 19), // the rrdset is indexed by its id + RRDSET_FLAG_INDEXED_NAME = (1 << 20), // the rrdset is indexed by its name + + RRDSET_FLAG_ANOMALY_RATE_CHART = (1 << 21), // the rrdset is for storing anomaly rates for all dimensions } RRDSET_FLAGS; #define rrdset_flag_check(st, flag) (__atomic_load_n(&((st)->flags), __ATOMIC_SEQ_CST) & (flag)) #define rrdset_flag_set(st, flag) __atomic_or_fetch(&((st)->flags), flag, __ATOMIC_SEQ_CST) #define rrdset_flag_clear(st, flag) __atomic_and_fetch(&((st)->flags), ~(flag), __ATOMIC_SEQ_CST) +#define rrdset_is_ar_chart(st) rrdset_flag_check(st, RRDSET_FLAG_ANOMALY_RATE_CHART) + struct rrdset { + uuid_t uuid; + // ------------------------------------------------------------------------ // the set configuration @@ -550,8 +548,6 @@ struct rrdset { uuid_t *chart_uuid; // Store the global GUID for this chart // this object. - struct rrdset_volatile *state; // volatile state that is not persistently stored - size_t rrddim_page_alignment; // keeps metric pages in alignment when using dbengine usec_t usec_since_last_update; // the time in microseconds since the last collection of data @@ -584,6 +580,11 @@ struct rrdset { unsigned long memsize; // how much mem we have allocated for this (without dimensions) void *st_on_file; // compatibility with V019 RRDSET files + // ------------------------------------------------------------------------ + // chart labels + + DICTIONARY *rrdlabels; + // ------------------------------------------------------------------------ // the dimensions @@ -638,7 +639,6 @@ typedef enum rrdhost_flags { RRDHOST_FLAG_EXPORTING_SEND = (1 << 3), // send it to external databases RRDHOST_FLAG_EXPORTING_DONT_SEND = (1 << 4), // don't send it to external databases RRDHOST_FLAG_ARCHIVED = (1 << 5), // The host is archived, no collected charts yet - RRDHOST_FLAG_MULTIHOST = (1 << 6), // Host belongs to localhost/megadb RRDHOST_FLAG_PENDING_FOREACH_ALARMS = (1 << 7), // contains dims with uninitialized foreach alarms RRDHOST_FLAG_STREAM_LABELS_UPDATE = (1 << 8), RRDHOST_FLAG_STREAM_LABELS_STOP = (1 << 9), @@ -842,9 +842,6 @@ struct rrdhost { // ------------------------------------------------------------------------ // streaming of data from remote hosts - rrdpush - volatile size_t connected_senders; // when remote hosts are streaming to this - // host, this is the counter of connected clients - time_t senders_connect_time; // the time the last sender was connected time_t senders_last_chart_command; // the time of the last CHART streaming command time_t senders_disconnected_time; // the time the last sender was disconnected @@ -903,7 +900,7 @@ struct rrdhost { // ------------------------------------------------------------------------ // Support for host-level labels - DICTIONARY *host_labels; + DICTIONARY *rrdlabels; // ------------------------------------------------------------------------ // indexes diff --git a/database/rrdcalc.c b/database/rrdcalc.c index 808e74952a..83dd527325 100644 --- a/database/rrdcalc.c +++ b/database/rrdcalc.c @@ -67,8 +67,8 @@ static STRING *rrdcalc_replace_variables(const char *line, RRDCALC *rc) { temp = buf; } else if (!strncmp(var, RRDCALC_VAR_LABEL, RRDCALC_VAR_LABEL_LEN)) { - if(likely(rc->rrdset && rc->rrdset->state && rc->rrdset->state->chart_labels)) { - rrdlabels_get_value_to_char_or_null(rc->rrdset->state->chart_labels, &lbl_value, var+RRDCALC_VAR_LABEL_LEN); + if(likely(rc->rrdset && rc->rrdset->rrdlabels)) { + rrdlabels_get_value_to_char_or_null(rc->rrdset->rrdlabels, &lbl_value, var+RRDCALC_VAR_LABEL_LEN); if (lbl_value) { char *buf = find_and_replace(temp, var, lbl_value, m); freez(temp); @@ -191,7 +191,7 @@ static inline int rrdcalc_is_matching_rrdset(RRDCALC *rc, RRDSET *st) { if (rc->plugin_pattern && !simple_pattern_matches(rc->plugin_pattern, rrdset_plugin_name(st))) return 0; - if (st->rrdhost->host_labels && rc->host_labels_pattern && !rrdlabels_match_simple_pattern_parsed(st->rrdhost->host_labels, rc->host_labels_pattern, '=')) + if (st->rrdhost->rrdlabels && rc->host_labels_pattern && !rrdlabels_match_simple_pattern_parsed(st->rrdhost->rrdlabels, rc->host_labels_pattern, '=')) return 0; return 1; @@ -672,7 +672,7 @@ static void rrdcalc_labels_unlink_alarm_loop(RRDHOST *host, RRDCALC *alarms) { continue; } - if(!rrdlabels_match_simple_pattern_parsed(host->host_labels, rc->host_labels_pattern, '=')) { + if(!rrdlabels_match_simple_pattern_parsed(host->rrdlabels, rc->host_labels_pattern, '=')) { info("Health configuration for alarm '%s' cannot be applied, because the host %s does not have the label(s) '%s'", rrdcalc_name(rc), rrdhost_hostname(host), @@ -700,7 +700,7 @@ void rrdcalc_labels_unlink() { if (unlikely(!host->health_enabled)) continue; - if (host->host_labels) { + if (host->rrdlabels) { rrdhost_wrlock(host); rrdcalc_labels_unlink_alarm_from_host(host); diff --git a/database/rrdcalctemplate.c b/database/rrdcalctemplate.c index 4ba96082ac..0db76d6c04 100644 --- a/database/rrdcalctemplate.c +++ b/database/rrdcalctemplate.c @@ -27,7 +27,7 @@ void rrdcalctemplate_check_conditions_and_link(RRDCALCTEMPLATE *rt, RRDSET *st, if (rt->plugin_pattern && !simple_pattern_matches(rt->plugin_pattern, rrdset_plugin_name(st))) return; - if(host->host_labels && rt->host_labels_pattern && !rrdlabels_match_simple_pattern_parsed(host->host_labels, rt->host_labels_pattern, '=')) + if(host->rrdlabels && rt->host_labels_pattern && !rrdlabels_match_simple_pattern_parsed(host->rrdlabels, rt->host_labels_pattern, '=')) return; RRDCALC *rc = rrdcalc_create_from_template(host, rt, rrdset_id(st)); diff --git a/database/rrdcontext.c b/database/rrdcontext.c index dcf8b94e22..8a560b03a0 100644 --- a/database/rrdcontext.c +++ b/database/rrdcontext.c @@ -268,7 +268,7 @@ typedef struct rrdinstance { int update_every; // data collection frequency RRDSET *rrdset; // pointer to RRDSET when collected, or NULL - DICTIONARY *rrdlabels; // linked to RRDSET->state->chart_labels or own version + DICTIONARY *rrdlabels; // linked to RRDSET->chart_labels or own version struct rrdcontext *rc; DICTIONARY *rrdmetrics; @@ -705,8 +705,8 @@ static void rrdinstance_insert_callback(const char *id __maybe_unused, void *val if(!ri->name) ri->name = string_dup(ri->id); - if(ri->rrdset && ri->rrdset->state) { - ri->rrdlabels = ri->rrdset->state->chart_labels; + if(ri->rrdset) { + ri->rrdlabels = ri->rrdset->rrdlabels; ri->flags &= ~RRD_FLAG_OWN_LABELS; // no need of atomics at the constructor } else { @@ -715,7 +715,7 @@ static void rrdinstance_insert_callback(const char *id __maybe_unused, void *val } if(ri->rrdset) { - if(unlikely((rrdset_flag_check(ri->rrdset, RRDSET_FLAG_HIDDEN)) || (ri->rrdset->state && ri->rrdset->state->is_ar_chart))) + if(unlikely((rrdset_flag_check(ri->rrdset, RRDSET_FLAG_HIDDEN)) || rrdset_is_ar_chart(ri->rrdset))) ri->flags |= RRD_FLAG_HIDDEN; // no need of atomics at the constructor else ri->flags &= ~RRD_FLAG_HIDDEN; // no need of atomics at the constructor @@ -814,7 +814,7 @@ static void rrdinstance_conflict_callback(const char *id __maybe_unused, void *o if(ri->rrdset && rrd_flag_check(ri, RRD_FLAG_OWN_LABELS)) { DICTIONARY *old = ri->rrdlabels; - ri->rrdlabels = ri->rrdset->state->chart_labels; + ri->rrdlabels = ri->rrdset->rrdlabels; rrd_flag_clear(ri, RRD_FLAG_OWN_LABELS); rrdlabels_destroy(old); } @@ -825,7 +825,7 @@ static void rrdinstance_conflict_callback(const char *id __maybe_unused, void *o } if(ri->rrdset) { - if(unlikely((rrdset_flag_check(ri->rrdset, RRDSET_FLAG_HIDDEN)) || (ri->rrdset->state && ri->rrdset->state->is_ar_chart))) + if(unlikely((rrdset_flag_check(ri->rrdset, RRDSET_FLAG_HIDDEN)) || rrdset_is_ar_chart(ri->rrdset))) rrd_flag_set(ri, RRD_FLAG_HIDDEN); else rrd_flag_clear(ri, RRD_FLAG_HIDDEN); @@ -1034,7 +1034,7 @@ static inline void rrdinstance_rrdset_is_freed(RRDSET *st) { if(!rrd_flag_check(ri, RRD_FLAG_OWN_LABELS)) { ri->rrdlabels = rrdlabels_create(); - rrdlabels_copy(ri->rrdlabels, st->state->chart_labels); + rrdlabels_copy(ri->rrdlabels, st->rrdlabels); rrd_flag_set(ri, RRD_FLAG_OWN_LABELS); } @@ -1995,7 +1995,7 @@ int rrdcontexts_to_json(RRDHOST *host, BUFFER *wb, time_t after, time_t before, if(options & RRDCONTEXT_OPTION_SHOW_LABELS) { buffer_sprintf(wb, ",\n\t\"host_labels\": {\n"); - rrdlabels_to_buffer(host->host_labels, wb, "\t\t", ":", "\"", ",\n", NULL, NULL, NULL, NULL); + rrdlabels_to_buffer(host->rrdlabels, wb, "\t\t", ":", "\"", ",\n", NULL, NULL, NULL, NULL); buffer_strcat(wb, "\n\t}"); } diff --git a/database/rrddim.c b/database/rrddim.c index 73b83684ce..b1ebeed49a 100644 --- a/database/rrddim.c +++ b/database/rrddim.c @@ -64,7 +64,7 @@ inline int rrddim_set_name(RRDSET *st, RRDDIM *rd, const char *name) { string_freez(rd->name); rd->name = rrd_string_strdupz(name); - if (!st->state->is_ar_chart) + if (!rrdset_is_ar_chart(st)) rrddimvar_rename_all(rd); rd->exposed = 0; @@ -340,7 +340,7 @@ RRDDIM *rrddim_add_custom(RRDSET *st // append this dimension DOUBLE_LINKED_LIST_APPEND_UNSAFE(st->dimensions, rd, prev, next); - if(host->health_enabled && !st->state->is_ar_chart) { + if(host->health_enabled && !rrdset_is_ar_chart(st)) { rrddimvar_create(rd, RRDVAR_TYPE_CALCULATED, NULL, NULL, &rd->last_stored_value, RRDVAR_OPTION_DEFAULT); rrddimvar_create(rd, RRDVAR_TYPE_COLLECTED, NULL, "_raw", &rd->last_collected_value, RRDVAR_OPTION_DEFAULT); rrddimvar_create(rd, RRDVAR_TYPE_TIME_T, NULL, "_last_collected_t", &rd->last_collected_time.tv_sec, RRDVAR_OPTION_DEFAULT); diff --git a/database/rrdhost.c b/database/rrdhost.c index fe765ca90f..8689380dce 100644 --- a/database/rrdhost.c +++ b/database/rrdhost.c @@ -274,7 +274,7 @@ RRDHOST *rrdhost_create(const char *hostname, #endif netdata_rwlock_init(&host->rrdhost_rwlock); - host->host_labels = rrdlabels_create(); + host->rrdlabels = rrdlabels_create(); netdata_mutex_init(&host->aclk_state_lock); @@ -1182,7 +1182,7 @@ void rrdhost_free(RRDHOST *host, bool force) { freez(host->aclk_state.claimed_id); freez(host->aclk_state.prev_claimed_id); string_freez(host->tags); - rrdlabels_destroy(host->host_labels); + rrdlabels_destroy(host->rrdlabels); string_freez(host->os); string_freez(host->timezone); string_freez(host->abbrev_timezone); @@ -1262,7 +1262,7 @@ void rrdhost_save_charts(RRDHOST *host) { } static void rrdhost_load_auto_labels(void) { - DICTIONARY *labels = localhost->host_labels; + DICTIONARY *labels = localhost->rrdlabels; if (localhost->system_info->cloud_provider_type) rrdlabels_add(labels, "_cloud_provider_type", localhost->system_info->cloud_provider_type, RRDLABEL_SRC_AUTO); @@ -1343,7 +1343,7 @@ static void rrdhost_load_config_labels(void) { config_section_wrlock(co); struct config_option *cv; for(cv = co->values; cv ; cv = cv->next) { - rrdlabels_add(localhost->host_labels, cv->name, cv->value, RRDLABEL_SRC_CONFIG); + rrdlabels_add(localhost->rrdlabels, cv->name, cv->value, RRDLABEL_SRC_CONFIG); cv->flags |= CONFIG_VALUE_USED; } config_section_unlock(co); @@ -1367,7 +1367,7 @@ static void rrdhost_load_kubernetes_labels(void) { char buffer[1000 + 1]; while (fgets(buffer, 1000, fp) != NULL) - rrdlabels_add_pair(localhost->host_labels, buffer, RRDLABEL_SRC_AUTO|RRDLABEL_SRC_K8S); + rrdlabels_add_pair(localhost->rrdlabels, buffer, RRDLABEL_SRC_AUTO|RRDLABEL_SRC_K8S); // Non-zero exit code means that all the script output is error messages. We've shown already any message that didn't include a ':' // Here we'll inform with an ERROR that the script failed, show whatever (if anything) was added to the list of labels, free the memory and set the return to null @@ -1376,17 +1376,17 @@ static void rrdhost_load_kubernetes_labels(void) { } void reload_host_labels(void) { - if(!localhost->host_labels) - localhost->host_labels = rrdlabels_create(); + if(!localhost->rrdlabels) + localhost->rrdlabels = rrdlabels_create(); - rrdlabels_unmark_all(localhost->host_labels); + rrdlabels_unmark_all(localhost->rrdlabels); // priority is important here rrdhost_load_config_labels(); rrdhost_load_kubernetes_labels(); rrdhost_load_auto_labels(); - rrdlabels_remove_all_unmarked(localhost->host_labels); + rrdlabels_remove_all_unmarked(localhost->rrdlabels); sql_store_host_labels(localhost); health_label_log_save(localhost); diff --git a/database/rrdlabels.c b/database/rrdlabels.c index 52c88e5083..6ab1ea66b4 100644 --- a/database/rrdlabels.c +++ b/database/rrdlabels.c @@ -955,11 +955,11 @@ static int chart_label_store_to_sql_callback(const char *name, const char *value } void rrdset_update_rrdlabels(RRDSET *st, DICTIONARY *new_rrdlabels) { - if(!st->state->chart_labels) - st->state->chart_labels = rrdlabels_create(); + if(!st->rrdlabels) + st->rrdlabels = rrdlabels_create(); if (new_rrdlabels) - rrdlabels_migrate_to_these(st->state->chart_labels, new_rrdlabels); + rrdlabels_migrate_to_these(st->rrdlabels, new_rrdlabels); rrdcalc_update_rrdlabels(st); @@ -967,7 +967,7 @@ void rrdset_update_rrdlabels(RRDSET *st, DICTIONARY *new_rrdlabels) { BUFFER *sql_buf = buffer_create(1024); struct label_str tmp = {.sql = sql_buf, .count = 0 }; uuid_unparse_lower(*st->chart_uuid, tmp.uuid_str); - rrdlabels_walkthrough_read(st->state->chart_labels, chart_label_store_to_sql_callback, &tmp); + rrdlabels_walkthrough_read(st->rrdlabels, chart_label_store_to_sql_callback, &tmp); db_execute(buffer_tostring(sql_buf)); buffer_free(sql_buf); } diff --git a/database/rrdset.c b/database/rrdset.c index 93ea76cc64..d0165f0af1 100644 --- a/database/rrdset.c +++ b/database/rrdset.c @@ -373,7 +373,7 @@ void rrdset_free(RRDSET *st) { netdata_rwlock_destroy(&st->rrdset_rwlock); rrdset_memory_file_free(st); - rrdlabels_destroy(st->state->chart_labels); + rrdlabels_destroy(st->rrdlabels); // free directly allocated members @@ -391,7 +391,6 @@ void rrdset_free(RRDSET *st) { string_freez(st->module_name); freez(st->cache_dir); - freez(st->state); freez(st->chart_uuid); freez(st); @@ -469,11 +468,11 @@ static inline RRDSET *rrdset_find_on_create(RRDHOST *host, const char *fullid) { } static inline void rrdset_update_permanent_labels(RRDSET *st) { - if(!st->state || !st->state->chart_labels) return; + if(!st->rrdlabels) return; - rrdlabels_add(st->state->chart_labels, "_collect_plugin", rrdset_plugin_name(st), RRDLABEL_SRC_AUTO| RRDLABEL_FLAG_PERMANENT); - rrdlabels_add(st->state->chart_labels, "_collect_module", rrdset_module_name(st), RRDLABEL_SRC_AUTO| RRDLABEL_FLAG_PERMANENT); - rrdlabels_add(st->state->chart_labels, "_instance_family",rrdset_family(st), RRDLABEL_SRC_AUTO| RRDLABEL_FLAG_PERMANENT); + rrdlabels_add(st->rrdlabels, "_collect_plugin", rrdset_plugin_name(st), RRDLABEL_SRC_AUTO| RRDLABEL_FLAG_PERMANENT); + rrdlabels_add(st->rrdlabels, "_collect_module", rrdset_module_name(st), RRDLABEL_SRC_AUTO| RRDLABEL_FLAG_PERMANENT); + rrdlabels_add(st->rrdlabels, "_instance_family",rrdset_family(st), RRDLABEL_SRC_AUTO| RRDLABEL_FLAG_PERMANENT); } RRDSET *rrdset_create_custom( @@ -667,7 +666,6 @@ RRDSET *rrdset_create_custom( debug(D_RRD_CALLS, "Creating RRD_STATS for '%s.%s'.", type, id); st = callocz(1, sizeof(RRDSET)); - st->state = callocz(1, sizeof(*st->state)); st->id = string_strdupz(fullid); // fullid is already json_fix'ed @@ -690,7 +688,8 @@ RRDSET *rrdset_create_custom( st->type = rrd_string_strdupz(type); st->family = family ? rrd_string_strdupz(family) : string_dup(st->type); - st->state->is_ar_chart = strcmp(rrdset_id(st), ML_ANOMALY_RATES_CHART_ID) == 0; + if(strcmp(rrdset_id(st), ML_ANOMALY_RATES_CHART_ID) == 0) + rrdset_flag_set(st, RRDSET_FLAG_ANOMALY_RATE_CHART); st->units = rrd_string_strdupz(units); @@ -718,7 +717,7 @@ RRDSET *rrdset_create_custom( ); netdata_rwlock_init(&st->rrdset_rwlock); - st->state->chart_labels = rrdlabels_create(); + st->rrdlabels = rrdlabels_create(); rrdset_update_permanent_labels(st); if(name && *name && rrdset_set_name(st, name)) @@ -1264,7 +1263,7 @@ void rrdset_done(RRDSET *st) { rrdset_rdlock(st); #ifdef ENABLE_ACLK - if (likely(!st->state->is_ar_chart)) { + if (likely(!rrdset_is_ar_chart(st))) { if (unlikely(!rrdset_flag_check(st, RRDSET_FLAG_ACLK))) { if (likely(st->dimensions && st->counter_done && !queue_chart_to_aclk(st))) { rrdset_flag_set(st, RRDSET_FLAG_ACLK); @@ -1693,7 +1692,7 @@ after_second_database_work: continue; #ifdef ENABLE_ACLK - if (likely(!st->state->is_ar_chart)) { + if (likely(!rrdset_is_ar_chart(st))) { if (!rrddim_flag_check(rd, RRDDIM_FLAG_HIDDEN) && likely(rrdset_flag_check(st, RRDSET_FLAG_ACLK))) queue_dimension_to_aclk(rd, calc_dimension_liveness(rd, mark)); } diff --git a/database/sqlite/sqlite_aclk.c b/database/sqlite/sqlite_aclk.c index 1312aa5712..33a8a077de 100644 --- a/database/sqlite/sqlite_aclk.c +++ b/database/sqlite/sqlite_aclk.c @@ -313,7 +313,7 @@ static int create_host_callback(void *data, int argc, char **argv, char **column , 1 ); if (likely(host)) - host->host_labels = sql_load_host_labels((uuid_t *)argv[IDX_HOST_ID]); + host->rrdlabels = sql_load_host_labels((uuid_t *)argv[IDX_HOST_ID]); #ifdef NETDATA_INTERNAL_CHECKS char node_str[UUID_STR_LEN] = ""; diff --git a/database/sqlite/sqlite_aclk_chart.c b/database/sqlite/sqlite_aclk_chart.c index 8e7bb6ba07..882b8d83c8 100644 --- a/database/sqlite/sqlite_aclk_chart.c +++ b/database/sqlite/sqlite_aclk_chart.c @@ -150,7 +150,7 @@ int aclk_add_chart_event(struct aclk_database_worker_config *wc, struct aclk_dat if (likely(claim_id)) { struct chart_instance_updated chart_payload; memset(&chart_payload, 0, sizeof(chart_payload)); - chart_payload.config_hash = get_str_from_uuid(&st->state->hash_id); + chart_payload.config_hash = get_str_from_uuid(&st->uuid); chart_payload.update_every = st->update_every; chart_payload.memory_mode = st->rrd_memory_mode; chart_payload.name = (char *)rrdset_name(st); @@ -159,7 +159,7 @@ int aclk_add_chart_event(struct aclk_database_worker_config *wc, struct aclk_dat chart_payload.id = strdupz(rrdset_id(st)); chart_payload.chart_labels = rrdlabels_create(); - rrdlabels_copy(chart_payload.chart_labels, st->state->chart_labels); + rrdlabels_copy(chart_payload.chart_labels, st->rrdlabels); size_t size; char *payload = generate_chart_instance_updated(&size, &chart_payload); @@ -1265,7 +1265,7 @@ struct aclk_chart_sync_stats *aclk_get_chart_sync_stats(RRDHOST *host) void sql_check_chart_liveness(RRDSET *st) { RRDDIM *rd; - if (unlikely(st->state->is_ar_chart)) + if (unlikely(rrdset_is_ar_chart(st))) return; rrdset_rdlock(st); diff --git a/database/sqlite/sqlite_aclk_node.c b/database/sqlite/sqlite_aclk_node.c index 246d5d0536..6a6372edd8 100644 --- a/database/sqlite/sqlite_aclk_node.c +++ b/database/sqlite/sqlite_aclk_node.c @@ -123,7 +123,7 @@ void sql_build_node_info(struct aclk_database_worker_config *wc, struct aclk_dat node_info.data.ml_info.ml_capable = host->system_info->ml_capable; node_info.data.ml_info.ml_enabled = host->system_info->ml_enabled; - node_info.data.host_labels_ptr = host->host_labels; + node_info.data.host_labels_ptr = host->rrdlabels; aclk_update_node_info(&node_info); log_access("ACLK RES [%s (%s)]: NODE INFO SENT for guid [%s] (%s)", wc->node_id, rrdhost_hostname(wc->host), wc->host_guid, wc->host == localhost ? "parent" : "child"); diff --git a/database/sqlite/sqlite_functions.c b/database/sqlite/sqlite_functions.c index c0724ba9e3..c470e4c1de 100644 --- a/database/sqlite/sqlite_functions.c +++ b/database/sqlite/sqlite_functions.c @@ -2122,7 +2122,7 @@ void compute_chart_hash(RRDSET *st) char uuid_str[GUID_LEN + 1]; uuid_unparse_lower(*((uuid_t *) &hash_value), uuid_str); //info("Calculating HASH %s for chart %s", uuid_str, st->name); - uuid_copy(st->state->hash_id, *((uuid_t *) &hash_value)); + uuid_copy(st->uuid, *((uuid_t *) &hash_value)); (void)sql_store_chart_hash( (uuid_t *)&hash_value, @@ -2710,7 +2710,7 @@ void sql_store_host_labels(RRDHOST *host) if (rc != SQLITE_OK) error_report("Failed to remove old host labels for host %s", rrdhost_hostname(host)); - rrdlabels_walkthrough_read(host->host_labels, save_host_label_callback, host); + rrdlabels_walkthrough_read(host->rrdlabels, save_host_label_callback, host); } #define SELECT_HOST_LABELS "SELECT label_key, label_value, source_type FROM host_label WHERE host_id = @host_id " \ -- cgit v1.2.3