mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-20 13:24:44 +00:00
Add BEACON_PROCESSOR_WORKERS_ACTIVE_GAUGE_BY_TYPE metric (#7935)
Similar to `BEACON_PROCESSOR_WORKERS_ACTIVE_TOTAL` but this metric also records the work type. This is useful in identifying the task when a worker is stuck due to a deadlock or something else, and usually difficult to debug in production / release mode.
This commit is contained in:
@@ -1403,11 +1403,6 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
}
|
||||
};
|
||||
|
||||
metrics::set_gauge(
|
||||
&metrics::BEACON_PROCESSOR_WORKERS_ACTIVE_TOTAL,
|
||||
self.current_workers as i64,
|
||||
);
|
||||
|
||||
if let Some(modified_queue_id) = modified_queue_id {
|
||||
let queue_len = match modified_queue_id {
|
||||
WorkType::GossipAttestation => attestation_queue.len(),
|
||||
@@ -1520,6 +1515,11 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
&[work.str_id()],
|
||||
);
|
||||
|
||||
metrics::inc_gauge_vec(
|
||||
&metrics::BEACON_PROCESSOR_WORKERS_ACTIVE_GAUGE_BY_TYPE,
|
||||
&[work_id],
|
||||
);
|
||||
|
||||
// Wrap the `idle_tx` in a struct that will fire the idle message whenever it is dropped.
|
||||
//
|
||||
// This helps ensure that the worker is always freed in the case of an early exit or panic.
|
||||
@@ -1688,6 +1688,11 @@ pub struct SendOnDrop {
|
||||
|
||||
impl Drop for SendOnDrop {
|
||||
fn drop(&mut self) {
|
||||
metrics::dec_gauge_vec(
|
||||
&metrics::BEACON_PROCESSOR_WORKERS_ACTIVE_GAUGE_BY_TYPE,
|
||||
&[self.work_type.clone().into()],
|
||||
);
|
||||
|
||||
if let Err(e) = self.tx.try_send(self.work_type.clone()) {
|
||||
warn!(
|
||||
msg = "did not free worker, shutdown may be underway",
|
||||
|
||||
Reference in New Issue
Block a user