feat: 添加日志处理

Signed-off-by: devad <cossjie@foxmail.com>
This commit is contained in:
devad 2023-04-13 18:14:30 +08:00
parent a8a97e43e9
commit 0c073bab79
21 changed files with 133 additions and 28 deletions

3
.gitignore vendored
View File

@ -31,6 +31,3 @@ configs/tenanter.yaml
log/
/go_build_gitlink_org_cn_JCCE_PCM
/adaptor/PCM-K8S/PCM-K8S-NATIVE/rpc/kubenative/
/adaptor/PCM-K8S/PCM-K8S-NATIVE/rpc/kubenativeclient/
/adaptor/PCM-K8S/PCM-K8S-NATIVE/rpc/internal/server/

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -1,6 +1,7 @@
package main
import (
"PCM/common/interceptor/rpcserver"
"flag"
"github.com/zeromicro/go-zero/core/logx"
@ -34,6 +35,9 @@ func main() {
reflection.Register(grpcServer)
}
})
//rpc log
s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
defer s.Stop()
logx.Infof("Starting rpc server at %s...\n", c.ListenOn)

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -1,6 +1,7 @@
package main
import (
"PCM/common/interceptor/rpcserver"
"flag"
"fmt"
@ -32,6 +33,10 @@ func main() {
reflection.Register(grpcServer)
}
})
//rpc log
s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
defer s.Stop()
fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)

View File

@ -1,6 +1,7 @@
package main
import (
"PCM/common/interceptor/rpcserver"
"flag"
"fmt"
@ -32,6 +33,10 @@ func main() {
reflection.Register(grpcServer)
}
})
//rpc log
s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
defer s.Stop()
fmt.Printf("Starting rpc server at %s...\n", c.ListenOn)

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -7,6 +7,7 @@ import (
"PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic"
"PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/server"
"PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc"
"PCM/common/interceptor/rpcserver"
"PCM/common/tool"
"context"
"flag"
@ -36,6 +37,10 @@ func main() {
reflection.Register(grpcServer)
}
})
//rpc log
s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
defer s.Stop()
logx.Infof("Starting rpc server at %s...\n", c.ListenOn)

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -1,7 +1,9 @@
package main
import (
"PCM/common/interceptor/rpcserver"
"flag"
"github.com/zeromicro/go-zero/core/logx"
"PCM/adaptor/PCM-HPC/PCM-TH/rpc/hpcTH"
@ -34,6 +36,10 @@ func main() {
reflection.Register(grpcServer)
}
})
//rpc log
s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
defer s.Stop()
logx.Infof("Starting rpc server at %s...\n", c.ListenOn)

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -0,0 +1,2 @@
rpc-gen:
goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.

View File

@ -87,6 +87,5 @@ func (l *ListLogic) List(in *kubenative.ListReq) (*kubenative.Resp, error) {
marshal, _ := json.Marshal(unstructuredList)
msg.Data = string(marshal)
}
fmt.Print("查询数据", msg)
return msg, nil
}

View File

@ -71,11 +71,10 @@ func initCron(svc *svc.ServiceContext) {
YamlString: infoList.CloudInfoList[index].YamlString,
}
infoList.CloudInfoList[index].Status = "Pending"
applyResp, err := applyYamlLogic.ApplyYaml(&applyReq)
_, err := applyYamlLogic.ApplyYaml(&applyReq)
if err != nil {
return
}
println(applyResp)
}
// 查询Deployment列表
listLogic := logic.NewListLogic(context.Background(), svc)

View File

@ -0,0 +1,33 @@
package rpcserver
import (
"context"
"PCM/common/xerr"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/logx"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
// LoggerInterceptor rpc service logger interceptor
func LoggerInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
resp, err = handler(ctx, req)
if err != nil {
causeErr := errors.Cause(err) // err类型
if e, ok := causeErr.(*xerr.CodeError); ok { //自定义错误类型
logx.WithContext(ctx).Errorf("【RPC-SRV-ERR】 %+v", err)
//转成grpc err
err = status.Error(codes.Code(e.GetErrCode()), e.GetErrMsg())
} else {
logx.WithContext(ctx).Errorf("【RPC-SRV-ERR】 %+v", err)
}
}
return resp, err
}

View File

