metrics #3
29
src/data.rs
29
src/data.rs
@ -1733,3 +1733,32 @@ impl BrainData {
|
|||||||
self.app_contracts.write().unwrap().push(app_contracts);
|
self.app_contracts.write().unwrap().push(app_contracts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl BrainData {
|
||||||
|
pub fn metrics(&self) -> Result<String, Error> {
|
||||||
|
let app_nodes_read = self.app_nodes.read().unwrap();
|
||||||
|
let app_node_no = app_nodes_read.len();
|
||||||
|
drop(app_nodes_read);
|
||||||
|
let vm_nodes_read = self.vm_nodes.read().unwrap();
|
||||||
|
let vm_node_no = vm_nodes_read.len();
|
||||||
|
drop(vm_nodes_read);
|
||||||
|
let app_contract_no = self.list_all_app_contracts().len();
|
||||||
|
let vm_contract_no = self.list_all_contracts().len();
|
||||||
|
let account_no = self.list_accounts().len();
|
||||||
|
let operator_no = self.list_operators().len();
|
||||||
|
let locations = String::from("wip");
|
||||||
|
|
||||||
|
let metrics = vec![
|
||||||
|
format!("app_nodes {app_node_no}"),
|
||||||
|
format!("vm_nodes {vm_node_no}"),
|
||||||
|
format!("app_contracts {app_contract_no}"),
|
||||||
|
format!("vm_contracts {vm_contract_no}"),
|
||||||
|
format!("operators {operator_no}"),
|
||||||
|
format!("accounts {account_no}"),
|
||||||
|
format!("locations {locations}"),
|
||||||
|
]
|
||||||
|
.join("\n");
|
||||||
|
|
||||||
|
Ok(metrics)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -20,11 +20,7 @@ pub async fn http_metrics_server(listen_address: SocketAddr, state: Arc<BrainDat
|
|||||||
|
|
||||||
#[get("/metrics")]
|
#[get("/metrics")]
|
||||||
async fn homepage(data: web::Data<Arc<BrainData>>) -> impl Responder {
|
async fn homepage(data: web::Data<Arc<BrainData>>) -> impl Responder {
|
||||||
let vm_contracts = data.get_ref().list_all_contracts();
|
let metrics_data = data.get_ref().metrics().unwrap_or_default();
|
||||||
let app_contracts = data.get_ref().list_all_app_contracts();
|
|
||||||
let text = format!(
|
HttpResponse::Ok().body(metrics_data)
|
||||||
"App contracts: {:#?}\n\nVM contracts: {:#?}",
|
|
||||||
app_contracts, vm_contracts
|
|
||||||
);
|
|
||||||
HttpResponse::Ok().body(text)
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user