mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-08 05:57:03 +09:00
69 lines
1.4 KiB
Go
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)))...)
|
|
}
|