Commit 980875e0 authored by JaydenLink's avatar JaydenLink
Browse files

feat: add redis & db apm tracker

No related merge requests found
Showing with 32 additions and 26 deletions
+32 -26
......@@ -10,10 +10,9 @@ import (
"google.golang.org/grpc/metadata"
)
// 此文件代码为了兼容老的代码,如果去除这个文件,需要移除以下代码后yklogger包同样能运行:
// 此文件代码为了兼容老的代码,如果去除这个文件,需要移除以下代码后bvlogger包同样能运行:
// 1,去除EmptyLoggerContext及_test中的WithLogData
// 2,去除LoggerContextIface中的WithLogData
// 3, 去除yklog_test.go文件
// 4, contextCall添加到logger_context_test.go中
const (
......@@ -41,13 +40,13 @@ var levelMap = map[string]uint8{
func InitGlobalConfig(rootPath string, level string, appName string) error {
if rootPath == "" {
return errors.New("yklog初始化全局配置失败,参数rootPath不能为空")
return errors.New("bvlog初始化全局配置失败,参数rootPath不能为空")
}
if _, ok := levelMap[level]; !ok {
return errors.New("yklog初始化全局配置失败,参数level错误")
return errors.New("bvlog初始化全局配置失败,参数level错误")
}
if appName == "" {
return errors.New("yklog初始化全局配置失败,参數appName不能为空")
return errors.New("bvlog初始化全局配置失败,参數appName不能为空")
}
globalRootPath = rootPath
globalLevel = levelMap[level]
......
......@@ -25,7 +25,7 @@ func CreateLogger(logConf LoggerConf) (LoggerContextIface, error) {
} else {
ioLogger = zerolog.New(fileWriter)
}
//ioLogger.Level(zerolog.Level(ykLogger.loggerConf.Level))
//ioLogger.Level(zerolog.Level(bvLogger.loggerConf.Level))
bvLogger.logger = &ioLogger
return bvLogger, nil
......
......@@ -97,20 +97,20 @@ type LoggerContext struct {
}
// 用于全局设置logger对象的公共输出字段
// 例如:logger = logger.WithCommonFields(yklogger.Fields{"app-name":"project" })
// 例如:logger = logger.WithCommonFields(bvlogger.Fields{"app-name":"project" })
// {"level":"info",app-name":"project", "attach":{"process-id":25921,"speed":"33.771µs"},"msg":"for test"}
func (l *LoggerContext) WithCommonFields(commonFields Fields) LoggerContextIface {
ykLogger := l.clone()
ykLogger.commonFields = append(ykLogger.commonFields, commonFields)
return ykLogger
bvLogger := l.clone()
bvLogger.commonFields = append(bvLogger.commonFields, commonFields)
return bvLogger
}
// 用于输出自定义字段,同时又不影响整体的日志格式(将fields中指定的字段及值附加到attach中)
// {"level":"info","attach":{"process-id":25921,"speed":"33.771µs"},"msg":"for test"}
func (l *LoggerContext) WithFields(fields Fields) LoggerContextIface {
ykLogger := l.clone()
ykLogger.fields = append(ykLogger.fields, fields)
return ykLogger
bvLogger := l.clone()
bvLogger.fields = append(bvLogger.fields, fields)
return bvLogger
}
func (l *LoggerContext) WithContext(ctx context.Context) LoggerContextIface {
......@@ -123,21 +123,21 @@ func (l *LoggerContext) WithContext(ctx context.Context) LoggerContextIface {
}
func (l *LoggerContext) Tag(tag string) LoggerContextIface {
ykLogger := l.clone()
ykLogger.tag = tag
return ykLogger
bvLogger := l.clone()
bvLogger.tag = tag
return bvLogger
}
func (l *LoggerContext) RequestId(requestId string) LoggerContextIface {
ykLogger := l.clone()
ykLogger.requestId = requestId
return ykLogger
bvLogger := l.clone()
bvLogger.requestId = requestId
return bvLogger
}
func (l *LoggerContext) WithCaller(skip int) LoggerContextIface {
ykLogger := l.clone()
ykLogger.callerSkip = skip
return ykLogger
bvLogger := l.clone()
bvLogger.callerSkip = skip
return bvLogger
}
func (l *LoggerContext) Debug(ctx context.Context, args ...interface{}) {
......
......@@ -4,6 +4,7 @@ import (
"context"
"crypto/tls"
"github.com/gin-gonic/gin"
"github.com/go-redis/redis/v8"
"github.com/grpc-ecosystem/grpc-gateway/runtime"
"github.com/robfig/cron"
"gitlab.blockvision.org/common/firebolt/common/bvlog"
......@@ -221,3 +222,7 @@ type ConfigerIface interface {
LoadAppConfig(*Application) error
WatchUpdateConfig()
}
type RedisConnIface interface {
GetClient() *redis.ClusterClient
}
......@@ -8,7 +8,7 @@ import (
const (
// 日志打印时默认的堆栈跳过层数
DefaultCallerSkip = bvlog.YKLOG_CALLER_SKIP + 1
DefaultCallerSkip = bvlog.BVLOG_CALLER_SKIP + 1
)
type ErrLoggerContextIface interface {
......
......@@ -10,7 +10,7 @@ import (
// 初始化全局日志配置(指定公司内部约定路径和服务名)
func NewLogGlobalConfig(application *firebolt.Application) error {
rootPath := "/var/log/service"
rootPath := "/bv/logs/service"
if application.LoggerRootPath != "" {
rootPath = application.LoggerRootPath
......@@ -19,7 +19,7 @@ func NewLogGlobalConfig(application *firebolt.Application) error {
}
err := bvlog.InitGlobalConfig(rootPath, "debug", application.Name)
if err != nil {
return fmt.Errorf("Yklog.InitGlobalConfig: %v", err)
return fmt.Errorf("bvlog.InitGlobalConfig: %v", err)
}
firebolt.Logger, err = helper.NewLogger()
......
......@@ -17,7 +17,7 @@ func NewHTTPApplication(httpApp *firebolt.HTTPApplication) error {
var err error
httpApp.TrackLogger, err = bvlog.GetAccessLogger("http.track")
if err != nil {
return fmt.Errorf("Yklog.GetAccessLogger: %v", err)
return fmt.Errorf("bvlog.GetAccessLogger: %v", err)
}
return nil
}
......
......@@ -6,6 +6,7 @@ import (
"github.com/go-redis/redis/v8"
"gitlab.blockvision.org/common/firebolt/pkg/config"
"gitlab.blockvision.org/common/firebolt/pkg/log"
"go.elastic.co/apm/module/apmgoredisv8/v2"
"go.uber.org/atomic"
"time"
)
......@@ -23,6 +24,7 @@ func InitRedisClient() (*redis.ClusterClient, error) {
hook := new(RedisLoggerHook)
redisClient.AddHook(hook)
}
redisClient.AddHook(apmgoredisv8.NewHook())
ctx, cancel := context.WithTimeout(context.TODO(), 5*time.Second)
defer cancel()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment