syntax = "proto3"; option go_package = "./pb"; package pb; import "models/model_server_stat_board.proto"; import "models/model_node_value.proto"; import "models/model_metric_chart.proto"; import "models/model_metric_stat.proto"; import "models/model_server_bandwidth_stat.proto"; // 统计看板 service ServerStatBoardService { // 读取所有看板 rpc findAllEnabledServerStatBoards (FindAllEnabledServerStatBoardsRequest) returns (FindAllEnabledServerStatBoardsResponse); // 组合集群看板数据 rpc composeServerStatNodeClusterBoard (ComposeServerStatNodeClusterBoardRequest) returns (ComposeServerStatNodeClusterBoardResponse); // 组合节点看板数据 rpc composeServerStatNodeBoard (ComposeServerStatNodeBoardRequest) returns (ComposeServerStatNodeBoardResponse); // 组合服务看板数据 rpc composeServerStatBoard (ComposeServerStatBoardRequest) returns (ComposeServerStatBoardResponse); } // 读取所有看板 message FindAllEnabledServerStatBoardsRequest { int64 nodeClusterId = 1; } message FindAllEnabledServerStatBoardsResponse { repeated ServerStatBoard serverStatBoards = 1; } // 组合集群看板数据 message ComposeServerStatNodeClusterBoardRequest { int64 nodeClusterId = 1; } message ComposeServerStatNodeClusterBoardResponse { int64 countActiveNodes = 1; // 在线节点 int64 countInactiveNodes = 2; // 离线节点 int64 countServers = 3; // 服务数量 int64 countUsers = 4; // 用户数量 int64 monthlyTrafficBytes = 5; // 当月流量 int64 dailyTrafficBytes = 6; // 当日流量 int64 lastDailyTrafficBytes = 7; // 昨日流量 repeated DailyTrafficStat dailyTrafficStats = 30; repeated HourlyTrafficStat hourlyTrafficStats = 31; repeated NodeStat topNodeStats = 32; repeated NodeValue cpuNodeValues = 34; repeated NodeValue memoryNodeValues = 35; repeated NodeValue loadNodeValues = 36; repeated MetricDataChart metricDataCharts = 37; // 指标图表 // 日流量统计 message DailyTrafficStat { string day = 1; int64 bytes = 2; int64 cachedBytes = 3; int64 countRequests = 4; int64 countCachedRequests = 5; int64 countAttackRequests = 6; int64 attackBytes = 7; } // 小时流量统计 message HourlyTrafficStat { string hour = 1; int64 bytes = 2; int64 cachedBytes = 3; int64 countRequests = 4; int64 countCachedRequests = 5; int64 countAttackRequests = 6; int64 attackBytes = 7; } // 节点统计 message NodeStat { int64 nodeId = 1; string nodeName = 2; int64 countRequests = 3; int64 bytes = 4; int64 countAttackRequests = 6; int64 attackBytes = 7; } } // 组合节点看板数据 message ComposeServerStatNodeBoardRequest { int64 nodeId = 1; // 节点ID } message ComposeServerStatNodeBoardResponse { bool isActive = 1; int64 trafficInBytes = 2; int64 trafficOutBytes = 3; int64 countRequests = 4; int64 countAttackRequests = 5; int64 countConnections = 6; int64 cacheDiskSize = 7; int64 cacheMemorySize = 8; float cpuUsage = 9; float memoryUsage = 10; int64 memoryTotalSize = 11; float load = 12; int64 monthlyTrafficBytes = 13; // 当月流量 int64 dailyTrafficBytes = 14; // 当日流量 int64 lastDailyTrafficBytes = 15; // 昨日流量 repeated DailyTrafficStat dailyTrafficStats = 31; repeated HourlyTrafficStat hourlyTrafficStats = 32; repeated NodeValue cpuNodeValues = 34; // CPU数据 repeated NodeValue memoryNodeValues = 35; // 内存数据 repeated NodeValue loadNodeValues = 36; // 负载数据 repeated NodeValue cacheDirsValues = 38; // 缓存目录数据 repeated NodeValue networkPacketsValues = 39; // 网络数据包数据 repeated MetricDataChart metricDataCharts = 37; message DailyTrafficStat { string day = 1; int64 bytes = 2; int64 cachedBytes = 3; int64 countRequests = 4; int64 countCachedRequests = 5; int64 countAttackRequests = 6; int64 attackBytes = 7; } message HourlyTrafficStat { string hour = 1; int64 bytes = 2; int64 cachedBytes = 3; int64 countRequests = 4; int64 countCachedRequests = 5; int64 countAttackRequests = 6; int64 attackBytes = 7; } } // 组合服务看板数据 message ComposeServerStatBoardRequest { int64 serverId = 1; } message ComposeServerStatBoardResponse { int64 minutelyPeekBandwidthBytes = 5; // 当前带宽(N分钟峰值) int64 dailyPeekBandwidthBytes = 2; // 当天带宽峰值 int64 monthlyPeekBandwidthBytes = 3; // 当月带宽峰值 int64 lastMonthlyPeekBandwidthBytes = 4; // 上个月带宽峰值 int64 dailyCountIPs = 9; // 当天独立IP int64 dailyTrafficBytes = 10; // 当天流量 int32 bandwidthPercentile = 7; repeated ServerBandwidthStat minutelyBandwidthStats = 1; // 分钟级的带宽统计 ServerBandwidthStat minutelyNthBandwidthStat = 8; repeated DailyTrafficStat dailyTrafficStats = 30; repeated HourlyTrafficStat hourlyTrafficStats = 31; repeated NodeStat topNodeStats = 32; repeated CountryStat topCountryStats = 35; repeated MetricDataChart metricDataCharts = 34; message DailyTrafficStat { string day = 1; int64 bytes = 2; int64 cachedBytes = 3; int64 countRequests = 4; int64 countCachedRequests = 5; int64 countAttackRequests = 6; int64 attackBytes = 7; } message HourlyTrafficStat { string hour = 1; int64 bytes = 2; int64 cachedBytes = 3; int64 countRequests = 4; int64 countCachedRequests = 5; int64 countAttackRequests = 6; int64 attackBytes = 7; } message NodeStat { int64 nodeId = 1; string nodeName = 2; int64 countRequests = 3; int64 bytes = 4; int64 countAttackRequests = 6; int64 attackBytes = 7; } message CountryStat { string countryName = 1; int64 bytes = 2; int64 countRequests = 3; float percent = 4; // 流量占比 int64 countAttackRequests = 6; int64 attackBytes = 7; } } // 矩阵数据 message MetricDataChart { MetricChart metricChart = 1; repeated MetricStat metricStats = 2; }