use crate::{
dto::{
metrics::{MetricEntry, MetricsKind},
page::{Page, PageRequest},
},
ops::runtime::metrics,
workflow::view::paginate::paginate_vec,
};
pub struct MetricsQuery;
impl MetricsQuery {
#[must_use]
pub fn page(kind: MetricsKind, page: PageRequest) -> Page<MetricEntry> {
let mut entries = metrics::entries(kind);
entries.sort_by(|a, b| {
a.labels
.cmp(&b.labels)
.then_with(|| a.principal.cmp(&b.principal))
});
paginate_vec(entries, page)
}
}