diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-11-09 08:36:07 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-11-25 11:21:20 +0000 |
commit | eae52fdaa9298e00f14b0b6256400d200db9c373 (patch) | |
tree | a3040a19bd024295ded05370853647bab9d7c225 /src/database/sqlite/sqlite_aclk_node.c | |
parent | Adding upstream version 1.47.5. (diff) | |
download | netdata-upstream/2.0.3.tar.xz netdata-upstream/2.0.3.zip |
Adding upstream version 2.0.3.upstream/2.0.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/database/sqlite/sqlite_aclk_node.c')
-rw-r--r-- | src/database/sqlite/sqlite_aclk_node.c | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/src/database/sqlite/sqlite_aclk_node.c b/src/database/sqlite/sqlite_aclk_node.c index 411b8bd70..f5816465e 100644 --- a/src/database/sqlite/sqlite_aclk_node.c +++ b/src/database/sqlite/sqlite_aclk_node.c @@ -6,8 +6,6 @@ #include "../../aclk/aclk_contexts_api.h" #include "../../aclk/aclk_capas.h" -#ifdef ENABLE_ACLK - DICTIONARY *collectors_from_charts(RRDHOST *host, DICTIONARY *dict) { RRDSET *st; char name[500]; @@ -32,16 +30,18 @@ static void build_node_collectors(RRDHOST *host) struct update_node_collectors upd_node_collectors; DICTIONARY *dict = dictionary_create(DICT_OPTION_SINGLE_THREADED); + CLAIM_ID claim_id = claim_id_get(); upd_node_collectors.node_id = wc->node_id; - upd_node_collectors.claim_id = get_agent_claimid(); + upd_node_collectors.claim_id = claim_id_is_set(claim_id) ? claim_id.str : NULL; upd_node_collectors.node_collectors = collectors_from_charts(host, dict); aclk_update_node_collectors(&upd_node_collectors); dictionary_destroy(dict); - freez(upd_node_collectors.claim_id); - nd_log(NDLS_ACCESS, NDLP_DEBUG, "ACLK RES [%s (%s)]: NODE COLLECTORS SENT", wc->node_id, rrdhost_hostname(host)); + nd_log(NDLS_ACCESS, NDLP_DEBUG, + "ACLK RES [%s (%s)]: NODE COLLECTORS SENT", + wc->node_id, rrdhost_hostname(host)); } static void build_node_info(RRDHOST *host) @@ -50,9 +50,11 @@ static void build_node_info(RRDHOST *host) struct aclk_sync_cfg_t *wc = host->aclk_config; + CLAIM_ID claim_id = claim_id_get(); + rrd_rdlock(); node_info.node_id = wc->node_id; - node_info.claim_id = get_agent_claimid(); + node_info.claim_id = claim_id_is_set(claim_id) ? claim_id.str : NULL; node_info.machine_guid = host->machine_guid; node_info.child = (host != localhost); node_info.ml_info.ml_capable = ml_capable(); @@ -64,11 +66,11 @@ static void build_node_info(RRDHOST *host) char *host_version = NULL; if (host != localhost) { - netdata_mutex_lock(&host->receiver_lock); + spinlock_lock(&host->receiver_lock); host_version = strdupz( host->receiver && host->receiver->program_version ? host->receiver->program_version : rrdhost_program_version(host)); - netdata_mutex_unlock(&host->receiver_lock); + spinlock_unlock(&host->receiver_lock); } node_info.data.name = rrdhost_hostname(host); @@ -108,7 +110,6 @@ static void build_node_info(RRDHOST *host) host == localhost ? "parent" : "child"); rrd_rdunlock(); - freez(node_info.claim_id); freez(node_info.node_instance_capabilities); freez(host_version); @@ -133,7 +134,7 @@ void aclk_check_node_info_and_collectors(void) { RRDHOST *host; - if (unlikely(!aclk_connected)) + if (unlikely(!aclk_online_for_nodes())) return; size_t context_loading = 0; @@ -153,6 +154,9 @@ void aclk_check_node_info_and_collectors(void) continue; } + if (!wc->node_info_send_time && !wc->node_collectors_send) + continue; + if (unlikely(host_is_replicating(host))) { internal_error(true, "ACLK SYNC: Host %s is still replicating", rrdhost_hostname(host)); replicating++; @@ -167,12 +171,7 @@ void aclk_check_node_info_and_collectors(void) if (pp_queue_empty && wc->node_info_send_time && wc->node_info_send_time + 30 < now) { wc->node_info_send_time = 0; build_node_info(host); - if (netdata_cloud_enabled) { - netdata_mutex_lock(&host->receiver_lock); - int live = (host == localhost || host->receiver || !(rrdhost_flag_check(host, RRDHOST_FLAG_ORPHAN))) ? 1 : 0; - netdata_mutex_unlock(&host->receiver_lock); - aclk_host_state_update(host, live, 1); - } + schedule_node_state_update(host, 10000); internal_error(true, "ACLK SYNC: Sending node info for %s", rrdhost_hostname(host)); } @@ -196,5 +195,3 @@ void aclk_check_node_info_and_collectors(void) context_pp); } } - -#endif |