introduce uptime monitor for easytier public nodes (#1250)

This commit is contained in:
Sijie.Sun
2025-08-20 22:59:44 +08:00
committed by GitHub
parent 8f37d4ef7c
commit e6ec7f405c
61 changed files with 12122 additions and 17 deletions
+7 -1
View File
@@ -40,7 +40,9 @@ use crate::{
self, list_global_foreign_network_response::OneForeignNetwork,
ListGlobalForeignNetworkResponse,
},
peer_rpc::{ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey},
peer_rpc::{
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, RouteForeignNetworkSummary,
},
},
tunnel::{
self,
@@ -953,6 +955,10 @@ impl PeerManager {
resp
}
pub async fn get_foreign_network_summary(&self) -> RouteForeignNetworkSummary {
self.get_route().get_foreign_network_summary().await
}
async fn run_nic_packet_process_pipeline(&self, data: &mut ZCPacket) {
if !self
.global_ctx
+15 -4
View File
@@ -1,5 +1,5 @@
use std::{
collections::BTreeSet,
collections::{BTreeMap, BTreeSet},
fmt::Debug,
net::{Ipv4Addr, Ipv6Addr},
sync::{
@@ -35,9 +35,10 @@ use crate::{
proto::{
common::{Ipv4Inet, NatType, StunInfo},
peer_rpc::{
route_foreign_network_infos, ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey,
OspfRouteRpc, OspfRouteRpcClientFactory, OspfRouteRpcServer, PeerIdVersion,
RouteForeignNetworkInfos, RoutePeerInfo, RoutePeerInfos, SyncRouteInfoError,
route_foreign_network_infos, route_foreign_network_summary,
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, OspfRouteRpc,
OspfRouteRpcClientFactory, OspfRouteRpcServer, PeerIdVersion, RouteForeignNetworkInfos,
RouteForeignNetworkSummary, RoutePeerInfo, RoutePeerInfos, SyncRouteInfoError,
SyncRouteInfoRequest, SyncRouteInfoResponse,
},
rpc_types::{
@@ -2320,6 +2321,16 @@ impl Route for PeerRoute {
foreign_networks
}
async fn get_foreign_network_summary(&self) -> RouteForeignNetworkSummary {
let mut info_map: BTreeMap<PeerId, route_foreign_network_summary::Info> = BTreeMap::new();
for item in self.service_impl.synced_route_info.foreign_network.iter() {
let entry = info_map.entry(item.key().peer_id).or_default();
entry.network_count += 1;
entry.peer_count += item.value().foreign_peer_ids.len() as u32;
}
RouteForeignNetworkSummary { info_map }
}
async fn list_peers_own_foreign_network(
&self,
network_identity: &NetworkIdentity,
+5 -1
View File
@@ -9,7 +9,7 @@ use crate::{
common::{global_ctx::NetworkIdentity, PeerId},
proto::peer_rpc::{
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, RouteForeignNetworkInfos,
RoutePeerInfo,
RouteForeignNetworkSummary, RoutePeerInfo,
},
};
@@ -102,6 +102,10 @@ pub trait Route {
Default::default()
}
async fn get_foreign_network_summary(&self) -> RouteForeignNetworkSummary {
Default::default()
}
// my peer id in foreign network is different from the one in local network
// this function is used to get the peer id in local network
async fn get_origin_my_peer_id(