[tor-commits] [tor] 07/15: metrics: Add stats when the clock stalls.
gitolite role
git at cupani.torproject.org
Tue Nov 8 17:49:43 UTC 2022
This is an automated email from the git hooks/post-receive script.
dgoulet pushed a commit to branch main
in repository tor.
commit 2f7e05d89d710f09bff9377edfb6d30e78163084
Author: Mike Perry <mikeperry-git at torproject.org>
AuthorDate: Thu Nov 3 20:08:01 2022 +0000
metrics: Add stats when the clock stalls.
Part of #40708.
---
src/core/or/congestion_control_common.c | 11 +++++++++++
src/core/or/congestion_control_common.h | 1 +
src/feature/relay/relay_metrics.c | 9 +++++++++
3 files changed, 21 insertions(+)
diff --git a/src/core/or/congestion_control_common.c b/src/core/or/congestion_control_common.c
index 09d1d501da..c27eb2fca8 100644
--- a/src/core/or/congestion_control_common.c
+++ b/src/core/or/congestion_control_common.c
@@ -94,6 +94,9 @@ void congestion_control_set_cc_enabled(void);
/* Number of times the RTT value was reset. For MetricsPort. */
static uint64_t num_rtt_reset;
+/* Number of times the clock was stalled. For MetricsPort. */
+static uint64_t num_clock_stalls;
+
/* Consensus parameters cached. The non static ones are extern. */
static uint32_t cwnd_max = CWND_MAX_DFLT;
int32_t cell_queue_high = CELL_QUEUE_HIGH_DFLT;
@@ -136,6 +139,13 @@ congestion_control_get_num_rtt_reset(void)
return num_rtt_reset;
}
+/** Return the number of clock stalls that have been done. */
+uint64_t
+congestion_control_get_num_clock_stalls(void)
+{
+ return num_clock_stalls;
+}
+
/**
* Update global congestion control related consensus parameter values,
* every consensus update.
@@ -872,6 +882,7 @@ congestion_control_update_circuit_rtt(congestion_control_t *cc,
/* Do not update RTT at all if it looks fishy */
if (time_delta_stalled_or_jumped(cc, cc->ewma_rtt_usec, rtt)) {
+ num_clock_stalls++; /* Accounting */
return 0;
}
diff --git a/src/core/or/congestion_control_common.h b/src/core/or/congestion_control_common.h
index e62775ecce..a2740fb0b6 100644
--- a/src/core/or/congestion_control_common.h
+++ b/src/core/or/congestion_control_common.h
@@ -83,6 +83,7 @@ bool congestion_control_validate_sendme_increment(uint8_t sendme_inc);
char *congestion_control_get_control_port_fields(const origin_circuit_t *);
uint64_t congestion_control_get_num_rtt_reset(void);
+uint64_t congestion_control_get_num_clock_stalls(void);
/* Ugh, C.. these are private. Use the getter instead, when
* external to the congestion control code. */
diff --git a/src/feature/relay/relay_metrics.c b/src/feature/relay/relay_metrics.c
index 9ceb61836e..af59eb3dcc 100644
--- a/src/feature/relay/relay_metrics.c
+++ b/src/feature/relay/relay_metrics.c
@@ -373,6 +373,15 @@ fill_cc_values(void)
metrics_format_label("action", "rtt_reset"));
metrics_store_entry_update(sentry, congestion_control_get_num_rtt_reset());
+ sentry = metrics_store_add(the_store, rentry->type, rentry->name,
+ rentry->help);
+ metrics_store_entry_add_label(sentry,
+ metrics_format_label("state", "clock_stalls"));
+ metrics_store_entry_add_label(sentry,
+ metrics_format_label("action", "rtt_skipped"));
+ metrics_store_entry_update(sentry,
+ congestion_control_get_num_clock_stalls());
+
sentry = metrics_store_add(the_store, rentry->type, rentry->name,
rentry->help);
metrics_store_entry_add_label(sentry,
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tor-commits
mailing list