Struct TelemetrySvc

Source
pub struct TelemetrySvc;
Expand description

The telemetry service.

This is supposed to be used with the scuffle-bootstrap crate.

§HTTP Server

This service provides an http server which will bind to the address provided by the config. (See TelemetryConfig)

§Endpoints

The server provides the following endpoints:

§/health

Health check endpoint.

This endpoint calls the health check function provided by the config and responds with 200 OK if the health check returns Ok(()). If the health check returns an error, the endpoint returns 500 Internal Server Error along with the error message.

§/metrics

Metrics endpoint which can be used by Prometheus to scrape metrics.

This endpoint is only enabled if the prometheus feature flag is enabled and a metrics registry is provided through the config.

§/pprof/cpu (Unix only)

pprof cpu endpoint to capture a cpu profile.

§Query Parameters
  • freq: Sampling frequency in Hz.
  • duration: Duration the profile should be captured for in s.
  • ignore: List of functions to exclude from the profile.

This endpoint is only enabled if the pprof feature flag is enabled.

§/opentelemetry/flush

OpenTelemetry flush endpoint.

This endpoint is only enabled if one of the opentelemetry feature flags is enabled and an OpenTelemetry config is provided through the config.

Trait Implementations§

Source§

impl<Global: TelemetryConfig> Service<Global> for TelemetrySvc

Source§

async fn enabled(&self, global: &Arc<Global>) -> Result<bool>

Initialize the service and return Ok(true) if the service should be run.
Source§

async fn run(self, global: Arc<Global>, ctx: Context) -> Result<()>

Run the service. This function should return a future that is pending as long as the service is running. When the service finishes without any errors, the future should resolve to Ok(()). As a best practice, the service should stop as soon as the provided context is done. Read more
§

fn name(&self) -> Option<&'static str>

Returns the name of the service, if any.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more