renjiaojiao преди 3 години
родител
ревизия
ad89c51c4b
променени са 34 файла, в които са добавени 1437 реда и са изтрити 107 реда
  1. 36 0
      api/knowledge/common/initconfig.go
  2. 17 0
      api/knowledge/etc/knowledge-api.yaml
  3. 6 0
      api/knowledge/etc/logs.yaml
  4. 17 0
      api/knowledge/internal/config/config.go
  5. 29 0
      api/knowledge/internal/handler/knowledgeaddhandler.go
  6. 29 0
      api/knowledge/internal/handler/knowledgedelhandler.go
  7. 29 0
      api/knowledge/internal/handler/knowledgeedithandler.go
  8. 28 0
      api/knowledge/internal/handler/knowledgehandler.go
  9. 29 0
      api/knowledge/internal/handler/knowledgeinfohandler.go
  10. 29 0
      api/knowledge/internal/handler/knowledgelisthandler.go
  11. 42 0
      api/knowledge/internal/handler/routes.go
  12. 29 0
      api/knowledge/internal/logic/knowledgeaddlogic.go
  13. 29 0
      api/knowledge/internal/logic/knowledgedellogic.go
  14. 29 0
      api/knowledge/internal/logic/knowledgeeditlogic.go
  15. 29 0
      api/knowledge/internal/logic/knowledgeinfologic.go
  16. 29 0
      api/knowledge/internal/logic/knowledgelistlogic.go
  17. 15 0
      api/knowledge/internal/svc/servicecontext.go
  18. 42 0
      api/knowledge/internal/types/types.go
  19. 50 0
      api/knowledge/knowledge.api
  20. 46 0
      api/knowledge/knowledge.go
  21. 3 0
      go.mod
  22. 1 1
      rpc/knowledge/etc/knowledge.yaml
  23. 9 9
      rpc/knowledge/internal/logic/knowledgeaddlogic.go
  24. 58 0
      rpc/knowledge/internal/logic/knowledgedellogic.go
  25. 11 15
      rpc/knowledge/internal/logic/knowledgeeditlogic.go
  26. 2 1
      rpc/knowledge/internal/logic/knowledgeinfologic.go
  27. 6 0
      rpc/knowledge/internal/server/knowledgeserver.go
  28. 6 0
      rpc/knowledge/knowledge.proto
  29. 185 67
      rpc/knowledge/knowledge/knowledge.pb.go
  30. 15 6
      rpc/knowledge/knowledgeclient/knowledge.go
  31. 15 0
      rpc/knowledge/logs/access.log
  32. 525 0
      rpc/knowledge/logs/stat.log
  33. 8 4
      rpc/knowledge/test/knowledge_test.go
  34. 4 4
      rpc/knowledge/util/elasticsearch_dsl.go

+ 36 - 0
api/knowledge/common/initconfig.go

@@ -0,0 +1,36 @@
+package common
+
+import (
+	"flag"
+	"github.com/zeromicro/go-zero/core/logx"
+	"knowledgeBase/api/knowledge/internal/config"
+	"knowledgeBase/entity"
+	"log"
+
+	"github.com/zeromicro/go-zero/core/conf"
+)
+
+var configFile = flag.String("fff", "etc/knowledge-api.yaml", "the config file")
+var C config.Config
+
+//
+var logFile = flag.String("lf", "etc/logs.yaml", "the config file")
+var logc entity.Logc
+
+func init() {
+	conf.MustLoad(*configFile, &C)
+	log.Println("初始化配置") //
+	//初始化日志信息
+	conf.MustLoad(*logFile, &logc)
+	if len(logc.Level) > 0 {
+		for _, v := range logc.Level {
+			logx.MustSetup(logx.LogConf{
+				Mode:     logc.Mode,
+				Path:     logc.Path,
+				Level:    v,
+				KeepDays: logc.KeepDays,
+			})
+			logx.Info(v, "--日志记录")
+		}
+	}
+}

+ 17 - 0
api/knowledge/etc/knowledge-api.yaml

@@ -0,0 +1,17 @@
+Name: knowledge-api
+Host: 0.0.0.0
+Port: 8889
+WebRpcPort: 8016
+Gateway:
+  ServerCode: jyinfo
+  Etcd:
+    - 127.0.0.1:2379
+knowledge:
+  Etcd:
+    Hosts:
+      - 192.168.3.206:2379
+    Key: knowledge.rpc
+  Timeout: 10000
+AppId: 10000
+MaxBytes: 2097152
+Timeout:  500000

+ 6 - 0
api/knowledge/etc/logs.yaml

@@ -0,0 +1,6 @@
+Mode: file
+Path: ./logs
+Level:
+  - info
+  - error
+KeepDays: 10

+ 17 - 0
api/knowledge/internal/config/config.go

@@ -0,0 +1,17 @@
+package config
+
+import (
+	"github.com/zeromicro/go-zero/rest"
+	"github.com/zeromicro/go-zero/zrpc"
+)
+
+type Config struct {
+	rest.RestConf
+	AppId      int64
+	WebRpcPort int64
+	Gateway    struct {
+		ServerCode string
+		Etcd       []string
+	}
+	Knowledge zrpc.RpcClientConf
+}

