更新Swaggers API
This commit is contained in:
@@ -219,6 +219,12 @@ func (s *Server) handleStats(w http.ResponseWriter, r *http.Request) {
|
||||
// 格式化平均响应时间为两位小数
|
||||
formattedResponseTime := float64(int(dnsStats.AvgResponseTime*100)) / 100
|
||||
|
||||
// 计算DNSSEC使用率
|
||||
dnssecUsage := float64(0)
|
||||
if dnsStats.Queries > 0 {
|
||||
dnssecUsage = float64(dnsStats.DNSSECQueries) / float64(dnsStats.Queries) * 100
|
||||
}
|
||||
|
||||
// 构建响应数据,确保所有字段都反映服务器的真实状态
|
||||
stats := map[string]interface{}{
|
||||
"dns": map[string]interface{}{
|
||||
@@ -232,12 +238,21 @@ func (s *Server) handleStats(w http.ResponseWriter, r *http.Request) {
|
||||
"QueryTypes": dnsStats.QueryTypes,
|
||||
"SourceIPs": dnsStats.SourceIPs,
|
||||
"CpuUsage": dnsStats.CpuUsage,
|
||||
"DNSSECQueries": dnsStats.DNSSECQueries,
|
||||
"DNSSECSuccess": dnsStats.DNSSECSuccess,
|
||||
"DNSSECFailed": dnsStats.DNSSECFailed,
|
||||
"DNSSECEnabled": dnsStats.DNSSECEnabled,
|
||||
},
|
||||
"shield": shieldStats,
|
||||
"topQueryType": topQueryType,
|
||||
"activeIPs": activeIPCount,
|
||||
"avgResponseTime": formattedResponseTime,
|
||||
"cpuUsage": dnsStats.CpuUsage,
|
||||
"dnssecEnabled": dnsStats.DNSSECEnabled,
|
||||
"dnssecQueries": dnsStats.DNSSECQueries,
|
||||
"dnssecSuccess": dnsStats.DNSSECSuccess,
|
||||
"dnssecFailed": dnsStats.DNSSECFailed,
|
||||
"dnssecUsage": float64(int(dnssecUsage*100)) / 100, // 保留两位小数
|
||||
"time": time.Now(),
|
||||
}
|
||||
|
||||
@@ -355,6 +370,12 @@ func (s *Server) buildStatsData() map[string]interface{} {
|
||||
// 格式化平均响应时间
|
||||
formattedResponseTime := float64(int(dnsStats.AvgResponseTime*100)) / 100
|
||||
|
||||
// 计算DNSSEC使用率
|
||||
dnssecUsage := float64(0)
|
||||
if dnsStats.Queries > 0 {
|
||||
dnssecUsage = float64(dnsStats.DNSSECQueries) / float64(dnsStats.Queries) * 100
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
"dns": map[string]interface{}{
|
||||
"Queries": dnsStats.Queries,
|
||||
@@ -367,12 +388,21 @@ func (s *Server) buildStatsData() map[string]interface{} {
|
||||
"QueryTypes": dnsStats.QueryTypes,
|
||||
"SourceIPs": dnsStats.SourceIPs,
|
||||
"CpuUsage": dnsStats.CpuUsage,
|
||||
"DNSSECQueries": dnsStats.DNSSECQueries,
|
||||
"DNSSECSuccess": dnsStats.DNSSECSuccess,
|
||||
"DNSSECFailed": dnsStats.DNSSECFailed,
|
||||
"DNSSECEnabled": dnsStats.DNSSECEnabled,
|
||||
},
|
||||
"shield": shieldStats,
|
||||
"topQueryType": topQueryType,
|
||||
"activeIPs": activeIPCount,
|
||||
"avgResponseTime": formattedResponseTime,
|
||||
"cpuUsage": dnsStats.CpuUsage,
|
||||
"dnssecEnabled": dnsStats.DNSSECEnabled,
|
||||
"dnssecQueries": dnsStats.DNSSECQueries,
|
||||
"dnssecSuccess": dnsStats.DNSSECSuccess,
|
||||
"dnssecFailed": dnsStats.DNSSECFailed,
|
||||
"dnssecUsage": float64(int(dnssecUsage*100)) / 100, // 保留两位小数
|
||||
}
|
||||
}
|
||||
|
||||
@@ -709,19 +739,25 @@ func (s *Server) handleTopDomains(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// 合并并去重域名统计
|
||||
domainMap := make(map[string]int64)
|
||||
dnssecStatusMap := make(map[string]bool)
|
||||
|
||||
for _, domain := range blockedDomains {
|
||||
domainMap[domain.Domain] += domain.Count
|
||||
dnssecStatusMap[domain.Domain] = domain.DNSSEC
|
||||
}
|
||||
for _, domain := range resolvedDomains {
|
||||
domainMap[domain.Domain] += domain.Count
|
||||
dnssecStatusMap[domain.Domain] = domain.DNSSEC
|
||||
}
|
||||
|
||||
// 转换为切片并排序
|
||||
domainList := make([]map[string]interface{}, 0, len(domainMap))
|
||||
for domain, count := range domainMap {
|
||||
dnssec, hasDNSSEC := dnssecStatusMap[domain]
|
||||
domainList = append(domainList, map[string]interface{}{
|
||||
"domain": domain,
|
||||
"count": count,
|
||||
"dnssec": hasDNSSEC && dnssec,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user