mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 13:10:26 +08:00 
			
		
		
		
	节点运行日志增加标签筛选
This commit is contained in:
		
							
								
								
									
										27
									
								
								internal/utils/nodelogutils/utils.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								internal/utils/nodelogutils/utils.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
 | 
			
		||||
//go:build community
 | 
			
		||||
// +build community
 | 
			
		||||
 | 
			
		||||
package nodelogutils
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/iwind/TeaGo/maps"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// FindCommonTags 查找常用的标签
 | 
			
		||||
func FindNodeCommonTags() []maps.Map {
 | 
			
		||||
	return []maps.Map{
 | 
			
		||||
		{
 | 
			
		||||
			"name": "端口监听",
 | 
			
		||||
			"code": "LISTENER",
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name": "WAF",
 | 
			
		||||
			"code": "WAF",
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			"name": "访问日志",
 | 
			
		||||
			"code": "ACCESS_LOG",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package node
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/utils/nodelogutils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/cluster/node/nodeutils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
			
		||||
@@ -23,6 +24,7 @@ func (this *LogsAction) RunGet(params struct {
 | 
			
		||||
	DayTo   string
 | 
			
		||||
	Keyword string
 | 
			
		||||
	Level   string
 | 
			
		||||
	Tag     string
 | 
			
		||||
}) {
 | 
			
		||||
	// 初始化节点信息(用于菜单)
 | 
			
		||||
	_, err := nodeutils.InitNodeInfo(this.Parent(), params.NodeId)
 | 
			
		||||
@@ -31,11 +33,14 @@ func (this *LogsAction) RunGet(params struct {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.Data["tags"] = nodelogutils.FindNodeCommonTags()
 | 
			
		||||
 | 
			
		||||
	this.Data["nodeId"] = params.NodeId
 | 
			
		||||
	this.Data["dayFrom"] = params.DayFrom
 | 
			
		||||
	this.Data["dayTo"] = params.DayTo
 | 
			
		||||
	this.Data["keyword"] = params.Keyword
 | 
			
		||||
	this.Data["level"] = params.Level
 | 
			
		||||
	this.Data["tag"] = params.Tag
 | 
			
		||||
 | 
			
		||||
	countResp, err := this.RPC().NodeLogRPC().CountNodeLogs(this.AdminContext(), &pb.CountNodeLogsRequest{
 | 
			
		||||
		Role:    "node",
 | 
			
		||||
@@ -44,6 +49,7 @@ func (this *LogsAction) RunGet(params struct {
 | 
			
		||||
		DayTo:   params.DayTo,
 | 
			
		||||
		Keyword: params.Keyword,
 | 
			
		||||
		Level:   params.Level,
 | 
			
		||||
		Tag:     params.Tag,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		this.ErrorPage(err)
 | 
			
		||||
@@ -59,6 +65,7 @@ func (this *LogsAction) RunGet(params struct {
 | 
			
		||||
		DayTo:   params.DayTo,
 | 
			
		||||
		Keyword: params.Keyword,
 | 
			
		||||
		Level:   params.Level,
 | 
			
		||||
		Tag:     params.Tag,
 | 
			
		||||
		Offset:  page.Offset,
 | 
			
		||||
		Size:    page.Size,
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package logs
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/utils/nodelogutils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs"
 | 
			
		||||
	"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
 | 
			
		||||
@@ -26,12 +27,17 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
	Keyword string
 | 
			
		||||
	Level   string
 | 
			
		||||
	Type    string
 | 
			
		||||
	Tag     string
 | 
			
		||||
}) {
 | 
			
		||||
	this.Data["dayFrom"] = params.DayFrom
 | 
			
		||||
	this.Data["dayTo"] = params.DayTo
 | 
			
		||||
	this.Data["keyword"] = params.Keyword
 | 
			
		||||
	this.Data["level"] = params.Level
 | 
			
		||||
	this.Data["type"] = params.Type
 | 
			
		||||
	this.Data["tag"] = params.Tag
 | 
			
		||||
 | 
			
		||||
	// 常见标签
 | 
			
		||||
	this.Data["tags"] = nodelogutils.FindNodeCommonTags()
 | 
			
		||||
 | 
			
		||||
	// 未读数量
 | 
			
		||||
	countUnreadResp, err := this.RPC().NodeLogRPC().CountNodeLogs(this.AdminContext(), &pb.CountNodeLogsRequest{
 | 
			
		||||
@@ -53,6 +59,7 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
		Keyword:  params.Keyword,
 | 
			
		||||
		Level:    params.Level,
 | 
			
		||||
		IsUnread: params.Type == "unread",
 | 
			
		||||
		Tag:      params.Tag,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		this.ErrorPage(err)
 | 
			
		||||
@@ -70,6 +77,7 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
		Keyword:  params.Keyword,
 | 
			
		||||
		Level:    params.Level,
 | 
			
		||||
		IsUnread: params.Type == "unread",
 | 
			
		||||
		Tag:      params.Tag,
 | 
			
		||||
		Offset:   page.Offset,
 | 
			
		||||
		Size:     page.Size,
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
@@ -266,7 +266,7 @@ func (this *IndexAction) RunGet(params struct {
 | 
			
		||||
		Role:       nodeconfigs.NodeRoleNode,
 | 
			
		||||
		Offset:     0,
 | 
			
		||||
		Size:       20,
 | 
			
		||||
		Level:      "",
 | 
			
		||||
		Level:      "error,success,warning",
 | 
			
		||||
		FixedState: int32(configutils.BoolStateNo),
 | 
			
		||||
		AllServers: true,
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
@@ -21,13 +21,19 @@
 | 
			
		||||
                <option value="success">成功</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <select class="ui dropdown" name="tag" v-model="tag">
 | 
			
		||||
                <option value="">[标签]</option>
 | 
			
		||||
                <option v-for="tag in tags" :value="tag.code">{{tag.name}}</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <input type="text" name="keyword" style="width:10em" v-model="keyword" placeholder="关键词"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <button type="submit" class="ui button">查询</button>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field" v-if="dayFrom.length > 0 || dayTo.length > 0 || keyword.length > 0 || level.length > 0">
 | 
			
		||||
        <div class="ui field" v-if="dayFrom.length > 0 || dayTo.length > 0 || keyword.length > 0 || level.length > 0 || tag.length > 0">
 | 
			
		||||
            <a :href="'/clusters/cluster/node/logs?clusterId=' + clusterId + '&nodeId=' + nodeId">[清除条件]</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -22,13 +22,19 @@
 | 
			
		||||
                <option value="success">成功</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <select class="ui dropdown" name="tag" v-model="tag">
 | 
			
		||||
                <option value="">[标签]</option>
 | 
			
		||||
                <option v-for="tag in tags" :value="tag.code">{{tag.name}}</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <input type="text" name="keyword" style="width:10em" v-model="keyword" placeholder="关键词"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
            <button type="submit" class="ui button">查询</button>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field" v-if="dayFrom.length > 0 || dayTo.length > 0 || keyword.length > 0 || level.length > 0">
 | 
			
		||||
        <div class="ui field" v-if="dayFrom.length > 0 || dayTo.length > 0 || keyword.length > 0 || level.length > 0 || tag.length > 0">
 | 
			
		||||
            <a :href="'/clusters/logs?type=' + type">[清除条件]</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user