@ -1,10 +1,12 @@
package result
import (
"fmt"
"net/http"
"PCM/common/tool"
"PCM/common/xerr"
"context"
"fmt"
"go.opentelemetry.io/otel/trace"
"net/http"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/logx"
@ -12,13 +14,29 @@ import (
"google.golang.org/grpc/status"
)
type Body struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data,omitempty"`
TraceID string `json:"traceId,omitempty"`
}
// http返回
func HttpResult(r *http.Request, w http.ResponseWriter, resp interface{}, err error) {
if err == nil {
//成功返回
r := Success(resp)
httpx.WriteJson(w, http.StatusOK, r)
body := Body{}
tool.Convert(resp, &body)
if body.Msg == "" && body.Code == 0 {
body.Code = 200
body.Msg = "success"
body.TraceID = traceIDFromContext(r.Context())
httpx.OkJson(w, body)
return
} else {
body.TraceID = traceIDFromContext(r.Context())
httpx.OkJson(w, body)
}
} else {
//错误返回
errcode := xerr.SERVER_COMMON_ERROR
@ -41,7 +59,7 @@ func HttpResult(r *http.Request, w http.ResponseWriter, resp interface{}, err er
logx.WithContext(r.Context()).Errorf("【API-ERR】 : %+v ", err)
httpx.WriteJson(w, http.StatusBadRequest, Error(errcode, errmsg))
httpx.WriteJson(w, http.StatusBadRequest, Error(errcode, errmsg, r.Context()))
}
}
@ -50,7 +68,7 @@ func AuthHttpResult(r *http.Request, w http.ResponseWriter, resp interface{}, er
if err == nil {
//成功返回
r := Success(resp)
r := Success(resp, r.Context())
httpx.WriteJson(w, http.StatusOK, r)
} else {
//错误返回
@ -74,12 +92,21 @@ func AuthHttpResult(r *http.Request, w http.ResponseWriter, resp interface{}, er
logx.WithContext(r.Context()).Errorf("【GATEWAY-ERR】 : %+v ", err)
httpx.WriteJson(w, http.StatusUnauthorized, Error(errcode, errmsg))
httpx.WriteJson(w, http.StatusUnauthorized, Error(errcode, errmsg, r.Context()))
}
}
// http 参数错误返回
func ParamErrorResult(r *http.Request, w http.ResponseWriter, err error) {
errMsg := fmt.Sprintf("%s ,%s", xerr.MapErrMsg(xerr.REUQEST_PARAM_ERROR), err.Error())
httpx.WriteJson(w, http.StatusBadRequest, Error(xerr.REUQEST_PARAM_ERROR, errMsg))
httpx.WriteJson(w, http.StatusBadRequest, Error(xerr.REUQEST_PARAM_ERROR, errMsg, r.Context()))
}
func traceIDFromContext(ctx context.Context) string {
spanCtx := trace.SpanContextFromContext(ctx)
if spanCtx.HasTraceID() {
return spanCtx.TraceID().String()
}
return ""
}

View File

@ -1,21 +1,32 @@
package result
import (
"PCM/common/tool"
"context"
)
type ResponseSuccessBean struct {
Code uint32 `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
Code uint32 `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
TraceID string `json:"traceId,omitempty"`
}
type NullJson struct{}
func Success(data interface{}) *ResponseSuccessBean {
return &ResponseSuccessBean{200, "OK", data}
func Success(data interface{}, ctx context.Context) *ResponseSuccessBean {
resp := ResponseSuccessBean{}
tool.Convert(data, resp)
traceID := traceIDFromContext(ctx)
return &ResponseSuccessBean{200, "OK", data, traceID}
}
type ResponseErrorBean struct {
Code uint32 `json:"code"`
Msg string `json:"msg"`
Code uint32 `json:"code"`
Msg string `json:"msg"`
TraceID string `json:"traceId,omitempty"`
}
func Error(errCode uint32, errMsg string) *ResponseErrorBean {
return &ResponseErrorBean{errCode, errMsg}
func Error(errCode uint32, errMsg string, ctx context.Context) *ResponseErrorBean {
traceID := traceIDFromContext(ctx)
return &ResponseErrorBean{errCode, errMsg, traceID}
}

2
go.mod
View File

@ -17,6 +17,7 @@ require (
github.com/zeromicro/go-zero v1.5.0
google.golang.org/grpc v1.53.0
google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8
gopkg.in/yaml.v2 v2.4.0
gorm.io/driver/mysql v1.4.7
gorm.io/gorm v1.24.5
k8s.io/api v0.26.2
@ -101,7 +102,6 @@ require (
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/klog/v2 v2.80.1 // indirect
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect

2
go.sum
View File

@ -837,8 +837,6 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sony/sonyflake v1.1.0 h1:wnrEcL3aOkWmPlhScLEGAXKkLAIslnBteNUq4Bw6MM4=
github.com/sony/sonyflake v1.1.0/go.mod h1:LORtCywH/cq10ZbyfhKrHYgAUGH7mOBa76enV9txy/Y=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=