pub struct MetricsAssert<T> { /* private fields */ }Expand description
Provides fluent test assertions for metrics.
§Examples
use ic_metrics_assert::{MetricsAssert, PocketIcHttpQuery};
use pocket_ic::PocketIc;
use ic_management_canister_types::CanisterId;
struct Setup {
env: PocketIc,
canister_id : CanisterId,
}
impl Setup {
pub fn check_metrics(self) -> MetricsAssert<Self> {
MetricsAssert::from_http_query(self)
}
}
impl PocketIcHttpQuery for Setup {
fn get_pocket_ic(&self) -> &PocketIc {
&self.env
}
fn get_canister_id(&self) -> CanisterId {
self.canister_id
}
}
fn assert_metrics () {
use pocket_ic::PocketIcBuilder;
use candid::Principal;
let env = PocketIcBuilder::new().build();
let canister_id = Principal::from_text("7hfb6-caaaa-aaaar-qadga-cai").unwrap();
let setup = Setup {env, canister_id};
setup
.check_metrics()
.assert_contains_metric_matching("started action \\d+")
.assert_contains_metric_matching("completed action 1")
.assert_does_not_contain_metric_matching(".*trap.*");
}Implementations§
Source§impl<T> MetricsAssert<T>
impl<T> MetricsAssert<T>
Sourcepub fn from_http_query<E>(actual: T) -> Selfwhere
T: CanisterHttpQuery<E>,
E: Debug,
pub fn from_http_query<E>(actual: T) -> Selfwhere
T: CanisterHttpQuery<E>,
E: Debug,
Initializes an instance of MetricsAssert by querying the metrics from the /metrics
endpoint of a canister via the CanisterHttpQuery::http_query method.
Sourcepub async fn from_async_http_query<E>(actual: T) -> Selfwhere
T: AsyncCanisterHttpQuery<E>,
E: Debug,
pub async fn from_async_http_query<E>(actual: T) -> Selfwhere
T: AsyncCanisterHttpQuery<E>,
E: Debug,
Initializes an instance of MetricsAssert by querying the metrics from the /metrics
endpoint of a canister via the AsyncCanisterHttpQuery::http_query method.
Sourcepub fn assert_contains_metric_matching<P: AsRef<str> + Display>(
self,
pattern: P,
) -> Self
pub fn assert_contains_metric_matching<P: AsRef<str> + Display>( self, pattern: P, ) -> Self
Asserts that the metrics contain at least one entry matching the given Regex pattern.
Sourcepub fn assert_does_not_contain_metric_matching(self, pattern: &str) -> Self
pub fn assert_does_not_contain_metric_matching(self, pattern: &str) -> Self
Asserts that the metrics do not contain any entries matching the given Regex pattern.
Sourcepub fn find_metrics_matching(&self, pattern: &str) -> Vec<String>
pub fn find_metrics_matching(&self, pattern: &str) -> Vec<String>
Find metrics matching the given pattern.
Auto Trait Implementations§
impl<T> Freeze for MetricsAssert<T>where
T: Freeze,
impl<T> RefUnwindSafe for MetricsAssert<T>where
T: RefUnwindSafe,
impl<T> Send for MetricsAssert<T>where
T: Send,
impl<T> Sync for MetricsAssert<T>where
T: Sync,
impl<T> Unpin for MetricsAssert<T>where
T: Unpin,
impl<T> UnwindSafe for MetricsAssert<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more