From 144800420e305dfa352aab47ab324af19b320c83 Mon Sep 17 00:00:00 2001 From: Timotej S <6674623+underhood@users.noreply.github.com> Date: Fri, 6 Nov 2020 10:16:20 +0100 Subject: Adds metric showing how long Query spent in Queue (#10016) * implements new ACLK metric * cleans ACLK_stats code a bit --- aclk/aclk_stats.h | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) (limited to 'aclk/aclk_stats.h') diff --git a/aclk/aclk_stats.h b/aclk/aclk_stats.h index 7ef3e337c6..49ea473485 100644 --- a/aclk/aclk_stats.h +++ b/aclk/aclk_stats.h @@ -26,6 +26,35 @@ struct aclk_metrics { volatile uint8_t online; }; +//mat = max average total +struct aclk_metric_mat_data { + volatile uint32_t total; + volatile uint32_t count; + volatile uint32_t max; +}; + +//mat = max average total +struct aclk_metric_mat { + char *name; + char *title; + RRDSET *st; + RRDDIM *rd_avg; + RRDDIM *rd_max; + RRDDIM *rd_total; + long prio; + char *unit; +}; + +extern struct aclk_mat_metrics { +#ifdef NETDATA_INTERNAL_CHECKS + struct aclk_metric_mat latency; +#endif + struct aclk_metric_mat cloud_q_db_query_time; + struct aclk_metric_mat cloud_q_recvd_to_processed; +} aclk_mat_metrics; + +void aclk_metric_mat_update(struct aclk_metric_mat_data *metric, usec_t measurement); + // reset to 0 on every sample extern struct aclk_metrics_per_sample { /* in the unlikely event of ACLK disconnecting @@ -37,12 +66,6 @@ extern struct aclk_metrics_per_sample { volatile uint32_t queries_queued; volatile uint32_t queries_dispatched; -#ifdef NETDATA_INTERNAL_CHECKS - volatile uint32_t latency_max; - volatile uint32_t latency_total; - volatile uint32_t latency_count; -#endif - volatile uint32_t write_q_added; volatile uint32_t write_q_consumed; @@ -52,9 +75,11 @@ extern struct aclk_metrics_per_sample { volatile uint32_t cloud_req_recvd; volatile uint32_t cloud_req_err; - volatile uint32_t cloud_q_process_total; - volatile uint32_t cloud_q_process_count; - volatile uint32_t cloud_q_process_max; +#ifdef NETDATA_INTERNAL_CHECKS + struct aclk_metric_mat_data latency; +#endif + struct aclk_metric_mat_data cloud_q_db_query_time; + struct aclk_metric_mat_data cloud_q_recvd_to_processed; } aclk_metrics_per_sample; extern uint32_t *aclk_queries_per_thread; -- cgit v1.2.3