diff options
author | Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> | 2020-11-24 20:00:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-24 20:00:02 +0200 |
commit | e9d59e37d98db379fcbeeffeb6046af0f9cb2d2f (patch) | |
tree | c3021cf3e74efe8c47f63a39ad581347604bc404 /database/rrddim.c | |
parent | ab3b4c6ff82f2cbbcaf5816b9d599abce5ac2160 (diff) |
Migrate metadata log to SQLite (#10139)
Diffstat (limited to 'database/rrddim.c')
-rw-r--r-- | database/rrddim.c | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/database/rrddim.c b/database/rrddim.c index e2fe519a8c..74eee71f14 100644 --- a/database/rrddim.c +++ b/database/rrddim.c @@ -216,8 +216,8 @@ void rrdcalc_link_to_rrddim(RRDDIM *rd, RRDSET *st, RRDHOST *host) { } RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collected_number multiplier, - collected_number divisor, RRD_ALGORITHM algorithm, RRD_MEMORY_MODE memory_mode, - int is_archived, uuid_t *dim_uuid) { + collected_number divisor, RRD_ALGORITHM algorithm, RRD_MEMORY_MODE memory_mode) +{ RRDHOST *host = st->rrdhost; rrdset_wrlock(st); @@ -232,7 +232,10 @@ RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collecte rc += rrddim_set_algorithm(st, rd, algorithm); rc += rrddim_set_multiplier(st, rd, multiplier); rc += rrddim_set_divisor(st, rd, divisor); - if (!is_archived && rrddim_flag_check(rd, RRDDIM_FLAG_ARCHIVED)) { + if (rrddim_flag_check(rd, RRDDIM_FLAG_ARCHIVED)) { +#ifdef ENABLE_DBENGINE + store_active_dimension(rd->state->metric_uuid); +#endif rd->state->collect_ops.init(rd); rrddim_flag_clear(rd, RRDDIM_FLAG_ARCHIVED); rrddimvar_create(rd, RRDVAR_TYPE_CALCULATED, NULL, NULL, &rd->last_stored_value, RRDVAR_OPTION_DEFAULT); @@ -242,9 +245,10 @@ RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collecte } // DBENGINE available and activated? #ifdef ENABLE_DBENGINE - if (likely(!is_archived && rd->rrd_memory_mode == RRD_MEMORY_MODE_DBENGINE) && unlikely(rc)) { + if (likely(rd->rrd_memory_mode == RRD_MEMORY_MODE_DBENGINE) && unlikely(rc)) { debug(D_METADATALOG, "DIMENSION [%s] metadata updated", rd->id); - metalog_commit_update_dimension(rd); + (void)sql_store_dimension(rd->state->metric_uuid, rd->rrdset->chart_uuid, rd->id, rd->name, rd->multiplier, rd->divisor, + rd->algorithm); } #endif rrdset_unlock(st); @@ -391,7 +395,9 @@ RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collecte rd->state = mallocz(sizeof(*rd->state)); if(memory_mode == RRD_MEMORY_MODE_DBENGINE) { #ifdef ENABLE_DBENGINE + uuid_t *dim_uuid = find_dimension_uuid(st, rd); rrdeng_metric_init(rd, dim_uuid); + store_active_dimension(rd->state->metric_uuid); rd->state->collect_ops.init = rrdeng_store_metric_init; rd->state->collect_ops.store_metric = rrdeng_store_metric_next; rd->state->collect_ops.finalize = rrdeng_store_metric_finalize; @@ -413,10 +419,7 @@ RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collecte rd->state->query_ops.latest_time = rrddim_query_latest_time; rd->state->query_ops.oldest_time = rrddim_query_oldest_time; } - if (is_archived) - rrddim_flag_set(rd, RRDDIM_FLAG_ARCHIVED); - else - rd->state->collect_ops.init(rd); // only initialize if a collector created this dimension + rd->state->collect_ops.init(rd); // append this dimension if(!st->dimensions) st->dimensions = rd; @@ -443,7 +446,7 @@ RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collecte td->next = rd; } - if(host->health_enabled && !is_archived) { + if(host->health_enabled) { 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); @@ -452,19 +455,13 @@ RRDDIM *rrddim_add_custom(RRDSET *st, const char *id, const char *name, collecte if(unlikely(rrddim_index_add(st, rd) != rd)) error("RRDDIM: INTERNAL ERROR: attempt to index duplicate dimension '%s' on chart '%s'", rd->id, st->id); - if (!is_archived) - calc_link_to_rrddim(rd); + calc_link_to_rrddim(rd); rrdset_unlock(st); #ifdef ENABLE_ACLK if (netdata_cloud_setting) aclk_update_chart(host, st->id, ACLK_CMD_CHART); #endif -#ifdef ENABLE_DBENGINE - metalog_upd_objcount(st->rrdhost, 1); - metalog_commit_update_dimension(rd); -#endif - return(rd); } @@ -483,7 +480,7 @@ void rrddim_free_custom(RRDSET *st, RRDDIM *rd, int db_rotated) if (can_delete_metric && rd->rrd_memory_mode == RRD_MEMORY_MODE_DBENGINE) { #ifdef ENABLE_DBENGINE /* This metric has no data and no references */ - metalog_commit_delete_dimension(rd); + delete_dimension_uuid(rd->state->metric_uuid); #endif } } @@ -529,7 +526,6 @@ void rrddim_free_custom(RRDSET *st, RRDDIM *rd, int db_rotated) freez(rd->cache_filename); #ifdef ENABLE_DBENGINE if (rrd_memory_mode == RRD_MEMORY_MODE_DBENGINE) { - free_uuid(rd->state->metric_uuid); freez(rd->state->metric_uuid); } #endif @@ -541,9 +537,6 @@ void rrddim_free_custom(RRDSET *st, RRDDIM *rd, int db_rotated) if ((netdata_cloud_setting) && (db_rotated || RRD_MEMORY_MODE_DBENGINE != rrd_memory_mode)) aclk_update_chart(st->rrdhost, st->id, ACLK_CMD_CHART); #endif -#ifdef ENABLE_DBENGINE - metalog_upd_objcount(st->rrdhost, -1); -#endif } @@ -600,10 +593,6 @@ inline void rrddim_is_obsolete(RRDSET *st, RRDDIM *rd) { if (netdata_cloud_setting) aclk_update_chart(st->rrdhost, st->id, ACLK_CMD_CHART); #endif -#ifdef ENABLE_DBENGINE - metalog_commit_update_dimension(rd); -#endif - } inline void rrddim_isnot_obsolete(RRDSET *st __maybe_unused, RRDDIM *rd) { @@ -614,9 +603,6 @@ inline void rrddim_isnot_obsolete(RRDSET *st __maybe_unused, RRDDIM *rd) { if (netdata_cloud_setting) aclk_update_chart(st->rrdhost, st->id, ACLK_CMD_CHART); #endif -#ifdef ENABLE_DBENGINE - metalog_commit_update_dimension(rd); -#endif } // ---------------------------------------------------------------------------- |