@cryptotaxi247 / netdata-1 / commits / 6bed6b151

ACLK statistics on bytes recvd and sent (#13091)

Timotej S committed Jun 14, 2022 at 17:09 UTC 6bed6b1519b2937b1b58324deb9243480a68eded
4 files changed +34 -1
aclk/aclk.c
+1
@@ -822,6 +822,7 @@ void *aclk_main(void *ptr)
822 stats_thread = callocz(1, sizeof(struct aclk_stats_thread));
823 stats_thread->thread = mallocz(sizeof(netdata_thread_t));
824 stats_thread->query_thread_count = query_threads.count;
825 + stats_thread->client = mqttwss_client;
826 aclk_stats_thread_prepare(query_threads.count, proto_hdl_cnt);
827 netdata_thread_create(
828 stats_thread->thread, ACLK_STATS_THREAD_NAME, NETDATA_THREAD_OPTION_JOINABLE, aclk_stats_main_thread,
aclk/aclk_stats.c
+30
@@ -261,6 +261,33 @@ static void aclk_stats_newproto_rx(uint32_t *rx_msgs_sample)
261 }
262 #endif
263
264 +static void aclk_stats_mqtt_wss(struct mqtt_wss_stats *stats)
265 +{
266 + static RRDSET *st = NULL;
267 + static RRDDIM *rd_sent = NULL;
268 + static RRDDIM *rd_recvd = NULL;
269 + static uint64_t sent = 0;
270 + static uint64_t recvd = 0;
271 +
272 + sent += stats->bytes_tx;
273 + recvd += stats->bytes_rx;
274 +
275 + if (unlikely(!st)) {
276 + st = rrdset_create_localhost(
277 + "netdata", "aclk_openssl_bytes", NULL, "aclk", NULL, "Received and Sent bytes.", "B/s",
278 + "netdata", "stats", 200011, localhost->rrd_update_every, RRDSET_TYPE_STACKED);
279 +
280 + rd_sent = rrddim_add(st, "sent", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
281 + rd_recvd = rrddim_add(st, "received", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
282 + } else
283 + rrdset_next(st);
284 +
285 + rrddim_set_by_pointer(st, rd_sent, sent);
286 + rrddim_set_by_pointer(st, rd_recvd, recvd);
287 +
288 + rrdset_done(st);
289 +}
290 +
291 void aclk_stats_thread_prepare(int query_thread_count, unsigned int proto_hdl_cnt)
292 {
293 #ifndef ENABLE_NEW_CLOUD_PROTOCOL
@@ -343,6 +370,9 @@ void *aclk_stats_main_thread(void *ptr)
370
371 aclk_stats_query_time(&per_sample);
372
373 + struct mqtt_wss_stats mqtt_wss_stats = mqtt_wss_get_stats(args->client);
374 + aclk_stats_mqtt_wss(&mqtt_wss_stats);
375 +
376 #ifdef ENABLE_NEW_CLOUD_PROTOCOL
377 aclk_stats_newproto_rx(aclk_stats_cfg.aclk_proto_rx_msgs_sample);
378 #endif
aclk/aclk_stats.h
+2
@@ -6,6 +6,7 @@
6 #include "daemon/common.h"
7 #include "libnetdata/libnetdata.h"
8 #include "aclk_query_queue.h"
9 +#include "mqtt_wss_client.h"
10
11 #define ACLK_STATS_THREAD_NAME "ACLK_Stats"
12
@@ -22,6 +23,7 @@ int aclk_cloud_req_http_type_to_idx(const char *name);
23 struct aclk_stats_thread {
24 netdata_thread_t *thread;
25 int query_thread_count;
26 + mqtt_wss_client client;
27 };
28
29 // preserve between samples
mqtt_websockets
+1 -1
@@ -1 +1 @@
1 -Subproject commit 7a06d06ee6952beea9db22378709d11675e45b95
1 +Subproject commit d25d9838bf90ffff8743685d96fa8f31b55a7b1e