pub struct JitMetrics {Show 36 fields
pub lookup_hits: Gauge,
pub lookup_misses: Gauge,
pub events_queued: Gauge,
pub events_dropped: Gauge,
pub commands_dropped: Gauge,
pub resident_entries: Gauge,
pub jit_code_bytes: Gauge,
pub jit_data_bytes: Gauge,
pub command_queue_len: Gauge,
pub pending_jobs: Gauge,
pub evictions: Gauge,
pub compilations_dispatched: Gauge,
pub compilations_succeeded: Gauge,
pub compilations_failed: Gauge,
pub compilations_discarded: Gauge,
pub interpreter_fallbacks: Gauge,
pub jit_helper_spawns: Gauge,
pub jit_helper_spawn_failures: Gauge,
pub jit_helper_restarts: Gauge,
pub jit_helper_timeouts: Gauge,
pub jit_helper_disconnects: Gauge,
pub jit_helper_pause_requests: Gauge,
pub jit_helper_pause_acknowledgements: Gauge,
pub jit_helper_pause_failures: Gauge,
pub jit_helper_pause_timeouts: Gauge,
pub jit_helper_resume_requests: Gauge,
pub jit_helper_resume_failures: Gauge,
pub pauses_total: Counter,
pub resumes_total: Counter,
pub paused: Gauge,
pub jit_compilation_duration: Histogram,
pub jit_compilation_duration_last: Gauge,
pub jit_parse_duration: Histogram,
pub jit_translate_duration: Histogram,
pub jit_optimize_duration: Histogram,
pub jit_codegen_duration: Histogram,
}jit and node-api and node only.Expand description
Prometheus metrics for evm2 JIT runtime stats.
Fields§
§lookup_hits: GaugeTotal lookups that returned a compiled function.
lookup_misses: GaugeTotal lookups that returned interpret (not ready).
events_queued: GaugeLookup-observed events currently queued.
events_dropped: GaugeLookup-observed events dropped due to event queue overflow.
commands_dropped: GaugeControl commands dropped because the command channel was full.
resident_entries: GaugeNumber of entries in the resident compiled map.
jit_code_bytes: GaugeApproximate total bytes of compiled machine code in the resident map.
jit_data_bytes: GaugeApproximate total bytes of JIT-related data.
command_queue_len: GaugeNumber of pending control commands queued for the backend.
pending_jobs: GaugeNumber of compilation jobs dispatched but not completed yet.
evictions: GaugeTotal number of entries evicted.
compilations_dispatched: GaugeTotal number of compilations dispatched.
compilations_succeeded: GaugeTotal number of successful compilations.
compilations_failed: GaugeTotal number of failed compilations.
compilations_discarded: GaugeTotal compilation results discarded because the resident cache was cleared while they ran.
interpreter_fallbacks: GaugeTotal number of frames or hosts that fell back to the interpreter.
jit_helper_spawns: GaugeTotal number of JIT helper processes spawned.
jit_helper_spawn_failures: GaugeTotal number of JIT helper process spawn failures.
jit_helper_restarts: GaugeTotal number of JIT helper process restarts.
jit_helper_timeouts: GaugeTotal number of JIT helper job timeouts.
jit_helper_disconnects: GaugeTotal number of JIT helper process disconnects.
jit_helper_pause_requests: GaugeTotal number of JIT helper pause requests.
jit_helper_pause_acknowledgements: GaugeTotal number of JIT helper pause acknowledgements.
jit_helper_pause_failures: GaugeTotal number of JIT helper pause failures.
jit_helper_pause_timeouts: GaugeTotal number of JIT helper pause acknowledgement timeouts.
jit_helper_resume_requests: GaugeTotal number of JIT helper resume requests.
jit_helper_resume_failures: GaugeTotal number of JIT helper resume failures.
pauses_total: CounterTotal number of transitions into paused JIT helper execution.
resumes_total: CounterTotal number of transitions out of paused JIT helper execution.
paused: GaugeWhether JIT helper execution is currently paused.
jit_compilation_duration: HistogramHistogram of total JIT compilation durations in seconds.
jit_compilation_duration_last: GaugeDuration of the last JIT compilation in seconds.
jit_parse_duration: HistogramHistogram of parse phase durations in seconds.
jit_translate_duration: HistogramHistogram of translate phase durations in seconds.
jit_optimize_duration: HistogramHistogram of optimize phase durations in seconds.
jit_codegen_duration: HistogramHistogram of codegen phase durations in seconds.
Implementations§
Source§impl JitMetrics
impl JitMetrics
Sourcepub fn new_with_labels(labels: impl IntoLabels) -> JitMetrics
Available on crate feature evm only.
pub fn new_with_labels(labels: impl IntoLabels) -> JitMetrics
evm only.Creates a new instance of the metrics with the provided labels.
Unlike Self::default, this does not cache the result, so it can be used
to re-register metrics or register with different labels.
Sourcepub fn describe()
Available on crate feature evm only.
pub fn describe()
evm only.Describe all exposed metrics.
Internally, this calls the describe_* macros from the metrics crate
according to the metric type.
This is done only once, to avoid multiple describe calls to the same
recorder. If this is not preferred, you can call Self::force_describe
directly.
See: https://docs.rs/metrics/latest/metrics/index.html#macros
Sourcepub fn force_describe()
Available on crate feature evm only.
pub fn force_describe()
evm only.Unconditionally describes all metrics.
See Self::describe.
Source§impl JitMetrics
impl JitMetrics
Sourcepub fn record(&self, stats: &RuntimeStatsSnapshot)
Available on crate feature evm only.
pub fn record(&self, stats: &RuntimeStatsSnapshot)
evm only.Records a RuntimeStatsSnapshot into the metrics.
Sourcepub fn record_compilation(&self, event: &CompilationEvent)
Available on crate feature evm only.
pub fn record_compilation(&self, event: &CompilationEvent)
evm only.Records a CompilationEvent into the histogram metrics.
Trait Implementations§
Source§impl Clone for JitMetrics
impl Clone for JitMetrics
Source§fn clone(&self) -> JitMetrics
fn clone(&self) -> JitMetrics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for JitMetrics
impl Debug for JitMetrics
Source§impl Default for JitMetrics
impl Default for JitMetrics
Source§fn default() -> JitMetrics
fn default() -> JitMetrics
Creates a new instance of the metrics.
This initializes all metrics and registers them with the global recorder.
Metrics are described only once; see Self::describe.
The result is cached in a static OnceLock, so subsequent calls will
return a clone of the same instance.
Auto Trait Implementations§
impl !RefUnwindSafe for JitMetrics
impl !UnwindSafe for JitMetrics
impl Freeze for JitMetrics
impl Send for JitMetrics
impl Sync for JitMetrics
impl Unpin for JitMetrics
impl UnsafeUnpin for JitMetrics
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].impl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 576 bytes