summaryrefslogtreecommitdiffstats
path: root/database/rrddim.c
diff options
context:
space:
mode:
authorStelios Fragkakis <52996999+stelfrag@users.noreply.github.com>2020-11-24 20:00:02 +0200
committerGitHub <noreply@github.com>2020-11-24 20:00:02 +0200
commite9d59e37d98db379fcbeeffeb6046af0f9cb2d2f (patch)
treec3021cf3e74efe8c47f63a39ad581347604bc404 /database/rrddim.c
parentab3b4c6ff82f2cbbcaf5816b9d599abce5ac2160 (diff)
Migrate metadata log to SQLite (#10139)
Diffstat (limited to 'database/rrddim.c')
-rw-r--r--database/rrddim.c44
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
}
// ----------------------------------------------------------------------------