Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
pedbap
Tor
Commits
2b97c1dd
Commit
2b97c1dd
authored
Jun 28, 2021
by
George Kadianakis
Browse files
Merge remote-tracking branch 'tor-gitlab/mr/385'
parents
45b59871
d4fbfb54
Pipeline
#8476
passed with stage
in 10 minutes and 33 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/feature/relay/relay_metrics.c
View file @
2b97c1dd
...
...
@@ -265,7 +265,7 @@ fill_onionskins_values(void)
metrics_store_entry_add_label
(
sentry
,
metrics_format_label
(
"action"
,
"processed"
));
metrics_store_entry_update
(
sentry
,
rep_hist_get_circuit_handshake_assigned
(
t
));
rep_hist_get_circuit_
n_
handshake_assigned
(
t
));
sentry
=
metrics_store_add
(
the_store
,
rentry
->
type
,
rentry
->
name
,
rentry
->
help
);
...
...
@@ -273,7 +273,7 @@ fill_onionskins_values(void)
metrics_store_entry_add_label
(
sentry
,
metrics_format_label
(
"action"
,
"dropped"
));
metrics_store_entry_update
(
sentry
,
rep_hist_get_circuit_handshake_dropped
(
t
));
rep_hist_get_circuit_
n_
handshake_dropped
(
t
));
tor_free
(
type_label
);
}
}
...
...
src/feature/stats/rephist.c
View file @
2b97c1dd
...
...
@@ -1998,12 +1998,18 @@ rep_hist_note_desc_served(const char * desc)
/** Internal statistics to track how many requests of each type of
* handshake we've received, and how many we've assigned to cpuworkers.
* Useful for seeing trends in cpu load.
*
* They are reset at every heartbeat.
* @{ */
STATIC
int
onion_handshakes_requested
[
MAX_ONION_HANDSHAKE_TYPE
+
1
]
=
{
0
};
STATIC
int
onion_handshakes_assigned
[
MAX_ONION_HANDSHAKE_TYPE
+
1
]
=
{
0
};
STATIC
uint64_t
onion_handshakes_dropped
[
MAX_ONION_HANDSHAKE_TYPE
+
1
]
=
{
0
};
/**@}*/
/** Counters keeping the same stats as above but for the entire duration of the
* process (not reset). */
static
uint64_t
stats_n_onionskin_assigned
[
MAX_ONION_HANDSHAKE_TYPE
+
1
]
=
{
0
};
static
uint64_t
stats_n_onionskin_dropped
[
MAX_ONION_HANDSHAKE_TYPE
+
1
]
=
{
0
};
/** A new onionskin (using the <b>type</b> handshake) has arrived. */
void
rep_hist_note_circuit_handshake_requested
(
uint16_t
type
)
...
...
@@ -2017,8 +2023,10 @@ rep_hist_note_circuit_handshake_requested(uint16_t type)
void
rep_hist_note_circuit_handshake_assigned
(
uint16_t
type
)
{
if
(
type
<=
MAX_ONION_HANDSHAKE_TYPE
)
if
(
type
<=
MAX_ONION_HANDSHAKE_TYPE
)
{
onion_handshakes_assigned
[
type
]
++
;
stats_n_onionskin_assigned
[
type
]
++
;
}
}
/** We've just drop an onionskin (using the <b>type</b> handshake) due to being
...
...
@@ -2026,8 +2034,9 @@ rep_hist_note_circuit_handshake_assigned(uint16_t type)
void
rep_hist_note_circuit_handshake_dropped
(
uint16_t
type
)
{
if
(
type
<=
MAX_ONION_HANDSHAKE_TYPE
)
onion_handshakes_dropped
[
type
]
++
;
if
(
type
<=
MAX_ONION_HANDSHAKE_TYPE
)
{
stats_n_onionskin_dropped
[
type
]
++
;
}
}
/** Get the circuit handshake value that is requested. */
...
...
@@ -2050,14 +2059,24 @@ rep_hist_get_circuit_handshake_assigned, (uint16_t type))
return
onion_handshakes_assigned
[
type
];
}
/** Get the circuit handshake value that is dropped. */
/** Get the total number of circuit handshake value that is assigned. */
MOCK_IMPL
(
uint64_t
,
rep_hist_get_circuit_n_handshake_assigned
,
(
uint16_t
type
))
{
if
(
BUG
(
type
>
MAX_ONION_HANDSHAKE_TYPE
))
{
return
0
;
}
return
stats_n_onionskin_assigned
[
type
];
}
/** Get the total number of circuit handshake value that is dropped. */
MOCK_IMPL
(
uint64_t
,
rep_hist_get_circuit_handshake_dropped
,
(
uint16_t
type
))
rep_hist_get_circuit_
n_
handshake_dropped
,
(
uint16_t
type
))
{
if
(
BUG
(
type
>
MAX_ONION_HANDSHAKE_TYPE
))
{
return
0
;
}
return
onion_handshakes
_dropped
[
type
];
return
stats_n_onionskin
_dropped
[
type
];
}
/** Log our onionskin statistics since the last time we were called. */
...
...
src/feature/stats/rephist.h
View file @
2b97c1dd
...
...
@@ -63,7 +63,11 @@ void rep_hist_log_circuit_handshake_stats(time_t now);
MOCK_DECL
(
int
,
rep_hist_get_circuit_handshake_requested
,
(
uint16_t
type
));
MOCK_DECL
(
int
,
rep_hist_get_circuit_handshake_assigned
,
(
uint16_t
type
));
MOCK_DECL
(
uint64_t
,
rep_hist_get_circuit_handshake_dropped
,
(
uint16_t
type
));
MOCK_DECL
(
uint64_t
,
rep_hist_get_circuit_n_handshake_assigned
,
(
uint16_t
type
));
MOCK_DECL
(
uint64_t
,
rep_hist_get_circuit_n_handshake_dropped
,
(
uint16_t
type
));
void
rep_hist_hs_stats_init
(
time_t
now
);
void
rep_hist_hs_stats_term
(
void
);
...
...
@@ -90,7 +94,6 @@ extern uint32_t rephist_total_num;
#ifdef TOR_UNIT_TESTS
extern
int
onion_handshakes_requested
[
MAX_ONION_HANDSHAKE_TYPE
+
1
];
extern
int
onion_handshakes_assigned
[
MAX_ONION_HANDSHAKE_TYPE
+
1
];
extern
uint64_t
onion_handshakes_dropped
[
MAX_ONION_HANDSHAKE_TYPE
+
1
];
#endif
#ifdef REPHIST_PRIVATE
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment