use crate::{
dto::{
error::Error,
public_status::{
PublicHealth, PublicHistoryRequest, PublicHistorySnapshot, PublicMetric,
PublicMetricsRequest, PublicMetricsSnapshot,
},
},
workflow::metrics::publication::PublicMetricsWorkflow,
};
pub use crate::ops::runtime::public_metrics::ApplicationMetricsSampler;
pub struct PublicStatusApi;
impl PublicStatusApi {
#[must_use]
pub fn health() -> PublicHealth {
PublicMetricsWorkflow::health()
}
#[must_use]
pub fn metrics(request: PublicMetricsRequest) -> PublicMetricsSnapshot {
PublicMetricsWorkflow::read(request)
}
#[must_use]
pub fn history(request: PublicHistoryRequest) -> PublicHistorySnapshot {
PublicMetricsWorkflow::history(request)
}
pub fn set_application_sampler(sample: Option<ApplicationMetricsSampler>) {
PublicMetricsWorkflow::set_application_sampler(sample);
}
pub fn sample_metrics() -> Result<(), Error> {
PublicMetricsWorkflow::sample().map_err(Into::into)
}
pub fn record_application_metrics(metrics: Vec<PublicMetric>) -> Result<(), Error> {
PublicMetricsWorkflow::record_application(metrics).map_err(Into::into)
}
}