fix: prune stale agent traffic counters

This commit is contained in:
sagitchu
2026-04-30 09:54:02 +08:00
parent f05e9480ee
commit b4192c9e94
6 changed files with 178 additions and 5 deletions
+8
View File
@@ -8,6 +8,7 @@ import (
"github.com/go-gost/x/config/loader"
"github.com/go-gost/x/config/parsing/parser"
"github.com/go-gost/x/registry"
xservice "github.com/go-gost/x/service"
)
// swagger:parameters reloadConfigRequest
@@ -42,6 +43,13 @@ func reloadConfig(ctx *gin.Context) {
writeError(ctx, NewError(http.StatusBadRequest, ErrCodeInvalid, err.Error()))
return
}
activeServices := make(map[string]struct{}, len(cfg.Services))
for _, svc := range cfg.Services {
if svc != nil {
activeServices[svc.Name] = struct{}{}
}
}
xservice.GetGlobalTrafficManager().RetainServices(activeServices)
for _, svc := range registry.ServiceRegistry().GetAll() {
svc := svc
+8
View File
@@ -14,6 +14,7 @@ import (
parser "github.com/go-gost/x/config/parsing/service"
kill "github.com/go-gost/x/internal/util/port"
"github.com/go-gost/x/registry"
xservice "github.com/go-gost/x/service"
)
// swagger:parameters createServiceRequest
@@ -409,6 +410,7 @@ func deleteService(ctx *gin.Context) {
}
return nil
})
xservice.GetGlobalTrafficManager().RemoveServices(name)
ctx.JSON(http.StatusOK, Response{
Msg: "OK",
@@ -484,6 +486,12 @@ func deleteServices(ctx *gin.Context) {
return nil
})
names := make([]string, 0, len(servicesToDelete))
for _, std := range servicesToDelete {
names = append(names, std.name)
}
xservice.GetGlobalTrafficManager().RemoveServices(names...)
ctx.JSON(http.StatusOK, Response{
Msg: "OK",
})