mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-05 22:21:31 +00:00
feat: guest metrics support (#46)
* feat: initial support for idm send in daemon * feat: implement IdmClient backend support * feat: daemon idm now uses IdmClient * fix: implement channel destruction propagation * feat: implement request response idm system * feat: implement metrics support * proto: move metrics into GuestMetrics for reusability * fix: log level of guest agent was trace * feat: metrics tree with process information
This commit is contained in:
27
crates/daemon/src/metrics.rs
Normal file
27
crates/daemon/src/metrics.rs
Normal file
@ -0,0 +1,27 @@
|
||||
use krata::{
|
||||
idm::protocol::{IdmMetricFormat, IdmMetricNode},
|
||||
v1::common::{GuestMetricFormat, GuestMetricNode},
|
||||
};
|
||||
|
||||
fn idm_metric_format_to_api(format: IdmMetricFormat) -> GuestMetricFormat {
|
||||
match format {
|
||||
IdmMetricFormat::Unknown => GuestMetricFormat::Unknown,
|
||||
IdmMetricFormat::Bytes => GuestMetricFormat::Bytes,
|
||||
IdmMetricFormat::Integer => GuestMetricFormat::Integer,
|
||||
IdmMetricFormat::DurationSeconds => GuestMetricFormat::DurationSeconds,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn idm_metric_to_api(node: IdmMetricNode) -> GuestMetricNode {
|
||||
let format = node.format();
|
||||
GuestMetricNode {
|
||||
name: node.name,
|
||||
value: node.value,
|
||||
format: idm_metric_format_to_api(format).into(),
|
||||
children: node
|
||||
.children
|
||||
.into_iter()
|
||||
.map(idm_metric_to_api)
|
||||
.collect::<Vec<_>>(),
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user