syntax = "proto3"; option go_package = "./pb"; package pb; import "models/rpc_messages.proto"; import "models/model_http_firewall_rule_group.proto"; // 防火墙全局服务 service FirewallService { // 组合看板数据 rpc composeFirewallGlobalBoard (ComposeFirewallGlobalBoardRequest) returns (ComposeFirewallGlobalBoardResponse); // 发送告警(notify)消息 rpc notifyHTTPFirewallEvent (NotifyHTTPFirewallEventRequest) returns (RPCSuccess); // 读取当前Block动作次数 rpc countFirewallDailyBlocks(CountFirewallDailyBlocksRequest) returns (CountFirewallDailyBlocksResponse); } // 组合看板数据 message ComposeFirewallGlobalBoardRequest { } message ComposeFirewallGlobalBoardResponse { int64 countDailyLogs = 1; int64 countDailyBlocks = 2; int64 countDailyCaptcha = 3; int64 countWeeklyBlocks = 4; repeated HTTPFirewallRuleGroupStat httpFirewallRuleGroups = 30; repeated DailyStat dailyStats = 31; repeated HourlyStat hourlyStats = 32; repeated NodeStat topNodeStats = 33; repeated DomainStat topDomainStats = 34; repeated CountryStat topCountryStats = 35; message HTTPFirewallRuleGroupStat { HTTPFirewallRuleGroup httpFirewallRuleGroup = 1; int64 count = 2; } message HourlyStat { string hour = 1; int64 countLogs = 2; int64 countCaptcha = 3; int64 countBlocks = 4; } message DailyStat { string day = 1; int64 countLogs = 2; int64 countCaptcha = 3; int64 countBlocks = 4; } message NodeStat { int64 nodeId = 1; string nodeName = 2; int64 countRequests = 3; int64 bytes = 4; int64 countAttackRequests = 6; int64 attackBytes = 7; } message DomainStat { int64 serverId = 1; string domain = 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; } } // 发送告警(notify)消息 message NotifyHTTPFirewallEventRequest { int64 serverId = 1; int64 httpFirewallPolicyId = 2; int64 httpFirewallRuleGroupId = 3; int64 httpFirewallRuleSetId = 4; int64 createdAt = 5; } // 读取当前Block动作次数 message CountFirewallDailyBlocksRequest { } message CountFirewallDailyBlocksResponse { int64 countBlocks = 1; }