diff --git a/api/analytic/analytic.go b/api/analytic/analytic.go index 4fff8b6d..e267f230 100644 --- a/api/analytic/analytic.go +++ b/api/analytic/analytic.go @@ -2,6 +2,10 @@ package analytic import ( "fmt" + "net/http" + "runtime" + "time" + "github.com/0xJacky/Nginx-UI/internal/analytic" "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/shirou/gopsutil/v4/cpu" @@ -10,9 +14,6 @@ import ( "github.com/shirou/gopsutil/v4/net" "github.com/spf13/cast" "github.com/uozi-tech/cosy/logger" - "net/http" - "runtime" - "time" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" @@ -86,12 +87,14 @@ func Analytic(c *gin.Context) { // write err = ws.WriteJSON(stat) - if helper.IsUnexpectedWebsocketError(err) { - logger.Error(err) + if err != nil { + if helper.IsUnexpectedWebsocketError(err) { + logger.Error(err) + } break } - time.Sleep(1000 * time.Microsecond) + time.Sleep(1 * time.Second) } } diff --git a/api/analytic/nodes.go b/api/analytic/nodes.go index 8d4fe9f2..ceccf878 100644 --- a/api/analytic/nodes.go +++ b/api/analytic/nodes.go @@ -1,13 +1,14 @@ package analytic import ( + "net/http" + "time" + "github.com/0xJacky/Nginx-UI/internal/analytic" "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/gin-gonic/gin" "github.com/gorilla/websocket" "github.com/uozi-tech/cosy/logger" - "net/http" - "time" ) func GetNodeStat(c *gin.Context) { @@ -28,8 +29,10 @@ func GetNodeStat(c *gin.Context) { for { // write err = ws.WriteJSON(analytic.GetNodeStat()) - if helper.IsUnexpectedWebsocketError(err) { - logger.Error(err) + if err != nil { + if helper.IsUnexpectedWebsocketError(err) { + logger.Error(err) + } break } @@ -55,8 +58,10 @@ func GetNodesAnalytic(c *gin.Context) { for { // write err = ws.WriteJSON(analytic.NodeMap) - if helper.IsUnexpectedWebsocketError(err) { - logger.Error(err) + if err != nil { + if helper.IsUnexpectedWebsocketError(err) { + logger.Error(err) + } break } diff --git a/api/nginx_log/nginx_log.go b/api/nginx_log/nginx_log.go index e230b513..192a12af 100644 --- a/api/nginx_log/nginx_log.go +++ b/api/nginx_log/nginx_log.go @@ -2,6 +2,7 @@ package nginx_log import ( "encoding/json" + "github.com/0xJacky/Nginx-UI/internal/helper" "github.com/0xJacky/Nginx-UI/internal/nginx" "github.com/0xJacky/Nginx-UI/internal/nginx_log" "github.com/gin-gonic/gin" @@ -252,9 +253,10 @@ func tailNginxLog(ws *websocket.Conn, controlChan chan controlStruct, errChan ch } err = ws.WriteMessage(websocket.TextMessage, []byte(line.Text)) - - if err != nil && websocket.IsUnexpectedCloseError(err, websocket.CloseNormalClosure) { - errChan <- errors.Wrap(err, "error tailNginxLog write message") + if err != nil { + if helper.IsUnexpectedWebsocketError(err) { + errChan <- errors.Wrap(err, "error tailNginxLog write message") + } return } case control = <-controlChan: diff --git a/api/upstream/upstream.go b/api/upstream/upstream.go index 14c39b2a..0cead000 100644 --- a/api/upstream/upstream.go +++ b/api/upstream/upstream.go @@ -36,8 +36,10 @@ func AvailabilityTest(c *gin.Context) { for { err = ws.WriteJSON(upstream.AvailabilityTest(body)) - if helper.IsUnexpectedWebsocketError(err) { - logger.Error(err) + if err != nil { + if helper.IsUnexpectedWebsocketError(err) { + logger.Error(err) + } break } diff --git a/app/src/views/dashboard/ServerAnalytic.vue b/app/src/views/dashboard/ServerAnalytic.vue index ccba53c8..abd8815f 100644 --- a/app/src/views/dashboard/ServerAnalytic.vue +++ b/app/src/views/dashboard/ServerAnalytic.vue @@ -90,10 +90,6 @@ onMounted(() => { }) }) -onUnmounted(() => { - websocket.close() -}) - function handle_uptime(t: number) { // uptime let _uptime = Math.floor(t) diff --git a/app/src/views/dashboard/components/NodeAnalyticItem.vue b/app/src/views/dashboard/components/NodeAnalyticItem.vue index fdc3967d..40b9893b 100644 --- a/app/src/views/dashboard/components/NodeAnalyticItem.vue +++ b/app/src/views/dashboard/components/NodeAnalyticItem.vue @@ -31,7 +31,7 @@ defineProps<{
- 1min:{{ ` ${item.avg_load?.load1?.toFixed(2)}` }} · + 1min:{{ item.avg_load?.load1?.toFixed(2) }} · 5min:{{ item.avg_load?.load5?.toFixed(2) }} · 15min:{{ item.avg_load?.load15?.toFixed(2) }}
@@ -123,6 +123,11 @@ defineProps<{ .longer { width: 180px; } + + .load-avg-describe { + margin-right: 2px; + } + @media (max-width: 400px) { .longer { width: 180px; diff --git a/app/src/views/environment/Environment.vue b/app/src/views/environment/Environment.vue index ad535c80..478aa34b 100644 --- a/app/src/views/environment/Environment.vue +++ b/app/src/views/environment/Environment.vue @@ -8,10 +8,15 @@ import { message } from 'ant-design-vue' const route = useRoute() const curd = ref() +const loadingFromSettings = ref(false) + function loadFromSettings() { + loadingFromSettings.value = true environment.load_from_settings().then(() => { curd.value.get_list() message.success($gettext('Load successfully')) + }).finally(() => { + loadingFromSettings.value = false }) } const selectedNodeIds = ref([]) @@ -25,14 +30,6 @@ function batchUpgrade() { const inTrash = computed(() => { return route.query.trash === 'true' }) - -// const timer = setInterval(() => { -// curd.value.get_list() -// }, 10000) - -// onUnmounted(() => { -// clearInterval(timer) -// })