mirror of
https://github.com/astaxie/beego.git
synced 2024-11-25 23:01:28 +00:00
Add ability to get statistics in json format
This commit is contained in:
parent
a760e46f98
commit
ca3e7568a1
@ -15,6 +15,7 @@
|
|||||||
package toolbox
|
package toolbox
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
@ -111,6 +112,31 @@ func (m *UrlMap) GetMap() map[string]interface{} {
|
|||||||
return content
|
return content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *UrlMap) GetMapJSON() ([]byte, error) {
|
||||||
|
return json.Marshal(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m UrlMap) MarshalJSON() ([]byte, error) {
|
||||||
|
|
||||||
|
resultLists := make([]map[string]interface{}, 0)
|
||||||
|
|
||||||
|
for k, v := range m.urlmap {
|
||||||
|
for kk, vv := range v {
|
||||||
|
result := map[string]interface{}{
|
||||||
|
"request_url": k,
|
||||||
|
"method": kk,
|
||||||
|
"times": vv.RequestNum,
|
||||||
|
"total_time": toS(vv.TotalTime),
|
||||||
|
"max_time": toS(vv.MaxTime),
|
||||||
|
"min_time": toS(vv.MinTime),
|
||||||
|
"avg_time": toS(time.Duration(int64(vv.TotalTime) / vv.RequestNum)),
|
||||||
|
}
|
||||||
|
resultLists = append(resultLists, result)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return json.Marshal(resultLists)
|
||||||
|
}
|
||||||
|
|
||||||
// global statistics data map
|
// global statistics data map
|
||||||
var StatisticsMap *UrlMap
|
var StatisticsMap *UrlMap
|
||||||
|
|
||||||
|
@ -28,4 +28,10 @@ func TestStatics(t *testing.T) {
|
|||||||
StatisticsMap.AddStatistics("POST", "/api/user/xiemengjun", "&admin.user", time.Duration(13000))
|
StatisticsMap.AddStatistics("POST", "/api/user/xiemengjun", "&admin.user", time.Duration(13000))
|
||||||
StatisticsMap.AddStatistics("DELETE", "/api/user", "&admin.user", time.Duration(1400))
|
StatisticsMap.AddStatistics("DELETE", "/api/user", "&admin.user", time.Duration(1400))
|
||||||
t.Log(StatisticsMap.GetMap())
|
t.Log(StatisticsMap.GetMap())
|
||||||
|
|
||||||
|
jsonString, err := StatisticsMap.GetMapJSON()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf(err.Error())
|
||||||
|
}
|
||||||
|
t.Log(string(jsonString))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user