@@ -680,7 +680,7 @@ func (p *proxy) httpbckget(w http.ResponseWriter, r *http.Request, dpq *dpq) {
680
680
}
681
681
lsmsg .Prefix = cos .TrimPrefix (lsmsg .Prefix )
682
682
if err := cmn .ValidatePrefix ("bad list-objects request" , lsmsg .Prefix ); err != nil {
683
- p .statsT .IncErr (stats .ErrListCount )
683
+ p .statsT .IncBck (stats .ErrListCount , bck . Bucket () )
684
684
p .writeErr (w , r , err )
685
685
return
686
686
}
@@ -698,7 +698,6 @@ func (p *proxy) httpbckget(w http.ResponseWriter, r *http.Request, dpq *dpq) {
698
698
// do
699
699
bck , errN := bckArgs .initAndTry ()
700
700
if errN != nil {
701
- p .statsT .IncErr (stats .ErrListCount )
702
701
return
703
702
}
704
703
p .listObjects (w , r , bck , msg /*amsg*/ , & lsmsg )
@@ -733,11 +732,11 @@ func (p *proxy) httpobjget(w http.ResponseWriter, r *http.Request, origURLBck ..
733
732
objName := apireq .items [1 ]
734
733
apiReqFree (apireq )
735
734
if err != nil {
736
- p .statsT .IncErr (stats .ErrGetCount )
737
735
return
738
736
}
737
+
739
738
if err := cmn .ValidOname (objName ); err != nil {
740
- p .statsT .IncErr (stats .ErrGetCount )
739
+ p .statsT .IncBck (stats .ErrGetCount , bck . Bucket () )
741
740
p .writeErr (w , r , err )
742
741
return
743
742
}
@@ -748,7 +747,7 @@ func (p *proxy) httpobjget(w http.ResponseWriter, r *http.Request, origURLBck ..
748
747
smap := p .owner .smap .get ()
749
748
tsi , netPub , err := smap .HrwMultiHome (bck .MakeUname (objName ))
750
749
if err != nil {
751
- p .statsT .IncErr (stats .ErrGetCount )
750
+ p .statsT .IncBck (stats .ErrGetCount , bck . Bucket () )
752
751
p .writeErr (w , r , err )
753
752
return
754
753
}
@@ -760,7 +759,7 @@ func (p *proxy) httpobjget(w http.ResponseWriter, r *http.Request, origURLBck ..
760
759
http .Redirect (w , r , redirectURL , http .StatusMovedPermanently )
761
760
762
761
// 4. stats
763
- p .statsT .Inc (stats .GetCount )
762
+ p .statsT .IncBck (stats .GetCount , bck . Bucket () )
764
763
}
765
764
766
765
// PUT /v1/objects/bucket-name/object-name
@@ -771,6 +770,7 @@ func (p *proxy) httpobjput(w http.ResponseWriter, r *http.Request, apireq *apiRe
771
770
errcnt = stats .ErrPutCount
772
771
scnt = stats .PutCount
773
772
perms = apc .AcePUT
773
+ vlabs = map [string ]string {stats .VarlabBucket : "" , stats .VarlabXactKind : "" , stats .VarlabXactID : "" }
774
774
)
775
775
// 1. request
776
776
if err := p .parseReq (w , r , apireq ); err != nil {
@@ -782,6 +782,7 @@ func (p *proxy) httpobjput(w http.ResponseWriter, r *http.Request, apireq *apiRe
782
782
perms = apc .AceAPPEND
783
783
errcnt = stats .ErrAppendCount
784
784
scnt = stats .AppendCount
785
+ vlabs = map [string ]string {stats .VarlabBucket : "" }
785
786
if apireq .dpq .apnd .hdl != "" {
786
787
items , err := preParse (apireq .dpq .apnd .hdl ) // apc.QparamAppendHandle
787
788
if err != nil {
@@ -805,9 +806,9 @@ func (p *proxy) httpobjput(w http.ResponseWriter, r *http.Request, apireq *apiRe
805
806
bck , err := bckArgs .initAndTry ()
806
807
freeBctx (bckArgs )
807
808
if err != nil {
808
- p .statsT .IncErr (errcnt )
809
809
return
810
810
}
811
+ vlabs [stats .VarlabBucket ] = bck .Cname ("" )
811
812
812
813
// 3. redirect
813
814
var (
@@ -818,20 +819,20 @@ func (p *proxy) httpobjput(w http.ResponseWriter, r *http.Request, apireq *apiRe
818
819
netPub = cmn .NetPublic
819
820
)
820
821
if err := cmn .ValidOname (objName ); err != nil {
821
- p .statsT .IncErr (errcnt )
822
+ p .statsT .IncWith (errcnt , vlabs )
822
823
p .writeErr (w , r , err )
823
824
return
824
825
}
825
826
if nodeID == "" {
826
827
tsi , netPub , err = smap .HrwMultiHome (bck .MakeUname (objName ))
827
828
if err != nil {
828
- p .statsT .IncErr (errcnt )
829
+ p .statsT .IncWith (errcnt , vlabs )
829
830
p .writeErr (w , r , err )
830
831
return
831
832
}
832
833
} else {
833
834
if tsi = smap .GetTarget (nodeID ); tsi == nil {
834
- p .statsT .IncErr (errcnt )
835
+ p .statsT .IncWith (errcnt , vlabs )
835
836
err = & errNodeNotFound {p .si , smap , verb + " failure:" , nodeID }
836
837
p .writeErr (w , r , err )
837
838
return
@@ -851,7 +852,7 @@ func (p *proxy) httpobjput(w http.ResponseWriter, r *http.Request, apireq *apiRe
851
852
http .Redirect (w , r , redirectURL , http .StatusTemporaryRedirect )
852
853
853
854
// 4. stats
854
- p .statsT .Inc (scnt )
855
+ p .statsT .IncWith (scnt , vlabs )
855
856
}
856
857
857
858
// DELETE /v1/objects/bucket-name/object-name
@@ -869,14 +870,14 @@ func (p *proxy) httpobjdelete(w http.ResponseWriter, r *http.Request) {
869
870
return
870
871
}
871
872
if err := cmn .ValidOname (objName ); err != nil {
10000
872
- p .statsT .IncErr (stats .ErrDeleteCount )
873
+ p .statsT .IncBck (stats .ErrDeleteCount , bck . Bucket () )
873
874
p .writeErr (w , r , err )
874
875
return
875
876
}
876
877
smap := p .owner .smap .get ()
877
878
tsi , err := smap .HrwName2T (bck .MakeUname (objName ))
878
879
if err != nil {
879
- p .statsT .IncErr (stats .ErrDeleteCount )
880
+ p .statsT .IncBck (stats .ErrDeleteCount , bck . Bucket () )
880
881
p .writeErr (w , r , err )
881
882
return
882
883
}
@@ -886,7 +887,7 @@ func (p *proxy) httpobjdelete(w http.ResponseWriter, r *http.Request) {
886
887
redirectURL := p .redirectURL (r , tsi , time .Now () /*started*/ , cmn .NetIntraControl )
887
888
http .Redirect (w , r , redirectURL , http .StatusTemporaryRedirect )
888
889
889
- p .statsT .Inc (stats .DeleteCount )
890
+ p .statsT .IncBck (stats .DeleteCount , bck . Bucket () )
890
891
}
891
892
892
893
// DELETE { action } /v1/buckets
@@ -1643,7 +1644,7 @@ func (p *proxy) listObjects(w http.ResponseWriter, r *http.Request, bck *meta.Bc
1643
1644
// LsVerChanged a.k.a. '--check-versions' limitations
1644
1645
if lsmsg .IsFlagSet (apc .LsVerChanged ) {
1645
1646
if err := _checkVerChanged (bck , lsmsg ); err != nil {
1646
- p .statsT .IncErr (stats .ErrListCount )
1647
+ p .statsT .IncBck (stats .ErrListCount , bck . Bucket () )
1647
1648
p .writeErr (w , r , err )
1648
1649
return
1649
1650
}
@@ -1671,13 +1672,15 @@ func (p *proxy) listObjects(w http.ResponseWriter, r *http.Request, bck *meta.Bc
1671
1672
beg := mono .NanoTime ()
1672
1673
lst , err := p .lsPage (bck , amsg , lsmsg , r .Header , p .owner .smap .get ())
1673
1674
if err != nil {
1674
- p .statsT .IncErr (stats .ErrListCount )
1675
+ p .statsT .IncBck (stats .ErrListCount , bck . Bucket () )
1675
1676
p .writeErr (w , r , err )
1676
1677
return
1677
1678
}
1678
- p .statsT .AddMany (
1679
- cos.NamedVal64 {Name : stats .ListCount , Value : 1 },
1680
- cos.NamedVal64 {Name : stats .ListLatency , Value : mono .SinceNano (beg )},
1679
+
1680
+ vlabs := map [string ]string {stats .VarlabBucket : bck .Cname ("" )}
1681
+ p .statsT .AddWith (
1682
+ cos.NamedVal64 {Name : stats .ListCount , Value : 1 , VarLabs : vlabs },
1683
+ cos.NamedVal64 {Name : stats .ListLatency , Value : mono .SinceNano (beg ), VarLabs : vlabs },
1681
1684
)
1682
1685
1683
1686
var ok bool
@@ -1846,18 +1849,18 @@ func (p *proxy) httpobjpost(w http.ResponseWriter, r *http.Request, apireq *apiR
1846
1849
switch msg .Action {
1847
1850
case apc .ActRenameObject :
1848
1851
if err := p .checkAccess (w , r , bck , apc .AceObjMOVE ); err != nil {
1849
- p .statsT .IncErr (stats .ErrRenameCount )
1852
+ p .statsT .IncBck (stats .ErrRenameCount , bck . Bucket () )
1850
1853
return
1851
1854
}
1852
1855
if err := _checkObjMv (bck , msg , apireq ); err != nil {
1853
- p .statsT .IncErr (stats .ErrRenameCount )
1856
+ p .statsT .IncBck (stats .ErrRenameCount , bck . Bucket () )
1854
1857
p .writeErr (w , r , err )
1855
1858
}
1856
1859
p .redirectAction (w , r , bck , apireq .items [1 ], msg )
1857
- p .statsT .Inc (stats .RenameCount )
1860
+ p .statsT .IncBck (stats .RenameCount , bck . Bucket () )
1858
1861
case apc .ActPromote :
1859
1862
if err := p .checkAccess (w , r , bck , apc .AcePromote ); err != nil {
1860
- p .statsT .IncErr (stats .ErrRenameCount )
1863
+ p .statsT .IncBck (stats .ErrRenameCount , bck . Bucket () )
1861
1864
return
1862
1865
}
1863
1866
// ActionMsg.Name is the source
0 commit comments