1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 05:57:03 +09:00
any-sync/metric/log.go
2023-06-13 15:32:46 +02:00

69 lines
1.4 KiB
Go

package metric
import (
"context"
"github.com/anyproto/any-sync/net/peer"
"go.uber.org/zap"
"time"
)
func Method(val string) zap.Field {
return zap.String("rpc", val)
}
func QueueDur(val time.Duration) zap.Field {
return zap.Float64("queueDur", val.Seconds())
}
func TotalDur(val time.Duration) zap.Field {
return zap.Float64("totalDur", val.Seconds())
}
func SpaceId(val string) zap.Field {
return zap.String("spaceId", val)
}
func ObjectId(val string) zap.Field {
return zap.String("objectId", val)
}
func PeerId(val string) zap.Field {
return zap.String("peerId", val)
}
func PeerVersion(val string) zap.Field {
return zap.String("peerVersion", val)
}
func Identity(val string) zap.Field {
return zap.String("identity", val)
}
func App(app string) zap.Field {
return zap.String("app", app)
}
func FileId(fileId string) zap.Field {
return zap.String("fileId", fileId)
}
func Cid(cid string) zap.Field {
return zap.String("cid", cid)
}
func Size(size int) zap.Field {
return zap.Int("size", size)
}
func (m *metric) RequestLog(ctx context.Context, rpc string, fields ...zap.Field) {
if m == nil {
return
}
peerId, _ := peer.CtxPeerId(ctx)
ak, _ := peer.CtxPubKey(ctx)
var acc string
if ak != nil {
acc = ak.Account()
}
m.rpcLog.Info("", append(fields, m.appField, PeerId(peerId), Identity(acc), Method(rpc), PeerVersion(peer.CtxPeerClientVersion(ctx)))...)
}