+ 29 - 0
api/knowledge/internal/handler/knowledgeaddhandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/logic"
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func knowledgeAddHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.AddKnowledgeReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewKnowledgeAddLogic(r.Context(), ctx)
+		resp, err := l.KnowledgeAdd(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 29 - 0
api/knowledge/internal/handler/knowledgedelhandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/logic"
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func knowledgeDelHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.DeleteReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewKnowledgeDelLogic(r.Context(), ctx)
+		resp, err := l.KnowledgeDel(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 29 - 0
api/knowledge/internal/handler/knowledgeedithandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/logic"
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func knowledgeEditHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.EditReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewKnowledgeEditLogic(r.Context(), ctx)
+		resp, err := l.KnowledgeEdit(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 28 - 0
api/knowledge/internal/handler/knowledgehandler.go

@@ -0,0 +1,28 @@
+package handler
+
+import (
+	"github.com/zeromicro/go-zero/rest/httpx"
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/logic"
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+)
+
+func KnowledgeHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.Request
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewKnowledgeLogic(r.Context(), ctx)
+		resp, err := l.Knowledge(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 29 - 0
api/knowledge/internal/handler/knowledgeinfohandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/logic"
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func knowledgeInfoHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.InfoReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewKnowledgeInfoLogic(r.Context(), ctx)
+		resp, err := l.KnowledgeInfo(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 29 - 0
api/knowledge/internal/handler/knowledgelisthandler.go

@@ -0,0 +1,29 @@
+package handler
+
+import (
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/logic"
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+
+	"github.com/tal-tech/go-zero/rest/httpx"
+)
+
+func knowledgeListHandler(ctx *svc.ServiceContext) http.HandlerFunc {
+	return func(w http.ResponseWriter, r *http.Request) {
+		var req types.ListReq
+		if err := httpx.Parse(r, &req); err != nil {
+			httpx.Error(w, err)
+			return
+		}
+
+		l := logic.NewKnowledgeListLogic(r.Context(), ctx)
+		resp, err := l.KnowledgeList(req)
+		if err != nil {
+			httpx.Error(w, err)
+		} else {
+			httpx.OkJson(w, resp)
+		}
+	}
+}

+ 42 - 0
api/knowledge/internal/handler/routes.go

@@ -0,0 +1,42 @@
+// Code generated by goctl. DO NOT EDIT.
+package handler
+
+import (
+	"net/http"
+
+	"knowledgeBase/api/knowledge/internal/svc"
+
+	"github.com/tal-tech/go-zero/rest"
+)
+
+func RegisterHandlers(engine *rest.Server, serverCtx *svc.ServiceContext) {
+	engine.AddRoutes(
+		[]rest.Route{
+			{
+				Method:  http.MethodPost,
+				Path:    "/knowledge/knowledgeAdd",
+				Handler: knowledgeAddHandler(serverCtx),
+			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/knowledge/knowledgeList",
+				Handler: knowledgeListHandler(serverCtx),
+			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/knowledge/knowledgeInfo",
+				Handler: knowledgeInfoHandler(serverCtx),
+			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/knowledge/knowledgeEdit",
+				Handler: knowledgeEditHandler(serverCtx),
+			},
+			{
+				Method:  http.MethodPost,
+				Path:    "/knowledge/knowledgeDel",
+				Handler: knowledgeDelHandler(serverCtx),
+			},
+		},
+	)
+}

+ 29 - 0
api/knowledge/internal/logic/knowledgeaddlogic.go

@@ -0,0 +1,29 @@
+package logic
+
+import (
+	"context"
+	"github.com/zeromicro/go-zero/core/logx"
+
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+)
+
+type KnowledgeAddLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewKnowledgeAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) KnowledgeAddLogic {
+	return KnowledgeAddLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *KnowledgeAddLogic) KnowledgeAdd(req types.AddKnowledgeReq) (*types.CommonRes, error) {
+	// todo: add your logic here and delete this line
+
+	return &types.CommonRes{}, nil
+}

+ 29 - 0
api/knowledge/internal/logic/knowledgedellogic.go

@@ -0,0 +1,29 @@
+package logic
+
+import (
+	"context"
+	"github.com/zeromicro/go-zero/core/logx"
+
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+)
+
+type KnowledgeDelLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewKnowledgeDelLogic(ctx context.Context, svcCtx *svc.ServiceContext) KnowledgeDelLogic {
+	return KnowledgeDelLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *KnowledgeDelLogic) KnowledgeDel(req types.DeleteReq) (*types.CommonRes, error) {
+	// todo: add your logic here and delete this line
+
+	return &types.CommonRes{}, nil
+}

+ 29 - 0
api/knowledge/internal/logic/knowledgeeditlogic.go

@@ -0,0 +1,29 @@
+package logic
+
+import (
+	"context"
+	"github.com/zeromicro/go-zero/core/logx"
+
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+)
+
+type KnowledgeEditLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewKnowledgeEditLogic(ctx context.Context, svcCtx *svc.ServiceContext) KnowledgeEditLogic {
+	return KnowledgeEditLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *KnowledgeEditLogic) KnowledgeEdit(req types.EditReq) (*types.CommonRes, error) {
+	// todo: add your logic here and delete this line
+
+	return &types.CommonRes{}, nil
+}

+ 29 - 0
api/knowledge/internal/logic/knowledgeinfologic.go

@@ -0,0 +1,29 @@
+package logic
+
+import (
+	"context"
+	"github.com/zeromicro/go-zero/core/logx"
+
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+)
+
+type KnowledgeInfoLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewKnowledgeInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) KnowledgeInfoLogic {
+	return KnowledgeInfoLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *KnowledgeInfoLogic) KnowledgeInfo(req types.InfoReq) (*types.CommonRes, error) {
+	// todo: add your logic here and delete this line
+
+	return &types.CommonRes{}, nil
+}

+ 29 - 0
api/knowledge/internal/logic/knowledgelistlogic.go

@@ -0,0 +1,29 @@
+package logic
+
+import (
+	"context"
+	"github.com/zeromicro/go-zero/core/logx"
+
+	"knowledgeBase/api/knowledge/internal/svc"
+	"knowledgeBase/api/knowledge/internal/types"
+)
+
+type KnowledgeListLogic struct {
+	logx.Logger
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+}
+
+func NewKnowledgeListLogic(ctx context.Context, svcCtx *svc.ServiceContext) KnowledgeListLogic {
+	return KnowledgeListLogic{
+		Logger: logx.WithContext(ctx),
+		ctx:    ctx,
+		svcCtx: svcCtx,
+	}
+}
+
+func (l *KnowledgeListLogic) KnowledgeList(req types.ListReq) (*types.CommonRes, error) {
+	// todo: add your logic here and delete this line
+
+	return &types.CommonRes{}, nil
+}

+ 15 - 0
api/knowledge/internal/svc/servicecontext.go

@@ -0,0 +1,15 @@
+package svc
+
+import (
+	"knowledgeBase/api/knowledge/internal/config"
+)
+
+type ServiceContext struct {
+	Config config.Config
+}
+
+func NewServiceContext(c config.Config) *ServiceContext {
+	return &ServiceContext{
+		Config: c,
+	}
+}

+ 42 - 0
api/knowledge/internal/types/types.go

@@ -0,0 +1,42 @@
+// Code generated by goctl. DO NOT EDIT.
+package types
+
+type AddKnowledgeReq struct {
+	Question string `json:"question"`
+	Answer   string `json:"answer"`
+	TenanId  string `json:"tenantId"`
+	AppId    string `header:"appId"`
+	Person   string `json:"person"`
+}
+
+type FindAnswerReq struct {
+	Question string `json:"question"`
+	TenantId int64  `json:"tenantId"`
+	Type     int64  `json:"type"` //1 文字  2 语音
+	AppId    string `header:"appId"`
+}
+
+type ListReq struct {
+	PageSize  int64 `json:"pageSize"`
+	PageIndex int64 `json:"pageIndex"`
+	TenantId  int64 `json:"tenantId"`
+}
+
+type InfoReq struct {
+	AnswerId int64 `json:"answerId"`
+}
+
+type EditReq struct {
+	Question string `json:"question"`
+	Answer   string `json:"answer"`
+}
+
+type DeleteReq struct {
+	AnswerId int64 `json:"answerId"`
+}
+
+type CommonRes struct {
+	Error_code int         `json:"error_code"`
+	Error_msg  string      `json:"error_msg"`
+	Data       interface{} `json:"data"`
+}

+ 50 - 0
api/knowledge/knowledge.api

@@ -0,0 +1,50 @@
+type AddKnowledgeReq {
+	Question string `json:"question"`
+	Answer   string `json:"answer"`
+	TenanId  string `json:"tenantId"`
+	AppId    string `header:"appId"`
+	Person   string `json:"person"`
+}
+
+type FindAnswerReq {
+	Question string `json:"question"`
+	TenantId int64  `json:"tenantId"`
+	Type     int64  `json:"type"` //1 文字  2 语音
+	AppId    string `header:"appId"`
+}
+
+type ListReq {
+	PageSize  int64 `json:"pageSize"`
+	PageIndex int64 `json:"pageIndex"`
+	TenantId  int64 `json:"tenantId"`
+}
+type InfoReq {
+	AnswerId int64 `json:"answerId"`
+}
+
+type EditReq {
+	Question string `json:"question"`
+	Answer   string `json:"answer"`
+}
+type DeleteReq {
+	AnswerId int64 `json:"answerId"`
+}
+
+type CommonRes {
+	Error_code int         `json:"error_code"`
+	Error_msg  string      `json:"error_msg"`
+	Data       interface{} `json:"data"`
+}
+
+service knowledge-api {
+	@handler knowledgeAdd
+	post /knowledge/knowledgeAdd (AddKnowledgeReq) returns (CommonRes);
+	@handler knowledgeList
+	post /knowledge/knowledgeList (ListReq) returns (CommonRes);
+	@handler knowledgeInfo
+	post /knowledge/knowledgeInfo (InfoReq) returns (CommonRes);
+	@handler knowledgeEdit
+	post /knowledge/knowledgeEdit (EditReq) returns (CommonRes);
+	@handler knowledgeDel
+	post /knowledge/knowledgeDel (DeleteReq) returns (CommonRes);
+}

+ 46 - 0
api/knowledge/knowledge.go

@@ -0,0 +1,46 @@
+package main
+
+import (
+	mc "app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/endless"
+	"fmt"
+	"github.com/zeromicro/go-zero/rest"
+	"log"
+	"os"
+	"os/signal"
+	"syscall"
+
+	"bp.jydev.jianyu360.cn/BaseService/gateway/core/node"
+	. "knowledgeBase/api/knowledge/common"
+	"knowledgeBase/api/knowledge/internal/handler"
+	"knowledgeBase/api/knowledge/internal/svc"
+)
+
+func main() {
+	//注册代理服务
+	closeNotify, err := node.NewNode(C.Gateway.Etcd...).Register(C.Gateway.ServerCode, mc.InterfaceToStr(C.Port))
+	if err != nil {
+		panic(err)
+	}
+	//
+	go func() {
+		err := endless.ListenAndServe(":"+mc.InterfaceToStr(C.WebRpcPort), nil, func() {})
+		if err != nil {
+			log.Println("ListenAndServe: ", err)
+		}
+	}()
+
+	ctx := svc.NewServiceContext(C)
+	server := rest.MustNewServer(C.RestConf)
+	defer server.Stop()
+
+	handler.RegisterHandlers(server, ctx)
+
+	fmt.Printf("Starting server at %s:%d...\n", C.Host, C.Port)
+	server.Start()
+
+	quit := make(chan os.Signal, 1)
+	signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
+	<-quit
+	closeNotify()
+}

+ 3 - 0
go.mod

@@ -4,8 +4,11 @@ go 1.16
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20220421060131-a1001013ba46
+	github.com/fsnotify/fsnotify v1.5.1 // indirect
 	github.com/go-sql-driver/mysql v1.6.0
 	github.com/zeromicro/go-zero v1.3.2
+	golang.org/x/text v0.3.8-0.20211105212822-18b340fc7af2 // indirect
 	google.golang.org/grpc v1.45.0
 	google.golang.org/protobuf v1.28.0
+	bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220421091022-75639a9b8086
 )

+ 1 - 1
rpc/knowledge/etc/knowledge.yaml

@@ -4,7 +4,7 @@ Etcd:
   Hosts:
     - 192.168.3.206:2379
   Key: knowledge.rpc
-WebRpcPort: 8014
+WebRpcPort: 8015
 MysqlMain:
   dbName: base_service
   address: 192.168.3.11:3366

+ 9 - 9
rpc/knowledge/internal/logic/knowledgeaddlogic.go

@@ -76,15 +76,15 @@ func (l *KnowledgeAddLogic) KnowledgeAdd(in *knowledgeclient.AddRequest) (*knowl
 		if fool {
 			//插入es
 			knowledge := map[string]interface{}{
-				"knowledge_id":  (*datalist)[0]["id"],
-				"status":        1,
-				"create_time":   nowTime,
-				"create_person": in.Person,
-				"answer":        in.Answer,
-				"question":      in.Question,
-				"keywords":      keywords,
-				"answer_id":     answerId,
-				"tenant_id":     in.TenantId,
+				"knowledgeId":  (*datalist)[0]["id"],
+				"status":       1,
+				"createTime":   nowTime,
+				"createPerson": in.Person,
+				"answer":       in.Answer,
+				"question":     in.Question,
+				"keywords":     keywords,
+				"answerId":     answerId,
+				"tenantId":     in.TenantId,
 			}
 			b := elastic.Save(C.Es.Index, C.Es.Type, knowledge)
 			log.Println("存es", b)

+ 58 - 0
rpc/knowledge/internal/logic/knowledgedellogic.go

@@ -0,0 +1,58 @@
+package logic
+
+import (
+	elastic "app.yhyue.com/moapp/jybase/esv1"
+	"context"
+	"github.com/zeromicro/go-zero/core/logx"
+	. "knowledgeBase/rpc/knowledge/init"
+	"knowledgeBase/rpc/knowledge/knowledgeclient"
+	"knowledgeBase/rpc/knowledge/util"
+	"time"
+
+	"knowledgeBase/rpc/knowledge/internal/svc"
+)
+
+type KnowledgeDelLogic struct {
+	ctx    context.Context
+	svcCtx *svc.ServiceContext
+	logx.Logger
+}
+
+func NewKnowledgeDelLogic(ctx context.Context, svcCtx *svc.ServiceContext) *KnowledgeDelLogic {
+	return &KnowledgeDelLogic{
+		ctx:    ctx,
+		svcCtx: svcCtx,
+		Logger: logx.WithContext(ctx),
+	}
+}
+
+// KnowledgeDel 知识删除
+func (l *KnowledgeDelLogic) KnowledgeDel(in *knowledgeclient.KnowledgeDelReq) (*knowledgeclient.AddResponse, error) {
+	// todo: add your logic here and delete this line
+	result := &knowledgeclient.AddResponse{}
+	//修改答案
+	answerUpdate := map[string]interface{}{
+		"update_time": time.Now().Local().Format(util.Date_Full_Layout),
+		"status":      0,
+	}
+	fool := Mysql.Update(util.ANSWER, map[string]interface{}{"id": in.AnswerId}, answerUpdate)
+
+	if fool {
+		//删除es数据
+		query := map[string]interface{}{
+			"answerId": in.AnswerId,
+		}
+		ok := elastic.Del(C.Es.Index, C.Es.Type, query)
+		if ok {
+			result.ErrorCode = 0
+			result.ErrorMsg = "删除问题成功"
+		} else {
+			result.ErrorCode = -1
+			result.ErrorMsg = "删除es问题失败"
+		}
+	} else {
+		result.ErrorCode = -1
+		result.ErrorMsg = "删除mysql问题失败"
+	}
+	return result, nil
+}

+ 11 - 15
rpc/knowledge/internal/logic/knowledgeeditlogic.go

@@ -35,35 +35,31 @@ func (l *KnowledgeEditLogic) KnowledgeEdit(in *knowledgeclient.KnowledgeEditReq)
 		"update_time": time.Now().Local().Format(util.Date_Full_Layout),
 		"content":     in.Answer,
 	}
-	if in.State == 0 {
-		answerUpdate["state"] = 0
-	}
 	//获取问题分词
 	keywords := util.HttpDo(in.Question)
 	fool := Mysql.ExecTx("编辑问题、答案", func(tx *sql.Tx) bool {
 		ok1 := Mysql.UpdateByTx(tx, util.ANSWER, map[string]interface{}{"id": in.AnswerId}, answerUpdate)
-
 		//修改问题
 		questionUpdate := map[string]interface{}{
 			"content":  in.Question,
 			"keywords": keywords,
 		}
-		ok2 := Mysql.UpdateByTx(tx, util.QUESTION, map[string]interface{}{"answerId": in.AnswerId}, questionUpdate)
+		ok2 := Mysql.UpdateByTx(tx, util.QUESTION, map[string]interface{}{"answer_id": in.AnswerId}, questionUpdate)
 		return ok1 && ok2
 	})
 
-	if in.State != 0 && fool {
+	if fool {
 		//修改es数据
 		knowledge := map[string]interface{}{
-			"knowledge_id":  in.KnowledgeId,
-			"status":        1,
-			"create_time":   time.Now().Local().Format(util.Date_Full_Layout),
-			"create_person": in.Person,
-			"answer":        in.Answer,
-			"question":      in.Question,
-			"keywords":      keywords,
-			"answer_id":     in.AnswerId,
-			"tenant_id":     in.TenantId,
+			"knowledgeId":  in.KnowledgeId,
+			"status":       1,
+			"createTime":   time.Now().Local().Format(util.Date_Full_Layout),
+			"createPerson": in.Person,
+			"answer":       in.Answer,
+			"question":     in.Question,
+			"keywords":     keywords,
+			"answerId":     in.AnswerId,
+			"tenantId":     in.TenantId,
 		}
 		ok := elastic.UpdateNewDoc(C.Es.Index, C.Es.Type, knowledge)
 		if ok {

+ 2 - 1
rpc/knowledge/internal/logic/knowledgeinfologic.go

@@ -30,13 +30,14 @@ func (l *KnowledgeInfoLogic) KnowledgeInfo(in *knowledgeclient.KnowledgeEntity)
 	//答案问题详情
 	result := &knowledgeclient.InfoResponse{}
 	sql := "SELECT b.content as answer,c.content as question,b.id,b.knowledge_id  FROM " + util.ANSWER +
-		" b LEFT JOIN " + util.QUESTION + " c ON b.id = c.answer_id WHERE b.`status` =1 "
+		" b LEFT JOIN " + util.QUESTION + " c ON b.id = c.answer_id WHERE b.`status` =1 AND b.id = ? "
 	datalist := Mysql.SelectBySql(sql, in.AnswerId)
 	if datalist != nil && *datalist != nil && len(*datalist) > 0 {
 		knowledge := knowledgeclient.KnowledgeEntity{}
 		knowledge.Answer = quitl.ObjToString((*datalist)[0]["answer"])
 		knowledge.Question = quitl.ObjToString((*datalist)[0]["question"])
 		knowledge.AnswerId = quitl.Int64All((*datalist)[0]["id"])
+		knowledge.KnowledgeId = quitl.Int64All((*datalist)[0]["knowledge_id"])
 		result.Data = &knowledge
 		result.ErrorCode = 0
 	} else {

+ 6 - 0
rpc/knowledge/internal/server/knowledgeserver.go

@@ -45,6 +45,12 @@ func (s *KnowledgeServer) KnowledgeInfo(ctx context.Context, in *knowledgeclient
 	return l.KnowledgeInfo(in)
 }
 
+// 知识删除
+func (s *KnowledgeServer) KnowledgeDel(ctx context.Context, in *knowledgeclient.KnowledgeDelReq) (*knowledgeclient.AddResponse, error) {
+	l := logic.NewKnowledgeDelLogic(ctx, s.svcCtx)
+	return l.KnowledgeDel(in)
+}
+
 // 根据问题匹配答案
 func (s *KnowledgeServer) FindAnswer(ctx context.Context, in *knowledgeclient.FindAnswerReq) (*knowledgeclient.FindAnswerResp, error) {
 	l := logic.NewFindAnswerLogic(ctx, s.svcCtx)

+ 6 - 0
rpc/knowledge/knowledge.proto

@@ -59,6 +59,7 @@ message KnowledgeEntity{
   int64 answerId = 3;//答案标识
   int64 state = 4;//知识状态0无效1有效
   string person = 5;//人员姓名
+  int64 knowledgeId = 6;
 }
 message KnowledgeEditReq{
   string question = 1; //问题
@@ -74,6 +75,9 @@ message InfoResponse  {
   string error_msg = 2; //响应消息
   KnowledgeEntity data = 3; //响应内容
 }
+message KnowledgeDelReq{
+  int64 answerId = 1;
+}
 
 service knowledge {
   //知识新增
@@ -84,6 +88,8 @@ service knowledge {
   rpc KnowledgeEdit(KnowledgeEditReq) returns(AddResponse);
   //知识详情
   rpc KnowledgeInfo(KnowledgeEntity) returns(InfoResponse);
+  //知识删除
+  rpc KnowledgeDel(KnowledgeDelReq) returns(AddResponse);
   //根据问题匹配答案
   rpc FindAnswer(FindAnswerReq) returns(FindAnswerResp);
   //推荐答案

+ 185 - 67
rpc/knowledge/knowledge/knowledge.pb.go

@@ -557,11 +557,12 @@ type KnowledgeEntity struct {
 	sizeCache     protoimpl.SizeCache
 	unknownFields protoimpl.UnknownFields
 
-	Question string `protobuf:"bytes,1,opt,name=question,proto3" json:"question,omitempty"`  //问题
-	Answer   string `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"`      //答案
-	AnswerId int64  `protobuf:"varint,3,opt,name=answerId,proto3" json:"answerId,omitempty"` //答案标识
-	State    int64  `protobuf:"varint,4,opt,name=state,proto3" json:"state,omitempty"`       //知识状态0无效1有效
-	Person   string `protobuf:"bytes,5,opt,name=person,proto3" json:"person,omitempty"`      //人员姓名
+	Question    string `protobuf:"bytes,1,opt,name=question,proto3" json:"question,omitempty"`  //问题
+	Answer      string `protobuf:"bytes,2,opt,name=answer,proto3" json:"answer,omitempty"`      //答案
+	AnswerId    int64  `protobuf:"varint,3,opt,name=answerId,proto3" json:"answerId,omitempty"` //答案标识
+	State       int64  `protobuf:"varint,4,opt,name=state,proto3" json:"state,omitempty"`       //知识状态0无效1有效
+	Person      string `protobuf:"bytes,5,opt,name=person,proto3" json:"person,omitempty"`      //人员姓名
+	KnowledgeId int64  `protobuf:"varint,6,opt,name=knowledgeId,proto3" json:"knowledgeId,omitempty"`
 }
 
 func (x *KnowledgeEntity) Reset() {
@@ -631,6 +632,13 @@ func (x *KnowledgeEntity) GetPerson() string {
 	return ""
 }
 
+func (x *KnowledgeEntity) GetKnowledgeId() int64 {
+	if x != nil {
+		return x.KnowledgeId
+	}
+	return 0
+}
+
 type KnowledgeEditReq struct {
 	state         protoimpl.MessageState
 	sizeCache     protoimpl.SizeCache
@@ -789,6 +797,53 @@ func (x *InfoResponse) GetData() *KnowledgeEntity {
 	return nil
 }
 
+type KnowledgeDelReq struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	AnswerId int64 `protobuf:"varint,1,opt,name=answerId,proto3" json:"answerId,omitempty"`
+}
+
+func (x *KnowledgeDelReq) Reset() {
+	*x = KnowledgeDelReq{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_knowledge_proto_msgTypes[11]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *KnowledgeDelReq) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*KnowledgeDelReq) ProtoMessage() {}
+
+func (x *KnowledgeDelReq) ProtoReflect() protoreflect.Message {
+	mi := &file_knowledge_proto_msgTypes[11]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use KnowledgeDelReq.ProtoReflect.Descriptor instead.
+func (*KnowledgeDelReq) Descriptor() ([]byte, []int) {
+	return file_knowledge_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *KnowledgeDelReq) GetAnswerId() int64 {
+	if x != nil {
+		return x.AnswerId
+	}
+	return 0
+}
+
 var File_knowledge_proto protoreflect.FileDescriptor
 
 var file_knowledge_proto_rawDesc = []byte{
@@ -849,7 +904,7 @@ var file_knowledge_proto_rawDesc = []byte{
 	0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2d, 0x0a,
 	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65,
 	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65,
-	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8f, 0x01, 0x0a,
+	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb1, 0x01, 0x0a,
 	0x0f, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
 	0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
@@ -858,55 +913,65 @@ var file_knowledge_proto_rawDesc = []byte{
 	0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x49, 0x64,
 	0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
 	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x22, 0xce,
-	0x01, 0x0a, 0x10, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74,
-	0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-	0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65,
-	0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65,
-	0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72,
-	0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x72, 0x73, 0x6f,
-	0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x49, 0x64,
-	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67,
-	0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18,
-	0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22,
-	0x79, 0x0a, 0x0c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
-	0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1b,
-	0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x04, 0x64,
-	0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x6d, 0x70,
-	0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45, 0x6e,
-	0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x9c, 0x03, 0x0a, 0x09, 0x6b,
-	0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x4b, 0x6e, 0x6f, 0x77,
-	0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x64, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c,
-	0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15,
-	0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64,
-	0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
-	0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
-	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64,
-	0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
-	0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x52,
-	0x65, 0x71, 0x1a, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64,
-	0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x4b, 0x6e, 0x6f,
-	0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x6d,
-	0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45,
-	0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
-	0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a,
-	0x0a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x74, 0x65,
-	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65,
-	0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e,
-	0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49,
-	0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65,
-	0x72, 0x12, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e,
-	0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x6d,
-	0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x41,
-	0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x6b,
-	0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x12, 0x20,
+	0x0a, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20,
+	0x01, 0x28, 0x03, 0x52, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x49, 0x64,
+	0x22, 0xce, 0x01, 0x0a, 0x10, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45, 0x64,
+	0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
+	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f,
+	0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x73,
+	0x77, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x6e, 0x73,
+	0x77, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70,
+	0x65, 0x72, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x72,
+	0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65,
+	0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65,
+	0x64, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49,
+	0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49,
+	0x64, 0x22, 0x79, 0x0a, 0x0c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65,
+	0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2d, 0x0a,
+	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65,
+	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65,
+	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x0a, 0x0f,
+	0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12,
+	0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x49, 0x64, 0x32, 0xde, 0x03, 0x0a, 0x09,
+	0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x4b, 0x6e, 0x6f,
+	0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x41, 0x64, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x65, 0x6d, 0x70,
+	0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65,
+	0x64, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
+	0x74, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
+	0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65,
+	0x64, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
+	0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x45, 0x64, 0x69, 0x74,
+	0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41,
+	0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x4b, 0x6e,
+	0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x74, 0x65,
+	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65,
+	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
+	0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40,
+	0x0a, 0x0c, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x12, 0x19,
+	0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6c, 0x65,
+	0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x74, 0x65, 0x6d, 0x70,
+	0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x12, 0x3f, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x17,
+	0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e,
+	0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
+	0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73,
+	0x70, 0x12, 0x49, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x41, 0x6e,
+	0x73, 0x77, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e,
+	0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e,
+	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+	0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b,
+	0x2e, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x33,
 }
 
 var (
@@ -921,7 +986,7 @@ func file_knowledge_proto_rawDescGZIP() []byte {
 	return file_knowledge_proto_rawDescData
 }
 
-var file_knowledge_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
+var file_knowledge_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
 var file_knowledge_proto_goTypes = []interface{}{
 	(*Question)(nil),            // 0: template.Question
 	(*AddRequest)(nil),          // 1: template.AddRequest
@@ -934,6 +999,7 @@ var file_knowledge_proto_goTypes = []interface{}{
 	(*KnowledgeEntity)(nil),     // 8: template.KnowledgeEntity
 	(*KnowledgeEditReq)(nil),    // 9: template.KnowledgeEditReq
 	(*InfoResponse)(nil),        // 10: template.InfoResponse
+	(*KnowledgeDelReq)(nil),     // 11: template.KnowledgeDelReq
 }
 var file_knowledge_proto_depIdxs = []int32{
 	0,  // 0: template.FindAnswerResp.data:type_name -> template.Question
@@ -944,16 +1010,18 @@ var file_knowledge_proto_depIdxs = []int32{
 	6,  // 5: template.knowledge.KnowledgeList:input_type -> template.ListRequest
 	9,  // 6: template.knowledge.KnowledgeEdit:input_type -> template.KnowledgeEditReq
 	8,  // 7: template.knowledge.KnowledgeInfo:input_type -> template.KnowledgeEntity
-	3,  // 8: template.knowledge.FindAnswer:input_type -> template.FindAnswerReq
-	3,  // 9: template.knowledge.RecommendAnswer:input_type -> template.FindAnswerReq
-	2,  // 10: template.knowledge.KnowledgeAdd:output_type -> template.AddResponse
-	7,  // 11: template.knowledge.KnowledgeList:output_type -> template.ListResponse
-	2,  // 12: template.knowledge.KnowledgeEdit:output_type -> template.AddResponse
-	10, // 13: template.knowledge.KnowledgeInfo:output_type -> template.InfoResponse
-	4,  // 14: template.knowledge.FindAnswer:output_type -> template.FindAnswerResp
-	5,  // 15: template.knowledge.RecommendAnswer:output_type -> template.RecommendAnswerResp
-	10, // [10:16] is the sub-list for method output_type
-	4,  // [4:10] is the sub-list for method input_type
+	11, // 8: template.knowledge.KnowledgeDel:input_type -> template.KnowledgeDelReq
+	3,  // 9: template.knowledge.FindAnswer:input_type -> template.FindAnswerReq
+	3,  // 10: template.knowledge.RecommendAnswer:input_type -> template.FindAnswerReq
+	2,  // 11: template.knowledge.KnowledgeAdd:output_type -> template.AddResponse
+	7,  // 12: template.knowledge.KnowledgeList:output_type -> template.ListResponse
+	2,  // 13: template.knowledge.KnowledgeEdit:output_type -> template.AddResponse
+	10, // 14: template.knowledge.KnowledgeInfo:output_type -> template.InfoResponse
+	2,  // 15: template.knowledge.KnowledgeDel:output_type -> template.AddResponse
+	4,  // 16: template.knowledge.FindAnswer:output_type -> template.FindAnswerResp
+	5,  // 17: template.knowledge.RecommendAnswer:output_type -> template.RecommendAnswerResp
+	11, // [11:18] is the sub-list for method output_type
+	4,  // [4:11] is the sub-list for method input_type
 	4,  // [4:4] is the sub-list for extension type_name
 	4,  // [4:4] is the sub-list for extension extendee
 	0,  // [0:4] is the sub-list for field type_name
@@ -1097,6 +1165,18 @@ func file_knowledge_proto_init() {
 				return nil
 			}
 		}
+		file_knowledge_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*KnowledgeDelReq); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
@@ -1104,7 +1184,7 @@ func file_knowledge_proto_init() {
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_knowledge_proto_rawDesc,
 			NumEnums:      0,
-			NumMessages:   11,
+			NumMessages:   12,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
@@ -1138,6 +1218,8 @@ type KnowledgeClient interface {
 	KnowledgeEdit(ctx context.Context, in *KnowledgeEditReq, opts ...grpc.CallOption) (*AddResponse, error)
 	//知识详情
 	KnowledgeInfo(ctx context.Context, in *KnowledgeEntity, opts ...grpc.CallOption) (*InfoResponse, error)
+	//知识删除
+	KnowledgeDel(ctx context.Context, in *KnowledgeDelReq, opts ...grpc.CallOption) (*AddResponse, error)
 	//根据问题匹配答案
 	FindAnswer(ctx context.Context, in *FindAnswerReq, opts ...grpc.CallOption) (*FindAnswerResp, error)
 	//推荐答案
@@ -1188,6 +1270,15 @@ func (c *knowledgeClient) KnowledgeInfo(ctx context.Context, in *KnowledgeEntity
 	return out, nil
 }
 
+func (c *knowledgeClient) KnowledgeDel(ctx context.Context, in *KnowledgeDelReq, opts ...grpc.CallOption) (*AddResponse, error) {
+	out := new(AddResponse)
+	err := c.cc.Invoke(ctx, "/template.knowledge/KnowledgeDel", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *knowledgeClient) FindAnswer(ctx context.Context, in *FindAnswerReq, opts ...grpc.CallOption) (*FindAnswerResp, error) {
 	out := new(FindAnswerResp)
 	err := c.cc.Invoke(ctx, "/template.knowledge/FindAnswer", in, out, opts...)
@@ -1216,6 +1307,8 @@ type KnowledgeServer interface {
 	KnowledgeEdit(context.Context, *KnowledgeEditReq) (*AddResponse, error)
 	//知识详情
 	KnowledgeInfo(context.Context, *KnowledgeEntity) (*InfoResponse, error)
+	//知识删除
+	KnowledgeDel(context.Context, *KnowledgeDelReq) (*AddResponse, error)
 	//根据问题匹配答案
 	FindAnswer(context.Context, *FindAnswerReq) (*FindAnswerResp, error)
 	//推荐答案
@@ -1238,6 +1331,9 @@ func (*UnimplementedKnowledgeServer) KnowledgeEdit(context.Context, *KnowledgeEd
 func (*UnimplementedKnowledgeServer) KnowledgeInfo(context.Context, *KnowledgeEntity) (*InfoResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method KnowledgeInfo not implemented")
 }
+func (*UnimplementedKnowledgeServer) KnowledgeDel(context.Context, *KnowledgeDelReq) (*AddResponse, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method KnowledgeDel not implemented")
+}
 func (*UnimplementedKnowledgeServer) FindAnswer(context.Context, *FindAnswerReq) (*FindAnswerResp, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method FindAnswer not implemented")
 }
@@ -1321,6 +1417,24 @@ func _Knowledge_KnowledgeInfo_Handler(srv interface{}, ctx context.Context, dec
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Knowledge_KnowledgeDel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(KnowledgeDelReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(KnowledgeServer).KnowledgeDel(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/template.knowledge/KnowledgeDel",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(KnowledgeServer).KnowledgeDel(ctx, req.(*KnowledgeDelReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Knowledge_FindAnswer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(FindAnswerReq)
 	if err := dec(in); err != nil {
@@ -1377,6 +1491,10 @@ var _Knowledge_serviceDesc = grpc.ServiceDesc{
 			MethodName: "KnowledgeInfo",
 			Handler:    _Knowledge_KnowledgeInfo_Handler,
 		},
+		{
+			MethodName: "KnowledgeDel",
+			Handler:    _Knowledge_KnowledgeDel_Handler,
+		},
 		{
 			MethodName: "FindAnswer",
 			Handler:    _Knowledge_FindAnswer_Handler,

+ 15 - 6
rpc/knowledge/knowledgeclient/knowledge.go

@@ -13,17 +13,18 @@ import (
 )
 
 type (
+	ListResponse        = knowledge.ListResponse
+	KnowledgeEntity     = knowledge.KnowledgeEntity
 	KnowledgeEditReq    = knowledge.KnowledgeEditReq
 	Question            = knowledge.Question
-	FindAnswerReq       = knowledge.FindAnswerReq
-	RecommendAnswerResp = knowledge.RecommendAnswerResp
-	ListRequest         = knowledge.ListRequest
-	KnowledgeEntity     = knowledge.KnowledgeEntity
 	AddRequest          = knowledge.AddRequest
 	AddResponse         = knowledge.AddResponse
-	FindAnswerResp      = knowledge.FindAnswerResp
-	ListResponse        = knowledge.ListResponse
+	FindAnswerReq       = knowledge.FindAnswerReq
+	RecommendAnswerResp = knowledge.RecommendAnswerResp
 	InfoResponse        = knowledge.InfoResponse
+	FindAnswerResp      = knowledge.FindAnswerResp
+	ListRequest         = knowledge.ListRequest
+	KnowledgeDelReq     = knowledge.KnowledgeDelReq
 
 	Knowledge interface {
 		// 知识新增
@@ -34,6 +35,8 @@ type (
 		KnowledgeEdit(ctx context.Context, in *KnowledgeEditReq) (*AddResponse, error)
 		// 知识详情
 		KnowledgeInfo(ctx context.Context, in *KnowledgeEntity) (*InfoResponse, error)
+		// 知识删除
+		KnowledgeDel(ctx context.Context, in *KnowledgeDelReq) (*AddResponse, error)
 		// 根据问题匹配答案
 		FindAnswer(ctx context.Context, in *FindAnswerReq) (*FindAnswerResp, error)
 		// 推荐答案
@@ -75,6 +78,12 @@ func (m *defaultKnowledge) KnowledgeInfo(ctx context.Context, in *KnowledgeEntit
 	return client.KnowledgeInfo(ctx, in)
 }
 
+// 知识删除
+func (m *defaultKnowledge) KnowledgeDel(ctx context.Context, in *KnowledgeDelReq) (*AddResponse, error) {
+	client := knowledge.NewKnowledgeClient(m.cli.Conn())
+	return client.KnowledgeDel(ctx, in)
+}
+
 // 根据问题匹配答案
 func (m *defaultKnowledge) FindAnswer(ctx context.Context, in *FindAnswerReq) (*FindAnswerResp, error) {
 	client := knowledge.NewKnowledgeClient(m.cli.Conn())

+ 15 - 0
rpc/knowledge/logs/access.log

@@ -89,3 +89,18 @@
 {"@timestamp":"2022-06-20T17:28:16.022+08:00","level":"info","content":"info--日志记录"}
 {"@timestamp":"2022-06-20T17:28:16.022+08:00","level":"info","content":"error--日志记录"}
 {"@timestamp":"2022-06-20T17:28:24.744+08:00","level":"info","duration":"250.6ms","content":"127.0.0.1:59274 - /template.knowledge/KnowledgeList - {\"pageSize\":10,\"pageIndex\":1,\"tenantId\":10000}","trace":"580c1ef24aca59320275174347b7ddc3","span":"76ef5ba206fe90e5"}
+{"@timestamp":"2022-06-21T14:43:26.048+08:00","level":"info","content":"info--日志记录"}
+{"@timestamp":"2022-06-21T14:43:26.048+08:00","level":"info","content":"error--日志记录"}
+{"@timestamp":"2022-06-21T14:45:45.986+08:00","level":"info","duration":"160.3ms","content":"127.0.0.1:64791 - /template.knowledge/KnowledgeAdd - {\"question\":\"超级订阅在哪设置订阅提醒,超级订阅用户有哪些权益?\",\"answer\":\"超级订阅用户权益有订阅设置。\",\"tenantId\":\"10000\",\"appId\":\"10000\",\"person\":\"王三\"}","trace":"983f06d9d1659c93930dacd6518c4d43","span":"6bfec0410b97a314"}
+{"@timestamp":"2022-06-21T14:46:17.991+08:00","level":"info","duration":"8.4ms","content":"127.0.0.1:64797 - /template.knowledge/KnowledgeList - {\"pageSize\":10,\"pageIndex\":1,\"tenantId\":10000}","trace":"65708c09091f0dc358af0de0d011cb56","span":"af47b27067ab7816"}
+{"@timestamp":"2022-06-21T14:46:42.062+08:00","level":"info","duration":"5.2ms","content":"127.0.0.1:64809 - /template.knowledge/KnowledgeInfo - {\"answerId\":23}","trace":"717a7ed22d563634d4b19639dabf9f62","span":"49607cd69e96984a"}
+{"@timestamp":"2022-06-21T14:47:58.989+08:00","level":"info","content":"info--日志记录"}
+{"@timestamp":"2022-06-21T14:47:58.989+08:00","level":"info","content":"error--日志记录"}
+{"@timestamp":"2022-06-21T14:48:08.041+08:00","level":"info","duration":"5.5ms","content":"127.0.0.1:64826 - /template.knowledge/KnowledgeInfo - {\"answerId\":23}","trace":"9a433ab736efc847e5ca21ea8489111a","span":"0fda5703c10d4d93"}
+{"@timestamp":"2022-06-21T15:36:36.644+08:00","level":"info","content":"info--日志记录"}
+{"@timestamp":"2022-06-21T15:36:36.644+08:00","level":"info","content":"error--日志记录"}
+{"@timestamp":"2022-06-21T15:37:17.438+08:00","level":"info","duration":"11.6ms","content":"127.0.0.1:50311 - /template.knowledge/KnowledgeInfo - {\"answerId\":23}","trace":"1a0ca77b50f10507a8a5389087d09116","span":"8b4498f3823fd5df"}
+{"@timestamp":"2022-06-21T15:45:28.150+08:00","level":"info","duration":"463.2ms","content":"127.0.0.1:50619 - /template.knowledge/KnowledgeEdit - {\"question\":\"大会员权益有哪些,如何购买?\",\"answer\":\"大会员有超级多的权益,好处多多,在剑鱼网站直接购买。\",\"answerId\":23,\"knowledgeId\":1,\"tenantId\":10000}","trace":"32678a861c0bdf6dace3bfe2eb960fdf","span":"e8c140c0582e4222"}
+{"@timestamp":"2022-06-21T15:46:20.975+08:00","level":"info","content":"info--日志记录"}
+{"@timestamp":"2022-06-21T15:46:20.975+08:00","level":"info","content":"error--日志记录"}
+{"@timestamp":"2022-06-21T15:46:35.844+08:00","level":"info","duration":"163.9ms","content":"127.0.0.1:50674 - /template.knowledge/KnowledgeEdit - {\"question\":\"大会员权益有哪些,如何购买?\",\"answer\":\"大会员有超级多的权益,好处多多,在剑鱼网站直接购买。\",\"answerId\":23,\"knowledgeId\":1,\"tenantId\":10000}","trace":"57e6656d106af5cb089f18ad8ca2c455","span":"adf0b95c8767cc3b"}

+ 525 - 0
rpc/knowledge/logs/stat.log

@@ -1274,3 +1274,528 @@
 {"@timestamp":"2022-06-20T17:41:15.997+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.3Mi, TotalAlloc=8.2Mi, Sys=18.7Mi, NumGC=9"}
 {"@timestamp":"2022-06-20T17:41:16.028+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
 {"@timestamp":"2022-06-20T17:41:24.759+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:44:26.010+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.3Mi, TotalAlloc=6.8Mi, Sys=14.5Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T14:44:26.048+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:45:26.014+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.0Mi, Sys=14.5Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T14:45:26.050+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:46:26.009+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.6Mi, TotalAlloc=7.5Mi, Sys=14.5Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T14:46:26.055+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 2, pass: 2, drop: 0"}
+{"@timestamp":"2022-06-21T14:46:45.992+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.1/s, drops: 0, avg time: 57.7ms, med: 160.3ms, 90th: 160.3ms, 99th: 160.3ms, 99.9th: 160.3ms"}
+{"@timestamp":"2022-06-21T14:47:26.005+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.8Mi, TotalAlloc=7.8Mi, Sys=14.5Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T14:47:26.050+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 1, pass: 1, drop: 0"}
+{"@timestamp":"2022-06-21T14:47:45.988+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:48:58.792+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.7Mi, TotalAlloc=7.0Mi, Sys=14.0Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T14:48:58.991+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 1, pass: 1, drop: 0"}
+{"@timestamp":"2022-06-21T14:49:08.048+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 5.0ms, med: 5.5ms, 90th: 5.5ms, 99th: 5.5ms, 99.9th: 5.5ms"}
+{"@timestamp":"2022-06-21T14:49:58.802+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.8Mi, TotalAlloc=7.1Mi, Sys=14.0Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T14:49:58.991+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:50:08.050+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:50:58.802+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.2Mi, Sys=14.3Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T14:50:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:51:08.056+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:51:58.799+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.2Mi, Sys=14.3Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T14:51:58.999+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:52:08.043+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:52:58.798+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.3Mi, Sys=14.3Mi, NumGC=5"}
+{"@timestamp":"2022-06-21T14:52:59.000+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:53:08.054+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:53:58.791+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.4Mi, Sys=14.3Mi, NumGC=5"}
+{"@timestamp":"2022-06-21T14:53:58.995+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:54:08.054+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:54:58.797+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.5Mi, Sys=14.3Mi, NumGC=6"}
+{"@timestamp":"2022-06-21T14:54:58.999+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:55:08.056+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:55:58.803+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.5Mi, Sys=14.3Mi, NumGC=6"}
+{"@timestamp":"2022-06-21T14:55:58.989+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:56:08.043+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:56:58.802+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.6Mi, Sys=14.3Mi, NumGC=7"}
+{"@timestamp":"2022-06-21T14:56:58.991+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:57:08.044+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:57:58.805+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.7Mi, Sys=14.3Mi, NumGC=7"}
+{"@timestamp":"2022-06-21T14:57:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:58:08.042+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:58:58.802+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.8Mi, Sys=14.3Mi, NumGC=8"}
+{"@timestamp":"2022-06-21T14:58:58.991+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T14:59:08.050+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T14:59:58.806+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.8Mi, Sys=14.3Mi, NumGC=8"}
+{"@timestamp":"2022-06-21T14:59:58.989+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:00:08.051+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:00:58.796+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.9Mi, Sys=14.3Mi, NumGC=9"}
+{"@timestamp":"2022-06-21T15:00:58.992+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:01:08.046+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:01:58.797+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.0Mi, Sys=14.3Mi, NumGC=9"}
+{"@timestamp":"2022-06-21T15:01:59.001+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:02:08.044+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:02:58.793+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.1Mi, Sys=14.3Mi, NumGC=10"}
+{"@timestamp":"2022-06-21T15:02:58.993+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:03:08.048+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:03:58.796+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.1Mi, Sys=14.3Mi, NumGC=10"}
+{"@timestamp":"2022-06-21T15:03:58.997+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:04:08.043+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:04:58.805+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.2Mi, Sys=14.3Mi, NumGC=11"}
+{"@timestamp":"2022-06-21T15:04:58.992+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:05:08.044+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:05:58.802+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.3Mi, Sys=14.3Mi, NumGC=11"}
+{"@timestamp":"2022-06-21T15:05:58.992+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:06:08.055+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:06:58.795+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.4Mi, Sys=14.3Mi, NumGC=12"}
+{"@timestamp":"2022-06-21T15:06:58.997+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:07:08.057+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:07:58.803+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.5Mi, Sys=14.3Mi, NumGC=12"}
+{"@timestamp":"2022-06-21T15:07:58.996+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:08:08.049+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:08:58.794+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.5Mi, Sys=14.3Mi, NumGC=13"}
+{"@timestamp":"2022-06-21T15:08:58.996+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:09:08.049+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:09:58.800+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.6Mi, Sys=14.3Mi, NumGC=13"}
+{"@timestamp":"2022-06-21T15:09:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:10:08.056+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:10:58.799+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.7Mi, Sys=14.3Mi, NumGC=14"}
+{"@timestamp":"2022-06-21T15:10:59.000+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:11:08.049+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:11:58.797+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.8Mi, Sys=14.3Mi, NumGC=14"}
+{"@timestamp":"2022-06-21T15:11:58.991+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:12:08.053+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:12:58.798+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.9Mi, Sys=14.3Mi, NumGC=15"}
+{"@timestamp":"2022-06-21T15:12:59.000+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:13:08.043+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:13:58.804+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.9Mi, Sys=14.3Mi, NumGC=15"}
+{"@timestamp":"2022-06-21T15:13:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:14:08.053+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:14:58.791+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.0Mi, Sys=14.3Mi, NumGC=16"}
+{"@timestamp":"2022-06-21T15:14:58.991+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:15:08.045+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:15:58.803+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.1Mi, Sys=14.3Mi, NumGC=16"}
+{"@timestamp":"2022-06-21T15:15:58.989+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:16:08.054+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:16:58.795+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.2Mi, Sys=14.3Mi, NumGC=17"}
+{"@timestamp":"2022-06-21T15:16:58.997+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:17:08.048+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:17:58.801+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.2Mi, Sys=14.3Mi, NumGC=17"}
+{"@timestamp":"2022-06-21T15:17:58.989+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:18:08.051+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:18:58.806+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.3Mi, Sys=14.3Mi, NumGC=18"}
+{"@timestamp":"2022-06-21T15:18:58.992+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:19:08.055+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:19:58.799+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.4Mi, Sys=14.3Mi, NumGC=18"}
+{"@timestamp":"2022-06-21T15:19:59.000+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:20:08.053+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:20:58.796+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.5Mi, Sys=14.3Mi, NumGC=19"}
+{"@timestamp":"2022-06-21T15:20:58.996+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:21:08.053+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:21:58.800+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.5Mi, Sys=14.3Mi, NumGC=19"}
+{"@timestamp":"2022-06-21T15:21:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:22:08.044+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:22:58.796+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.6Mi, Sys=14.3Mi, NumGC=20"}
+{"@timestamp":"2022-06-21T15:22:58.997+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:23:08.042+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:23:58.801+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.7Mi, Sys=14.3Mi, NumGC=20"}
+{"@timestamp":"2022-06-21T15:23:59.002+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:24:08.044+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:24:58.805+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.8Mi, Sys=14.3Mi, NumGC=21"}
+{"@timestamp":"2022-06-21T15:24:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:25:08.056+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:25:58.800+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.9Mi, Sys=14.3Mi, NumGC=21"}
+{"@timestamp":"2022-06-21T15:25:59.000+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:26:08.055+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:26:58.798+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.0Mi, Sys=14.3Mi, NumGC=22"}
+{"@timestamp":"2022-06-21T15:26:59.000+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:27:08.042+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:27:58.795+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.0Mi, Sys=14.3Mi, NumGC=22"}
+{"@timestamp":"2022-06-21T15:27:58.994+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:28:08.050+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:28:58.796+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.1Mi, Sys=14.3Mi, NumGC=23"}
+{"@timestamp":"2022-06-21T15:28:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:29:08.048+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:29:58.794+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.2Mi, Sys=14.3Mi, NumGC=23"}
+{"@timestamp":"2022-06-21T15:29:58.994+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:30:08.054+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:30:58.794+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.2Mi, Sys=14.3Mi, NumGC=24"}
+{"@timestamp":"2022-06-21T15:30:58.995+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:31:08.049+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:31:58.803+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.3Mi, Sys=14.3Mi, NumGC=24"}
+{"@timestamp":"2022-06-21T15:31:59.005+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:32:08.052+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:32:58.802+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.4Mi, Sys=14.3Mi, NumGC=25"}
+{"@timestamp":"2022-06-21T15:32:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:33:08.054+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:33:58.794+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.5Mi, Sys=14.3Mi, NumGC=25"}
+{"@timestamp":"2022-06-21T15:33:58.990+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:34:08.045+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:34:58.805+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.6Mi, Sys=14.3Mi, NumGC=26"}
+{"@timestamp":"2022-06-21T15:34:58.992+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:35:08.047+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:35:58.803+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.6Mi, Sys=14.3Mi, NumGC=26"}
+{"@timestamp":"2022-06-21T15:35:58.999+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:36:08.093+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:37:36.506+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.0Mi, Sys=13.8Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T15:37:36.645+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 1, pass: 1, drop: 0"}
+{"@timestamp":"2022-06-21T15:38:17.453+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 11.0ms, med: 11.6ms, 90th: 11.6ms, 99th: 11.6ms, 99.9th: 11.6ms"}
+{"@timestamp":"2022-06-21T15:38:36.519+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.6Mi, TotalAlloc=7.1Mi, Sys=13.8Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T15:38:36.646+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:39:17.445+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:39:36.517+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.3Mi, TotalAlloc=7.2Mi, Sys=13.8Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T15:39:36.657+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:40:17.442+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:40:36.513+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.3Mi, Sys=14.0Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T15:40:36.651+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:41:17.448+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:41:36.505+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.3Mi, TotalAlloc=7.4Mi, Sys=14.0Mi, NumGC=5"}
+{"@timestamp":"2022-06-21T15:41:36.660+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:42:17.446+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:42:36.512+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.5Mi, Sys=14.0Mi, NumGC=5"}
+{"@timestamp":"2022-06-21T15:42:36.650+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:43:17.444+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:43:36.517+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.3Mi, TotalAlloc=7.6Mi, Sys=14.0Mi, NumGC=6"}
+{"@timestamp":"2022-06-21T15:43:36.657+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:44:17.440+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:44:36.519+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.6Mi, Sys=14.0Mi, NumGC=6"}
+{"@timestamp":"2022-06-21T15:44:36.645+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:45:17.451+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:45:36.518+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.9Mi, Sys=14.0Mi, NumGC=7"}
+{"@timestamp":"2022-06-21T15:45:36.657+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 1, pass: 1, drop: 0"}
+{"@timestamp":"2022-06-21T15:47:20.880+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.7Mi, TotalAlloc=7.1Mi, Sys=18.4Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T15:47:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 1, pass: 1, drop: 0"}
+{"@timestamp":"2022-06-21T15:47:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 163.0ms, med: 163.9ms, 90th: 163.9ms, 99th: 163.9ms, 99.9th: 163.9ms"}
+{"@timestamp":"2022-06-21T15:48:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.9Mi, TotalAlloc=7.2Mi, Sys=18.4Mi, NumGC=3"}
+{"@timestamp":"2022-06-21T15:48:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:48:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:49:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.3Mi, Sys=18.7Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T15:49:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:49:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:50:20.879+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.6Mi, TotalAlloc=7.4Mi, Sys=18.7Mi, NumGC=4"}
+{"@timestamp":"2022-06-21T15:50:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:50:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:51:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.5Mi, Sys=18.7Mi, NumGC=5"}
+{"@timestamp":"2022-06-21T15:51:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:51:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:52:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.7Mi, Sys=18.7Mi, NumGC=5"}
+{"@timestamp":"2022-06-21T15:52:20.985+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:52:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:53:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=7.8Mi, Sys=18.7Mi, NumGC=6"}
+{"@timestamp":"2022-06-21T15:53:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:53:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:54:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=7.8Mi, Sys=18.7Mi, NumGC=6"}
+{"@timestamp":"2022-06-21T15:54:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:54:35.858+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:55:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.0Mi, Sys=18.7Mi, NumGC=7"}
+{"@timestamp":"2022-06-21T15:55:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:55:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:56:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.0Mi, Sys=18.7Mi, NumGC=7"}
+{"@timestamp":"2022-06-21T15:56:20.987+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:56:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:57:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.2Mi, Sys=18.7Mi, NumGC=8"}
+{"@timestamp":"2022-06-21T15:57:20.984+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:57:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:58:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.2Mi, Sys=18.7Mi, NumGC=8"}
+{"@timestamp":"2022-06-21T15:58:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:58:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T15:59:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.3Mi, Sys=18.7Mi, NumGC=9"}
+{"@timestamp":"2022-06-21T15:59:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T15:59:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:00:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.4Mi, Sys=18.7Mi, NumGC=9"}
+{"@timestamp":"2022-06-21T16:00:20.985+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:00:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:01:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.5Mi, Sys=18.7Mi, NumGC=10"}
+{"@timestamp":"2022-06-21T16:01:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:01:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:02:20.871+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.6Mi, Sys=18.7Mi, NumGC=10"}
+{"@timestamp":"2022-06-21T16:02:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:02:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:03:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.7Mi, Sys=18.7Mi, NumGC=11"}
+{"@timestamp":"2022-06-21T16:03:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:03:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:04:20.871+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=8.8Mi, Sys=18.7Mi, NumGC=11"}
+{"@timestamp":"2022-06-21T16:04:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:04:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:05:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=8.9Mi, Sys=18.7Mi, NumGC=12"}
+{"@timestamp":"2022-06-21T16:05:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:05:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:06:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.0Mi, Sys=18.7Mi, NumGC=12"}
+{"@timestamp":"2022-06-21T16:06:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:06:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:07:20.869+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.1Mi, Sys=18.7Mi, NumGC=13"}
+{"@timestamp":"2022-06-21T16:07:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:07:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:08:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.2Mi, Sys=18.7Mi, NumGC=13"}
+{"@timestamp":"2022-06-21T16:08:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:08:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:09:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.3Mi, Sys=18.7Mi, NumGC=14"}
+{"@timestamp":"2022-06-21T16:09:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:09:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:10:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.4Mi, Sys=18.7Mi, NumGC=14"}
+{"@timestamp":"2022-06-21T16:10:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:10:35.858+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:11:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.5Mi, Sys=18.7Mi, NumGC=15"}
+{"@timestamp":"2022-06-21T16:11:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:11:35.858+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:12:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.6Mi, Sys=18.7Mi, NumGC=15"}
+{"@timestamp":"2022-06-21T16:12:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:12:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:13:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.7Mi, Sys=18.7Mi, NumGC=16"}
+{"@timestamp":"2022-06-21T16:13:20.985+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:13:35.858+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:14:20.875+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=9.8Mi, Sys=18.7Mi, NumGC=16"}
+{"@timestamp":"2022-06-21T16:14:20.984+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:14:35.854+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:15:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=9.8Mi, Sys=18.7Mi, NumGC=17"}
+{"@timestamp":"2022-06-21T16:15:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:15:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:16:20.885+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.0Mi, Sys=18.7Mi, NumGC=17"}
+{"@timestamp":"2022-06-21T16:16:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:16:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:17:20.874+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.1Mi, Sys=18.7Mi, NumGC=18"}
+{"@timestamp":"2022-06-21T16:17:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:17:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:18:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.2Mi, Sys=18.7Mi, NumGC=18"}
+{"@timestamp":"2022-06-21T16:18:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:18:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:19:20.884+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.3Mi, Sys=18.7Mi, NumGC=19"}
+{"@timestamp":"2022-06-21T16:19:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:19:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:20:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.4Mi, Sys=18.7Mi, NumGC=19"}
+{"@timestamp":"2022-06-21T16:20:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:20:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:21:20.883+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.5Mi, Sys=18.7Mi, NumGC=20"}
+{"@timestamp":"2022-06-21T16:21:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:21:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:22:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.6Mi, Sys=18.7Mi, NumGC=20"}
+{"@timestamp":"2022-06-21T16:22:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:22:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:23:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.7Mi, Sys=18.7Mi, NumGC=21"}
+{"@timestamp":"2022-06-21T16:23:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:23:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:24:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=10.8Mi, Sys=18.7Mi, NumGC=21"}
+{"@timestamp":"2022-06-21T16:24:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:24:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:25:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=10.9Mi, Sys=18.7Mi, NumGC=22"}
+{"@timestamp":"2022-06-21T16:25:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:25:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:26:20.874+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=11.0Mi, Sys=18.7Mi, NumGC=22"}
+{"@timestamp":"2022-06-21T16:26:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:26:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:27:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=11.1Mi, Sys=18.7Mi, NumGC=23"}
+{"@timestamp":"2022-06-21T16:27:20.988+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:27:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:28:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=11.2Mi, Sys=18.7Mi, NumGC=23"}
+{"@timestamp":"2022-06-21T16:28:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:28:35.854+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:29:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=11.3Mi, Sys=18.7Mi, NumGC=24"}
+{"@timestamp":"2022-06-21T16:29:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:29:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:30:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=11.4Mi, Sys=18.7Mi, NumGC=24"}
+{"@timestamp":"2022-06-21T16:30:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:30:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:31:20.879+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=11.5Mi, Sys=18.7Mi, NumGC=25"}
+{"@timestamp":"2022-06-21T16:31:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:31:35.850+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:32:20.875+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=11.6Mi, Sys=18.7Mi, NumGC=25"}
+{"@timestamp":"2022-06-21T16:32:20.983+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:32:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:33:20.880+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=11.7Mi, Sys=18.7Mi, NumGC=26"}
+{"@timestamp":"2022-06-21T16:33:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:33:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:34:20.874+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=11.8Mi, Sys=18.7Mi, NumGC=26"}
+{"@timestamp":"2022-06-21T16:34:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:34:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:35:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=11.9Mi, Sys=18.7Mi, NumGC=27"}
+{"@timestamp":"2022-06-21T16:35:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:35:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:36:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=12.0Mi, Sys=18.7Mi, NumGC=27"}
+{"@timestamp":"2022-06-21T16:36:20.983+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:36:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:37:20.883+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=12.1Mi, Sys=18.7Mi, NumGC=28"}
+{"@timestamp":"2022-06-21T16:37:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:37:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:38:20.875+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=12.2Mi, Sys=18.7Mi, NumGC=28"}
+{"@timestamp":"2022-06-21T16:38:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:38:35.853+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:39:20.885+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=12.3Mi, Sys=18.7Mi, NumGC=29"}
+{"@timestamp":"2022-06-21T16:39:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:39:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:40:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=12.4Mi, Sys=18.7Mi, NumGC=29"}
+{"@timestamp":"2022-06-21T16:40:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:40:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:41:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=12.5Mi, Sys=18.7Mi, NumGC=30"}
+{"@timestamp":"2022-06-21T16:41:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:41:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:42:20.874+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=12.6Mi, Sys=18.7Mi, NumGC=30"}
+{"@timestamp":"2022-06-21T16:42:20.983+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:42:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:43:20.879+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=12.7Mi, Sys=18.7Mi, NumGC=31"}
+{"@timestamp":"2022-06-21T16:43:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:43:35.850+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:44:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=12.8Mi, Sys=18.7Mi, NumGC=31"}
+{"@timestamp":"2022-06-21T16:44:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:44:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:45:20.884+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=12.9Mi, Sys=18.7Mi, NumGC=32"}
+{"@timestamp":"2022-06-21T16:45:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:45:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:46:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=13.0Mi, Sys=18.7Mi, NumGC=32"}
+{"@timestamp":"2022-06-21T16:46:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:46:35.853+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:47:20.884+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=13.1Mi, Sys=18.7Mi, NumGC=33"}
+{"@timestamp":"2022-06-21T16:47:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:47:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:48:20.874+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=13.2Mi, Sys=18.7Mi, NumGC=33"}
+{"@timestamp":"2022-06-21T16:48:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:48:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:49:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=13.3Mi, Sys=18.7Mi, NumGC=34"}
+{"@timestamp":"2022-06-21T16:49:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:49:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:50:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=13.5Mi, Sys=18.7Mi, NumGC=34"}
+{"@timestamp":"2022-06-21T16:50:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:50:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:51:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=13.5Mi, Sys=18.7Mi, NumGC=35"}
+{"@timestamp":"2022-06-21T16:51:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:51:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:52:20.869+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=13.6Mi, Sys=18.7Mi, NumGC=35"}
+{"@timestamp":"2022-06-21T16:52:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:52:35.852+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:53:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=13.7Mi, Sys=18.7Mi, NumGC=36"}
+{"@timestamp":"2022-06-21T16:53:20.986+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:53:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:54:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=13.8Mi, Sys=18.7Mi, NumGC=36"}
+{"@timestamp":"2022-06-21T16:54:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:54:35.852+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:55:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=13.9Mi, Sys=18.7Mi, NumGC=37"}
+{"@timestamp":"2022-06-21T16:55:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:55:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:56:20.879+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=14.0Mi, Sys=18.7Mi, NumGC=37"}
+{"@timestamp":"2022-06-21T16:56:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:56:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:57:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=14.1Mi, Sys=18.7Mi, NumGC=38"}
+{"@timestamp":"2022-06-21T16:57:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:57:35.858+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:58:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=14.2Mi, Sys=18.7Mi, NumGC=38"}
+{"@timestamp":"2022-06-21T16:58:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:58:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T16:59:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=14.3Mi, Sys=18.7Mi, NumGC=39"}
+{"@timestamp":"2022-06-21T16:59:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T16:59:35.854+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:00:20.884+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=14.4Mi, Sys=18.7Mi, NumGC=39"}
+{"@timestamp":"2022-06-21T17:00:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:00:35.852+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:01:20.880+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=14.5Mi, Sys=18.7Mi, NumGC=40"}
+{"@timestamp":"2022-06-21T17:01:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:01:35.859+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:02:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=14.6Mi, Sys=18.7Mi, NumGC=40"}
+{"@timestamp":"2022-06-21T17:02:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:02:35.850+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:03:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=14.7Mi, Sys=18.7Mi, NumGC=41"}
+{"@timestamp":"2022-06-21T17:03:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:03:35.854+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:04:20.871+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=14.8Mi, Sys=18.7Mi, NumGC=41"}
+{"@timestamp":"2022-06-21T17:04:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:04:35.852+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:05:20.874+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=14.9Mi, Sys=18.7Mi, NumGC=42"}
+{"@timestamp":"2022-06-21T17:05:20.984+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:05:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:06:20.876+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=15.0Mi, Sys=18.7Mi, NumGC=42"}
+{"@timestamp":"2022-06-21T17:06:20.983+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:06:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:07:20.877+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=15.1Mi, Sys=18.7Mi, NumGC=43"}
+{"@timestamp":"2022-06-21T17:07:20.985+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:07:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:08:20.883+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=15.2Mi, Sys=18.7Mi, NumGC=43"}
+{"@timestamp":"2022-06-21T17:08:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:08:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:09:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=15.3Mi, Sys=18.7Mi, NumGC=44"}
+{"@timestamp":"2022-06-21T17:09:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:09:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:10:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=15.4Mi, Sys=18.7Mi, NumGC=44"}
+{"@timestamp":"2022-06-21T17:10:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:10:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:11:20.884+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=15.5Mi, Sys=18.7Mi, NumGC=45"}
+{"@timestamp":"2022-06-21T17:11:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:11:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:12:20.871+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.6Mi, TotalAlloc=15.6Mi, Sys=18.7Mi, NumGC=45"}
+{"@timestamp":"2022-06-21T17:12:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:12:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:13:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=15.7Mi, Sys=18.7Mi, NumGC=46"}
+{"@timestamp":"2022-06-21T17:13:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:13:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:14:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=15.8Mi, Sys=18.7Mi, NumGC=46"}
+{"@timestamp":"2022-06-21T17:14:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:14:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:15:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=15.9Mi, Sys=18.7Mi, NumGC=47"}
+{"@timestamp":"2022-06-21T17:15:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:15:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:16:20.883+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=16.0Mi, Sys=18.7Mi, NumGC=47"}
+{"@timestamp":"2022-06-21T17:16:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:16:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:17:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=16.1Mi, Sys=18.7Mi, NumGC=48"}
+{"@timestamp":"2022-06-21T17:17:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:17:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:18:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=16.2Mi, Sys=18.7Mi, NumGC=48"}
+{"@timestamp":"2022-06-21T17:18:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:18:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:19:20.879+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=16.3Mi, Sys=18.7Mi, NumGC=49"}
+{"@timestamp":"2022-06-21T17:19:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:19:35.852+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:20:20.875+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=16.4Mi, Sys=18.7Mi, NumGC=49"}
+{"@timestamp":"2022-06-21T17:20:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:20:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:21:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=16.5Mi, Sys=18.7Mi, NumGC=50"}
+{"@timestamp":"2022-06-21T17:21:20.986+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:21:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:22:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=16.6Mi, Sys=18.7Mi, NumGC=50"}
+{"@timestamp":"2022-06-21T17:22:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:22:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:23:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=16.7Mi, Sys=18.7Mi, NumGC=51"}
+{"@timestamp":"2022-06-21T17:23:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:23:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:24:20.884+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=16.8Mi, Sys=18.7Mi, NumGC=51"}
+{"@timestamp":"2022-06-21T17:24:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:24:35.854+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:25:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=16.9Mi, Sys=18.7Mi, NumGC=52"}
+{"@timestamp":"2022-06-21T17:25:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:25:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:26:20.881+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=17.0Mi, Sys=18.7Mi, NumGC=52"}
+{"@timestamp":"2022-06-21T17:26:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:26:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:27:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=17.2Mi, Sys=18.7Mi, NumGC=53"}
+{"@timestamp":"2022-06-21T17:27:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:27:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:28:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=17.3Mi, Sys=18.7Mi, NumGC=53"}
+{"@timestamp":"2022-06-21T17:28:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:28:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:29:20.871+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=17.4Mi, Sys=18.7Mi, NumGC=54"}
+{"@timestamp":"2022-06-21T17:29:20.979+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:29:35.845+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:30:20.878+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=17.5Mi, Sys=18.7Mi, NumGC=54"}
+{"@timestamp":"2022-06-21T17:30:20.985+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:30:35.852+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:31:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=17.6Mi, Sys=18.7Mi, NumGC=55"}
+{"@timestamp":"2022-06-21T17:31:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:31:35.850+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:32:20.872+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=17.7Mi, Sys=18.7Mi, NumGC=55"}
+{"@timestamp":"2022-06-21T17:32:20.981+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:32:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:33:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=17.8Mi, Sys=18.7Mi, NumGC=56"}
+{"@timestamp":"2022-06-21T17:33:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:33:35.850+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:34:20.875+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=17.9Mi, Sys=18.7Mi, NumGC=56"}
+{"@timestamp":"2022-06-21T17:34:20.977+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:34:35.847+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:35:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=17.9Mi, Sys=18.7Mi, NumGC=57"}
+{"@timestamp":"2022-06-21T17:35:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:35:35.856+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:36:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=18.0Mi, Sys=18.7Mi, NumGC=57"}
+{"@timestamp":"2022-06-21T17:36:20.980+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:36:35.848+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:37:20.875+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=18.2Mi, Sys=18.7Mi, NumGC=58"}
+{"@timestamp":"2022-06-21T17:37:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:37:35.849+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:38:20.873+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.5Mi, TotalAlloc=18.2Mi, Sys=18.7Mi, NumGC=58"}
+{"@timestamp":"2022-06-21T17:38:20.982+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:38:35.851+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:39:20.870+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=18.3Mi, Sys=18.7Mi, NumGC=59"}
+{"@timestamp":"2022-06-21T17:39:20.978+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:39:35.846+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:40:20.880+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.6Mi, TotalAlloc=18.4Mi, Sys=18.7Mi, NumGC=59"}
+{"@timestamp":"2022-06-21T17:40:20.975+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:40:35.855+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}
+{"@timestamp":"2022-06-21T17:41:20.882+08:00","level":"stat","content":"CPU: 0m, MEMORY: Alloc=3.4Mi, TotalAlloc=18.5Mi, Sys=18.7Mi, NumGC=60"}
+{"@timestamp":"2022-06-21T17:41:20.976+08:00","level":"stat","content":"(rpc) shedding_stat [1m], cpu: 0, total: 0, pass: 0, drop: 0"}
+{"@timestamp":"2022-06-21T17:41:35.857+08:00","level":"stat","content":"(knowledge.rpc) - qps: 0.0/s, drops: 0, avg time: 0.0ms, med: 0.0ms, 90th: 0.0ms, 99th: 0.0ms, 99.9th: 0.0ms"}

+ 8 - 4
rpc/knowledge/test/knowledge_test.go

@@ -25,8 +25,8 @@ func Test_KnowledgeAdd(t *testing.T) {
 	req := &knowledgeclient.AddRequest{}
 	req.AppId = "10000"
 	req.TenantId = "10000"
-	req.Question = "超级订阅在哪设置订阅提醒,订阅关键词怎么设置?"
-	req.Answer = "可以再app中”我的“,”订阅设置“中设置。"
+	req.Question = "超级订阅在哪设置订阅提醒,超级订阅用户有哪些权益?"
+	req.Answer = "超级订阅用户权益有订阅设置。"
 	req.Person = "王三"
 	res, err := TestSystem.KnowledgeAdd(ctx, req)
 	log.Println("res ", res)
@@ -49,7 +49,7 @@ func Test_KnowledgeInfo(t *testing.T) {
 	ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
 	TestSystem := knowledgeclient.NewKnowledge(zrpc.MustNewClient(c.TestConf))
 	req := &knowledgeclient.KnowledgeEntity{}
-	req.AnswerId = 1
+	req.AnswerId = 23
 	res, err := TestSystem.KnowledgeInfo(ctx, req)
 	log.Println("res ", res)
 	log.Println("err ", err)
@@ -59,7 +59,11 @@ func Test_KnowledgeEdit(t *testing.T) {
 	ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
 	TestSystem := knowledgeclient.NewKnowledge(zrpc.MustNewClient(c.TestConf))
 	req := &knowledgeclient.KnowledgeEditReq{}
-	req.AnswerId = 1
+	req.AnswerId = 23
+	req.KnowledgeId = 1
+	req.TenantId = 10000
+	req.Question = "大会员权益有哪些,如何购买?"
+	req.Answer = "大会员有超级多的权益,好处多多,在剑鱼网站直接购买。"
 	res, err := TestSystem.KnowledgeEdit(ctx, req)
 	log.Println("res ", res)
 	log.Println("err ", err)

+ 4 - 4
rpc/knowledge/util/elasticsearch_dsl.go

@@ -62,9 +62,9 @@ func DSL4SmartResponse(question string, tenantId int64, msgType int) string {
 			queryPercent = "55%"
 		}
 		if msgType == 1 {
-			typeStr = "knowledgeKeyWords"
+			typeStr = "keywords"
 		} else if msgType == 2 { //百度语音过来的
-			typeStr = "knowledgeKeyWords.key_pinyin"
+			typeStr = "keywords.key_pinyin"
 		}
 		/*2使用sik分词将问题分词以获取更多查询词语*/
 		//mustque := ElasticSmartIK(question, "http://39.106.145.77:9201/smart/_analyze")
@@ -73,8 +73,8 @@ func DSL4SmartResponse(question string, tenantId int64, msgType int) string {
 			postFilter = fmt.Sprintf(postFilter, mustque)
 		}
 		query = fmt.Sprintf(query, "", typeStr, question, queryPercent, strconv.Itoa(int(tenantId)))
-		queryDSL := fmt.Sprintf(totalQuery, postFilter, query, `,"answer","questions","_id"`, 1)
-		//log.Println("queryDSL:", queryDSL)
+		queryDSL := fmt.Sprintf(totalQuery, postFilter, query, `,"answer","question","_id"`, 1)
+		log.Println("queryDSL:", queryDSL)
 		return queryDSL
 	}
 	return ""