use near_primitives_core::hash::CryptoHash;
use serde::Serialize;
use crate::types::BlockHeight;
use crate::types::AccountId;
#[derive(Serialize, Debug)]
pub struct TelemetryAgentInfo {
pub name: String,
pub version: String,
pub build: String,
}
#[derive(Serialize, Debug)]
pub struct TelemetrySystemInfo {
pub bandwidth_download: u64,
pub bandwidth_upload: u64,
pub cpu_usage: f32,
pub memory_usage: u64,
pub boot_time_seconds: i64,
}
#[derive(Serialize, Debug)]
pub struct TelemetryChainInfo {
pub node_id: String,
pub account_id: Option<AccountId>,
pub is_validator: bool,
pub status: String,
pub latest_block_hash: CryptoHash,
pub latest_block_height: BlockHeight,
pub num_peers: usize,
pub block_production_tracking_delay: f64,
pub min_block_production_delay: f64,
pub max_block_production_delay: f64,
pub max_block_wait_delay: f64,
}
#[derive(Serialize, Debug)]
pub struct TelemetryInfo {
pub agent: TelemetryAgentInfo,
pub system: TelemetrySystemInfo,
pub chain: TelemetryChainInfo,
pub extra_info: String,
}