fix: defer set(err) will always make err be nil, replaced by defer func(){set(err)}, same as setWithLabels(err, labels)

Signed-off-by: Victor1319 <834863182@qq.com>
This commit is contained in:
Victor1319 2021-02-20 15:32:00 +08:00
parent 460fba34be
commit e3012d3f0e
5 changed files with 125 additions and 43 deletions

View File

@ -82,7 +82,9 @@ func (d *Dir) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.Cr
var err error
metric := exporter.NewTPCnt("filecreate")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
info, err := d.super.mw.Create_ll(d.info.Inode, req.Name, proto.Mode(req.Mode.Perm()), req.Uid, req.Gid, nil)
if err != nil {
@ -130,7 +132,9 @@ func (d *Dir) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error
var err error
metric := exporter.NewTPCnt("mkdir")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
info, err := d.super.mw.Create_ll(d.info.Inode, req.Name, proto.Mode(os.ModeDir|req.Mode.Perm()), req.Uid, req.Gid, nil)
if err != nil {
@ -159,7 +163,9 @@ func (d *Dir) Remove(ctx context.Context, req *fuse.RemoveRequest) error {
var err error
metric := exporter.NewTPCnt("remove")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
info, err := d.super.mw.Delete_ll(d.info.Inode, req.Name, req.Dir)
if err != nil {
@ -234,7 +240,9 @@ func (d *Dir) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error) {
var err error
metric := exporter.NewTPCnt("readdir")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
children, err := d.super.mw.ReadDir_ll(d.info.Inode)
if err != nil {
@ -284,7 +292,9 @@ func (d *Dir) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Nod
var err error
metric := exporter.NewTPCnt("rename")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
err = d.super.mw.Rename_ll(d.info.Inode, req.OldName, dstDir.info.Inode, req.NewName)
if err != nil {
@ -335,7 +345,9 @@ func (d *Dir) Mknod(ctx context.Context, req *fuse.MknodRequest) (fs.Node, error
var err error
metric := exporter.NewTPCnt("mknod")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
info, err := d.super.mw.Create_ll(d.info.Inode, req.Name, proto.Mode(req.Mode), req.Uid, req.Gid, nil)
if err != nil {
@ -362,7 +374,9 @@ func (d *Dir) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, e
var err error
metric := exporter.NewTPCnt("symlink")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
info, err := d.super.mw.Create_ll(parentIno, req.NewName, proto.Mode(os.ModeSymlink|os.ModePerm), req.Uid, req.Gid, []byte(req.Target))
if err != nil {
@ -401,7 +415,9 @@ func (d *Dir) Link(ctx context.Context, req *fuse.LinkRequest, old fs.Node) (fs.
var err error
metric := exporter.NewTPCnt("link")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: d.super.volname})
}()
info, err := d.super.mw.Link(d.info.Inode, req.NewName, oldInode.Inode)
if err != nil {

View File

@ -161,7 +161,9 @@ func (f *File) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadR
start := time.Now()
metric := exporter.NewTPCnt("fileread")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: f.super.volname})
}()
size, err := f.super.ec.Read(f.info.Inode, resp.Data[fuse.OutHeaderSize:], int(req.Offset), req.Size)
if err != nil && err != io.EOF {
@ -228,7 +230,9 @@ func (f *File) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.Wri
start := time.Now()
metric := exporter.NewTPCnt("filewrite")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: f.super.volname})
}()
size, err := f.super.ec.Write(ino, int(req.Offset), req.Data, flags)
if err != nil {
@ -265,7 +269,9 @@ func (f *File) Flush(ctx context.Context, req *fuse.FlushRequest) (err error) {
start := time.Now()
metric := exporter.NewTPCnt("filesync")
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: f.super.volname})
}()
err = f.super.ec.Flush(f.info.Inode)
if err != nil {

View File

@ -77,9 +77,11 @@ func (m *metadataManager) getPacketLabels(p *Packet) (labels map[string]string)
log.LogErrorf("[metaManager] getPacketLabels metric packet: %v, partitions: %v", p, m.partitions)
return
}
labels["partid"] = fmt.Sprintf("%d", p.PartitionID)
labels["vol"] = mp.GetBaseConfig().VolName
labels["op"] = p.GetOpMsg()
if exporter.EnablePid {
labels[exporter.PartId] = fmt.Sprintf("%d", p.PartitionID)
}
labels[exporter.Vol] = mp.GetBaseConfig().VolName
labels[exporter.Op] = p.GetOpMsg()
return
}
@ -88,7 +90,9 @@ func (m *metadataManager) getPacketLabels(p *Packet) (labels map[string]string)
func (m *metadataManager) HandleMetadataOperation(conn net.Conn, p *Packet, remoteAddr string) (err error) {
metric := exporter.NewTPCnt(p.GetOpMsg())
labels := m.getPacketLabels(p)
defer metric.SetWithLabels(err, labels)
defer func() {
metric.SetWithLabels(err, labels)
}()
switch p.Opcode {
case proto.OpMetaCreateInode:

View File

@ -99,7 +99,9 @@ func (o *ObjectNode) traceMiddleware(next http.Handler) http.Handler {
var startTime = time.Now()
metric := exporter.NewTPCnt(fmt.Sprintf("action_%v", action.Name()))
defer metric.Set(err)
defer func() {
metric.Set(err)
}()
// Check action is whether enabled.
if !action.IsNone() && !o.disabledActions.Contains(action) {

View File

@ -48,7 +48,9 @@ func (mw *MetaWrapper) icreate(mp *MetaPartition, mode, uid, gid uint32, target
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -94,7 +96,9 @@ func (mw *MetaWrapper) iunlink(mp *MetaPartition, inode uint64) (status int, inf
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -136,7 +140,9 @@ func (mw *MetaWrapper) ievict(mp *MetaPartition, inode uint64) (status int, err
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -178,7 +184,9 @@ func (mw *MetaWrapper) dcreate(mp *MetaPartition, parentID uint64, name string,
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -219,7 +227,9 @@ func (mw *MetaWrapper) dupdate(mp *MetaPartition, parentID uint64, name string,
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -261,7 +271,9 @@ func (mw *MetaWrapper) ddelete(mp *MetaPartition, parentID uint64, name string)
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -304,7 +316,9 @@ func (mw *MetaWrapper) lookup(mp *MetaPartition, parentID uint64, name string) (
log.LogDebugf("lookup enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -349,7 +363,9 @@ func (mw *MetaWrapper) iget(mp *MetaPartition, inode uint64) (status int, info *
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -392,7 +408,9 @@ func (mw *MetaWrapper) batchIget(wg *sync.WaitGroup, mp *MetaPartition, inodes [
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -440,7 +458,9 @@ func (mw *MetaWrapper) readdir(mp *MetaPartition, parentID uint64) (status int,
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -484,7 +504,9 @@ func (mw *MetaWrapper) appendExtentKey(mp *MetaPartition, inode uint64, extent p
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -516,7 +538,9 @@ func (mw *MetaWrapper) getExtents(mp *MetaPartition, inode uint64) (status int,
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -560,7 +584,9 @@ func (mw *MetaWrapper) truncate(mp *MetaPartition, inode, size uint64) (status i
log.LogDebugf("truncate enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -597,7 +623,9 @@ func (mw *MetaWrapper) ilink(mp *MetaPartition, inode uint64) (status int, info
log.LogDebugf("ilink enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -651,7 +679,9 @@ func (mw *MetaWrapper) setattr(mp *MetaPartition, inode uint64, valid, mode, uid
log.LogDebugf("setattr enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -689,7 +719,9 @@ func (mw *MetaWrapper) createMultipart(mp *MetaPartition, path string, extend ma
log.LogDebugf("createMultipart enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -732,7 +764,9 @@ func (mw *MetaWrapper) getMultipart(mp *MetaPartition, path, multipartId string)
log.LogDebugf("getMultipart enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -783,7 +817,9 @@ func (mw *MetaWrapper) addMultipartPart(mp *MetaPartition, path, multipartId str
log.LogDebugf("addMultipartPart entry: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -816,7 +852,9 @@ func (mw *MetaWrapper) idelete(mp *MetaPartition, inode uint64) (status int, err
log.LogDebugf("delete inode: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -851,7 +889,9 @@ func (mw *MetaWrapper) removeMultipart(mp *MetaPartition, path, multipartId stri
log.LogDebugf("delete session: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -887,7 +927,9 @@ func (mw *MetaWrapper) appendExtentKeys(mp *MetaPartition, inode uint64, extents
log.LogDebugf("appendExtentKeys: batch append extent: packet(%v) mp(%v) req(%v)", packet, mp, *req)
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -925,7 +967,9 @@ func (mw *MetaWrapper) setXAttr(mp *MetaPartition, inode uint64, name []byte, va
log.LogDebugf("setXAttr: packet(%v) mp(%v) req(%v) err(%v)", packet, mp, *req, err)
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -963,7 +1007,9 @@ func (mw *MetaWrapper) getXAttr(mp *MetaPartition, inode uint64, name string) (v
log.LogDebugf("get xattr: packet(%v) mp(%v) req(%v) err(%v)", packet, mp, *req, err)
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -1006,7 +1052,9 @@ func (mw *MetaWrapper) removeXAttr(mp *MetaPartition, inode uint64, name string)
log.LogDebugf("remove xattr: packet(%v) mp(%v) req(%v) err(%v)", packet, mp, *req, err)
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
if packet, err = mw.sendToMetaPartition(mp, packet); err != nil {
log.LogErrorf("remove xattr: packet(%v) mp(%v) req(%v) err(%v)", packet, mp, *req, err)
@ -1040,7 +1088,9 @@ func (mw *MetaWrapper) listXAttr(mp *MetaPartition, inode uint64) (keys []string
log.LogDebugf("list xattr: packet(%v) mp(%v) req(%v) err(%v)", packet, mp, *req, err)
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
if packet, err = mw.sendToMetaPartition(mp, packet); err != nil {
log.LogErrorf("list xattr: packet(%v) mp(%v) req(%v) err(%v)", packet, mp, *req, err)
@ -1087,7 +1137,9 @@ func (mw *MetaWrapper) listMultiparts(mp *MetaPartition, prefix, delimiter, keyM
log.LogDebugf("listMultiparts enter: packet(%v) mp(%v) req(%v)", packet, mp, string(packet.Data))
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {
@ -1130,7 +1182,9 @@ func (mw *MetaWrapper) batchGetXAttr(mp *MetaPartition, inodes []uint64, keys []
}
metric := exporter.NewTPCnt(packet.GetOpMsg())
defer metric.Set(err)
defer func() {
metric.SetWithLabels(err, map[string]string{exporter.Vol: mw.volname})
}()
packet, err = mw.sendToMetaPartition(mp, packet)
if err != nil {