summaryrefslogtreecommitdiffstats
path: root/src/database/sqlite/sqlite_aclk_node.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-11-09 08:36:07 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-11-25 11:21:20 +0000
commiteae52fdaa9298e00f14b0b6256400d200db9c373 (patch)
treea3040a19bd024295ded05370853647bab9d7c225 /src/database/sqlite/sqlite_aclk_node.c
parentAdding upstream version 1.47.5. (diff)
downloadnetdata-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.c33
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