@cryptotaxi247 / netdata-1 / commits / 122489ce5

RRDCONTEXTS: loading report (#19351)

reformatted the metadata report, to provide the complete picture

Costa Tsaousis committed Jan 8, 2025 at 18:49 UTC 122489ce556eef2a2463c167360041d09d9b803f
2 files changed +21 -16
src/aclk/aclk.c
+1
@@ -836,6 +836,7 @@ exit:
836 bool aclk_host_state_update_auto(RRDHOST *host) {
837 int live;
838 switch(rrdhost_ingestion_status(host)) {
839 + default:
840 case RRDHOST_INGEST_STATUS_ARCHIVED:
841 case RRDHOST_INGEST_STATUS_INITIALIZING:
842 case RRDHOST_INGEST_STATUS_OFFLINE:
src/database/contexts/contexts-loading.c
+20 -16
@@ -2,8 +2,8 @@
2
3 #include "internal.h"
4
5 -static __thread size_t ignored_contexts_on_metrics = 0, ignored_contexts_on_instances = 0,
6 - ignored_instances_on_metrics = 0;
5 +static __thread size_t ignored_metrics = 0, ignored_instances = 0;
6 +static __thread size_t loaded_metrics = 0, loaded_instances = 0, loaded_contexts = 0;
7
8 static void rrdinstance_load_clabel(SQL_CLABEL_DATA *sld, void *data) {
9 RRDINSTANCE *ri = data;
@@ -18,7 +18,7 @@ static void rrdinstance_load_dimension_callback(SQL_DIMENSION_DATA *sd, void *da
18 RRDHOST *host = data;
19 RRDCONTEXT_ACQUIRED *rca = (RRDCONTEXT_ACQUIRED *)dictionary_get_and_acquire_item(host->rrdctx.contexts, sd->context);
20 if(!rca) {
21 - ignored_contexts_on_metrics++;
21 + ignored_metrics++;
22 // nd_log(NDLS_DAEMON, NDLP_ERR,
23 // "RRDCONTEXT: context '%s' is not found in host '%s' - not loading dimensions",
24 // sd->context, rrdhost_hostname(host));
@@ -29,7 +29,7 @@ static void rrdinstance_load_dimension_callback(SQL_DIMENSION_DATA *sd, void *da
29 RRDINSTANCE_ACQUIRED *ria = (RRDINSTANCE_ACQUIRED *)dictionary_get_and_acquire_item(rc->rrdinstances, sd->chart_id);
30 if(!ria) {
31 rrdcontext_release(rca);
32 - ignored_instances_on_metrics++;
32 + ignored_metrics++;
33 // nd_log(NDLS_DAEMON, NDLP_ERR,
34 // "RRDCONTEXT: instance '%s' of context '%s' is not found in host '%s' - not loading dimensions",
35 // sd->chart_id, sd->context, rrdhost_hostname(host));
@@ -50,6 +50,7 @@ static void rrdinstance_load_dimension_callback(SQL_DIMENSION_DATA *sd, void *da
50
51 rrdinstance_release(ria);
52 rrdcontext_release(rca);
53 + loaded_metrics++;
54 }
55
56 static void rrdinstance_load_instance_callback(SQL_CHART_DATA *sc, void *data) {
@@ -57,7 +58,7 @@ static void rrdinstance_load_instance_callback(SQL_CHART_DATA *sc, void *data) {
58
59 RRDCONTEXT_ACQUIRED *rca = (RRDCONTEXT_ACQUIRED *)dictionary_get_and_acquire_item(host->rrdctx.contexts, sc->context);
60 if(!rca) {
60 - ignored_contexts_on_instances++;
61 + ignored_instances++;
62 // nd_log(NDLS_DAEMON, NDLP_ERR,
63 // "RRDCONTEXT: context '%s' is not found in host '%s' - not loadings instances",
64 // sc->context, rrdhost_hostname(host));
@@ -82,6 +83,7 @@ static void rrdinstance_load_instance_callback(SQL_CHART_DATA *sc, void *data) {
83
84 rrdinstance_release(ria);
85 rrdcontext_release(rca);
86 + loaded_instances++;
87 }
88
89 static void rrdcontext_load_context_callback(VERSIONED_CONTEXT_DATA *ctx_data, void *data) {
@@ -98,6 +100,7 @@ static void rrdcontext_load_context_callback(VERSIONED_CONTEXT_DATA *ctx_data, v
100 .hub = *ctx_data,
101 };
102 dictionary_set(host->rrdctx.contexts, string2str(trc.id), &trc, sizeof(trc));
103 + loaded_contexts++;
104 }
105
106 void rrdhost_load_rrdcontext_data(RRDHOST *host) {
@@ -107,22 +110,23 @@ void rrdhost_load_rrdcontext_data(RRDHOST *host) {
110 if (host->rrd_memory_mode != RRD_MEMORY_MODE_DBENGINE)
111 return;
112
110 - ignored_contexts_on_metrics = 0;
111 - ignored_contexts_on_instances = 0;
112 - ignored_instances_on_metrics = 0;
113 + ignored_metrics = 0;
114 + ignored_instances = 0;
115 + loaded_metrics = 0;
116 + loaded_instances = 0;
117 + loaded_contexts = 0;
118
119 ctx_get_context_list(&host->host_id.uuid, rrdcontext_load_context_callback, host);
120 ctx_get_chart_list(&host->host_id.uuid, rrdinstance_load_instance_callback, host);
121 ctx_get_dimension_list(&host->host_id.uuid, rrdinstance_load_dimension_callback, host);
122
118 - if(ignored_contexts_on_instances + ignored_contexts_on_metrics + ignored_instances_on_metrics)
119 - nd_log(NDLS_DAEMON, NDLP_WARNING,
120 - "RRDCONTEXT: metadata report for node '%s':"
121 - " did not load %zu contexts and %zu instances while loading metrics, "
122 - " and %zu contexts while loadings instances",
123 - rrdhost_hostname(host),
124 - ignored_contexts_on_metrics, ignored_instances_on_metrics,
125 - ignored_contexts_on_instances);
123 + nd_log(NDLS_DAEMON, ignored_metrics || ignored_instances ? NDLP_WARNING : NDLP_NOTICE,
124 + "RRDCONTEXT: metadata for node '%s':"
125 + " loaded %zu contexts, %zu instances, and %zu metrics,"
126 + " ignored %zu instances and %zu metrics",
127 + rrdhost_hostname(host),
128 + loaded_contexts, loaded_instances, loaded_metrics,
129 + ignored_instances, ignored_metrics);
130
131 RRDCONTEXT *rc;
132 dfe_start_read(host->rrdctx.contexts, rc) {