Initialize st->rrdvars from rrdset insert callback (#13786)
* init st->rrdvars from rrdset callback * also init rrdfamily and rrdimvar from rrdset * remove empty line
Emmanuel Vasilakis committed
Oct 10, 2022 at 12:44 UTC
bff1a5c8eabcca1bb4e910704b4b904cceb93a78
2 files changed
+6
-8
database/rrdset.c
+6
@@ -181,6 +181,12 @@ static void rrdset_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, v
181
// chart variables - we need this for data collection to work (collector given chart variables) - not only health
182
rrdsetvar_index_init(st);
183
184
+ if (host->health_enabled) {
185
+ st->rrdfamily = rrdfamily_add_and_acquire(host, rrdset_family(st));
186
+ st->rrdvars = rrdvariables_create();
187
+ rrddimvar_index_init(st);
188
+ }
189
+
190
st->rrdlabels = rrdlabels_create();
191
rrdset_update_permanent_labels(st);
192
health/health.c
-8
@@ -690,14 +690,6 @@ static void health_execute_delayed_initializations(RRDHOST *host) {
690
691
worker_is_busy(WORKER_HEALTH_JOB_DELAYED_INIT_RRDSET);
692
693
- if(!st->rrdfamily)
694
- st->rrdfamily = rrdfamily_add_and_acquire(host, rrdset_family(st));
695
-
696
- if(!st->rrdvars)
697
- st->rrdvars = rrdvariables_create();
698
-
699
- rrddimvar_index_init(st);
700
-
693
rrdsetvar_add_and_leave_released(st, "last_collected_t", RRDVAR_TYPE_TIME_T, &st->last_collected_time.tv_sec, RRDVAR_FLAG_NONE);
694
rrdsetvar_add_and_leave_released(st, "collected_total_raw", RRDVAR_TYPE_TOTAL, &st->last_collected_total, RRDVAR_FLAG_NONE);
695
rrdsetvar_add_and_leave_released(st, "green", RRDVAR_TYPE_CALCULATED, &st->green, RRDVAR_FLAG_NONE);