Merge pull request #760 from TeoV/master

Add *pdd metric in stats_it_test.go and add a new test(GetStatsAfterRestart)
This commit is contained in:
Dan Christian Bogos
2017-09-27 18:47:04 +02:00
committed by GitHub
3 changed files with 49 additions and 3 deletions

View File

@@ -78,6 +78,7 @@ var sTestsStatSV1 = []func(t *testing.T){
testV1STSFromFolder,
testV1STSGetStats,
testV1STSProcessEvent,
testV1STSGetStatsAfterRestart,
testV1STSSetStatQueueProfile,
testV1STSUpdateStatQueueProfile,
testV1STSRemoveStatQueueProfile,
@@ -157,6 +158,7 @@ func testV1STSGetStats(t *testing.T) {
utils.MetaTCC: utils.NOT_AVAILABLE,
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
}
if err := stsV1Rpc.Call("StatSV1.GetQueueStringMetrics",
&utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}, &metrics); err != nil {
@@ -175,7 +177,8 @@ func testV1STSProcessEvent(t *testing.T) {
utils.ACCOUNT: "1001",
utils.ANSWER_TIME: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
utils.USAGE: time.Duration(135 * time.Second),
utils.COST: 123.0}}
utils.COST: 123.0,
utils.PDD: time.Duration(12 * time.Second)}}
if err := stsV1Rpc.Call("StatSV1.ProcessEvent", &ev1, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
@@ -211,6 +214,7 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaACC: "61.5",
utils.MetaTCD: "3m0s",
utils.MetaTCC: "123",
utils.MetaPDD: "4s",
}
var metrics map[string]string
if err := stsV1Rpc.Call("StatSV1.GetQueueStringMetrics", &utils.TenantID{Tenant: "cgrates.org", ID: "STATS_1"}, &metrics); err != nil {
@@ -220,6 +224,48 @@ func testV1STSProcessEvent(t *testing.T) {
}
}
func testV1STSGetStatsAfterRestart(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaASR: "66.66667%",
utils.MetaACD: "1m30s",
utils.MetaACC: "61.5",
utils.MetaTCD: "3m0s",
utils.MetaTCC: "123",
utils.MetaPDD: "4s",
}
var metrics map[string]string
//get stats metrics before restart
if err := stsV1Rpc.Call("StatSV1.GetQueueStringMetrics", &utils.TenantID{Tenant: "cgrates.org", ID: "STATS_1"}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
if _, err := engine.StopStartEngine(stsV1CfgPath, statsDelay); err != nil {
t.Fatal(err)
}
var err error
stsV1Rpc, err = jsonrpc.Dial("tcp", stsV1Cfg.RPCJSONListen) // We connect over JSON so we can also troubleshoot if needed
if err != nil {
t.Fatal("Could not connect to rater: ", err.Error())
}
//get stats metrics after restart
expectedMetrics2 := map[string]string{
utils.MetaASR: "66.66667%",
utils.MetaACD: "1m30s",
utils.MetaACC: "61.5",
utils.MetaTCD: "3m0s",
utils.MetaTCC: "123",
utils.MetaPDD: "4s",
}
var metrics2 map[string]string
if err := stsV1Rpc.Call("StatSV1.GetQueueStringMetrics", &utils.TenantID{Tenant: "cgrates.org", ID: "STATS_1"}, &metrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics2, metrics2) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics2, metrics2)
}
time.Sleep(time.Duration(1 * time.Second))
}
func testV1STSSetStatQueueProfile(t *testing.T) {
var reply *engine.StatQueueProfile
if err := stsV1Rpc.Call("ApierV1.GetStatQueueProfile",

View File

@@ -1,2 +1,2 @@
#Tenant[0],Id[1],FilterType[2],FilterFieldName[3],FilterFieldValues[4],ActivationInterval[5],QueueLength[6],TTL[7],Metrics[8],Blocker[9],Stored[10],Weight[11],Thresholds[12]
cgrates.org,Stats1,*string,Account,1001;1002,2014-07-29T15:00:00Z,100,1s,*asr;*acd;*acc;*tcd;*tcc,true,true,20,THRESH1;THRESH2
cgrates.org,Stats1,*string,Account,1001;1002,2014-07-29T15:00:00Z,100,1s,*asr;*acd;*acc;*tcd;*tcc;*pdd,true,true,20,THRESH1;THRESH2
1 #Tenant[0] Id[1] FilterType[2] FilterFieldName[3] FilterFieldValues[4] ActivationInterval[5] QueueLength[6] TTL[7] Metrics[8] Blocker[9] Stored[10] Weight[11] Thresholds[12]
2 cgrates.org Stats1 *string Account 1001;1002 2014-07-29T15:00:00Z 100 1s *asr;*acd;*acc;*tcd;*tcc *asr;*acd;*acc;*tcd;*tcc;*pdd true true 20 THRESH1;THRESH2

View File

@@ -1,2 +1,2 @@
#Tenant[0],Id[1],FilterType[2],FilterFieldName[3],FilterFieldValues[4],ActivationInterval[5],QueueLength[6],TTL[7],Metrics[8],Blocker[9],Stored[10],Weight[11],Thresholds[12]
cgrates.org,STATS_1,*string,Account,1001;1002,2014-07-29T15:00:00Z,100,1s,*asr;*acc;*tcc;*acd;*tcd,true,true,20,THRESH1;THRESH2
cgrates.org,STATS_1,*string,Account,1001;1002,2014-07-29T15:00:00Z,100,1s,*asr;*acc;*tcc;*acd;*tcd;*pdd,true,true,20,THRESH1;THRESH2
1 #Tenant[0] Id[1] FilterType[2] FilterFieldName[3] FilterFieldValues[4] ActivationInterval[5] QueueLength[6] TTL[7] Metrics[8] Blocker[9] Stored[10] Weight[11] Thresholds[12]
2 cgrates.org STATS_1 *string Account 1001;1002 2014-07-29T15:00:00Z 100 1s *asr;*acc;*tcc;*acd;*tcd *asr;*acc;*tcc;*acd;*tcd;*pdd true true 20 THRESH1;THRESH2