[tor-commits] [tor/master] vote: Add "stats" line

nickm at torproject.org nickm at torproject.org
Wed Mar 10 21:47:54 UTC 2021


commit 9f9fed3fd167d564ec669ee46d2da923fb887803
Author: David Goulet <dgoulet at torproject.org>
Date:   Wed Mar 10 09:51:30 2021 -0500

    vote: Add "stats" line
    
    Closes #40314
    
    Signed-off-by: David Goulet <dgoulet at torproject.org>
---
 changes/ticket40314                     |  4 ++++
 src/feature/nodelist/fmt_routerstatus.c | 13 +++++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/changes/ticket40314 b/changes/ticket40314
new file mode 100644
index 0000000000..328687c265
--- /dev/null
+++ b/changes/ticket40314
@@ -0,0 +1,4 @@
+  o Minor feature (Vote document):
+    - Add the "stats" line in a directory authority vote in order to report
+      various statistics that the authority has computed for the relays. This
+      will help us diagnose better the network. Close ticket 40314.
diff --git a/src/feature/nodelist/fmt_routerstatus.c b/src/feature/nodelist/fmt_routerstatus.c
index 5c1e9309b9..51f7ee7d95 100644
--- a/src/feature/nodelist/fmt_routerstatus.c
+++ b/src/feature/nodelist/fmt_routerstatus.c
@@ -15,11 +15,11 @@
 #include "feature/nodelist/fmt_routerstatus.h"
 
 #include "core/or/policies.h"
-#include "feature/nodelist/routerlist.h"
 #include "feature/dirauth/dirvote.h"
-
 #include "feature/nodelist/routerinfo_st.h"
+#include "feature/nodelist/routerlist.h"
 #include "feature/nodelist/vote_routerstatus_st.h"
+#include "feature/stats/rephist.h"
 
 #include "lib/crypt_ops/crypto_format.h"
 
@@ -195,6 +195,15 @@ routerstatus_format_entry(const routerstatus_t *rs, const char *version,
         digest256_to_base64(ed_b64, (const char*)vrs->ed25519_id);
         smartlist_add_asprintf(chunks, "id ed25519 %s\n", ed_b64);
       }
+
+      /* We'll add a series of statistics to the vote per relays so we are
+       * able to assess what each authorities sees and help our health and
+       * performance work. */
+      time_t now = time(NULL);
+      smartlist_add_asprintf(chunks, "stats wfu=%.6f tk=%lu mtbf=%.0f\n",
+        rep_hist_get_weighted_fractional_uptime(rs->identity_digest, now),
+        rep_hist_get_weighted_time_known(rs->identity_digest, now),
+        rep_hist_get_stability(rs->identity_digest, now));
     }
   }
 





More information about the tor-commits mailing list