Skip to main content

LogFileStatsProvider

Struct LogFileStatsProvider 

Source
pub struct LogFileStatsProvider { /* private fields */ }
Expand description

A QueryStatsProvider that extracts stats by parsing Hyper’s JSON log file.

Hyper writes detailed query-end log entries to hyperd.log in JSON-per-line format. This provider:

  1. Records the file offset before each query
  2. After the query, reads new log entries from that offset
  3. Finds the matching query-end entry by query text prefix
  4. Parses the JSON stats into a QueryStats struct

§Example

use hyperdb_api::LogFileStatsProvider;

// From an explicit path
let provider = LogFileStatsProvider::new("/path/to/hyperd.log");

// From a HyperProcess (auto-detects log path)
// let provider = LogFileStatsProvider::from_process(&hyper);

Implementations§

Source§

impl LogFileStatsProvider

Source

pub fn new(log_path: impl Into<PathBuf>) -> Self

Creates a new provider that reads from the given log file path.

The path should point to the hyperd.log file written by the Hyper server.

Source

pub fn from_process(process: &HyperProcess) -> Self

Creates a new provider by auto-detecting the log path from a HyperProcess.

The log file is expected at <log_dir>/hyperd.log.

Source

pub fn log_path(&self) -> &Path

Returns the log file path this provider reads from.

Trait Implementations§

Source§

impl Debug for LogFileStatsProvider

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl QueryStatsProvider for LogFileStatsProvider

Source§

fn before_query(&self, _sql: &str) -> Box<dyn Any + Send>

Called before a query is executed. Read more
Source§

fn after_query( &self, token: Box<dyn Any + Send>, sql: &str, ) -> Option<QueryStats>

Called after a query completes. Read more

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.

Source§

impl<T> Instrument for T

Source§

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

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

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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,