Fixed StatS integration test

This commit is contained in:
edwardro22
2018-01-23 21:49:04 +02:00
committed by Dan Christian Bogos
parent 6c8d3f3dff
commit 775c3032c2
5 changed files with 53 additions and 35 deletions

View File

@@ -154,14 +154,16 @@ func testV1STSGetStats(t *testing.T) {
}
var metrics map[string]string
expectedMetrics := map[string]string{
utils.MetaASR: utils.NOT_AVAILABLE,
utils.MetaACD: utils.NOT_AVAILABLE,
utils.MetaTCC: utils.NOT_AVAILABLE,
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.MetaASR: utils.NOT_AVAILABLE,
utils.MetaACD: utils.NOT_AVAILABLE,
utils.MetaTCC: utils.NOT_AVAILABLE,
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.MetaSum: utils.NOT_AVAILABLE,
utils.MetaAverage: utils.NOT_AVAILABLE,
}
if err := stsV1Rpc.Call(utils.StatSv1GetGetQueueStringMetrics,
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
@@ -187,19 +189,22 @@ func testV1STSProcessEvent(t *testing.T) {
}
//process with one event (should be N/A becaus MinItems is 2)
expectedMetrics := map[string]string{
utils.MetaASR: utils.NOT_AVAILABLE,
utils.MetaACD: utils.NOT_AVAILABLE,
utils.MetaTCC: utils.NOT_AVAILABLE,
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.MetaASR: utils.NOT_AVAILABLE,
utils.MetaACD: utils.NOT_AVAILABLE,
utils.MetaTCC: utils.NOT_AVAILABLE,
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.MetaSum: utils.NOT_AVAILABLE,
utils.MetaAverage: utils.NOT_AVAILABLE,
}
var metrics map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetGetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &metrics); err != nil {
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &metrics); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics, metrics) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
}
ev2 := utils.CGREvent{
Tenant: "cgrates.org",
ID: "event2",
@@ -225,23 +230,26 @@ func testV1STSProcessEvent(t *testing.T) {
t.Errorf("received reply: %s", reply)
}
expectedMetrics2 := map[string]string{
utils.MetaASR: "66.66667%",
utils.MetaACD: "1m30s",
utils.MetaACC: "61.5",
utils.MetaTCD: "3m0s",
utils.MetaTCC: "123",
utils.MetaPDD: "4s",
utils.MetaASR: "66.66667%",
utils.MetaACD: "1m30s",
utils.MetaACC: "61.5",
utils.MetaTCD: "3m0s",
utils.MetaTCC: "123",
utils.MetaPDD: "4s",
utils.MetaSum: "0",
utils.MetaAverage: utils.NOT_AVAILABLE,
}
var metrics2 map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetGetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &metrics2); err != nil {
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &metrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics2, metrics2) {
t.Errorf("expecting: %+v, received reply: %s", expectedMetrics2, metrics2)
}
}
func testV1STSGetStatsAfterRestart(t *testing.T) {
time.Sleep(time.Second)
time.Sleep(1 * time.Second)
if _, err := engine.StopStartEngine(stsV1CfgPath, statsDelay); err != nil {
t.Fatal(err)
}
@@ -250,17 +258,21 @@ func testV1STSGetStatsAfterRestart(t *testing.T) {
if err != nil {
t.Fatal("Could not connect to rater: ", err.Error())
}
time.Sleep(2 * time.Second)
//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",
utils.MetaASR: "66.66667%",
utils.MetaACD: "1m30s",
utils.MetaACC: "61.5",
utils.MetaTCD: "3m0s",
utils.MetaTCC: "123",
utils.MetaPDD: "4s",
utils.MetaSum: "0",
utils.MetaAverage: utils.NOT_AVAILABLE,
}
var metrics2 map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetGetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &metrics2); err != nil {
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics, &utils.TenantID{Tenant: "cgrates.org", ID: "Stats1"}, &metrics2); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expectedMetrics2, metrics2) {
t.Errorf("After restat expecting: %+v, received reply: %s", expectedMetrics2, metrics2)
@@ -422,7 +434,7 @@ func BenchmarkSTSV1SetEvent(b *testing.B) {
func BenchmarkSTSV1GetQueueStringMetrics(b *testing.B) {
for i := 0; i < b.N; i++ {
var metrics map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetGetQueueStringMetrics,
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantID{Tenant: "cgrates.org", ID: "STATS_1"},
&metrics); err != nil {
b.Error(err)

View File

@@ -11,6 +11,7 @@ cgrates.org,FLTR_ACNT_BALANCE_1,*string,EventType,BalanceUpdate,
cgrates.org,FLTR_ACNT_BALANCE_1,*gte,Units,10.0,
cgrates.org,FLTR_ACNT_EXPIRED,*string,Account,1001;1002,2014-07-29T15:00:00Z
cgrates.org,FLTR_ACNT_EXPIRED,*gte,ExpiryTime,*now,
cgrates.org,FLTR_STATS_1,*string,Account,1001,
cgrates.org,FLTR_STATS_1,*string,EventType,StatUpdate,2014-07-29T15:00:00Z
cgrates.org,FLTR_STATS_1,*lt,ASR,40.0,
cgrates.org,FLTR_STATS_1,*lt,ACD,3m,
1 #Tenant[0] ID[1] FilterType[2] FilterFieldName[3] FilterFieldValues[4] ActivationInterval[5]
11 cgrates.org FLTR_ACNT_BALANCE_1 *gte Units 10.0
12 cgrates.org FLTR_ACNT_EXPIRED *string Account 1001;1002 2014-07-29T15:00:00Z
13 cgrates.org FLTR_ACNT_EXPIRED *gte ExpiryTime *now
14 cgrates.org FLTR_STATS_1 *string Account 1001
15 cgrates.org FLTR_STATS_1 *string EventType StatUpdate 2014-07-29T15:00:00Z
16 cgrates.org FLTR_STATS_1 *lt ASR 40.0
17 cgrates.org FLTR_STATS_1 *lt ACD 3m

View File

@@ -1,2 +1,3 @@
#Tenant[0],Id[1],FilterIDs[2],ActivationInterval[3],QueueLength[4],TTL[5],Metrics[6],MetricParams[7],Blocker[8],Stored[9],Weight[10],MinItems[11],Thresholds[12]
cgrates.org,Stats1,FLTR_STS1,2014-07-29T15:00:00Z,100,1s,*asr;*acc;*tcc;*acd;*tcd;*pdd,,true,true,20,2,THRESH1;THRESH2
cgrates.org,Stats1,FLTR_STS1,2014-07-29T15:00:00Z,100,1s,*sum;*average,Value,true,true,20,2,THRESH1;THRESH2
1 #Tenant[0] Id[1] FilterIDs[2] ActivationInterval[3] QueueLength[4] TTL[5] Metrics[6] MetricParams[7] Blocker[8] Stored[9] Weight[10] MinItems[11] Thresholds[12]
2 cgrates.org Stats1 FLTR_STS1 2014-07-29T15:00:00Z 100 1s *asr;*acc;*tcc;*acd;*tcd;*pdd true true 20 2 THRESH1;THRESH2
3 cgrates.org Stats1 FLTR_STS1 2014-07-29T15:00:00Z 100 1s *sum;*average Value true true 20 2 THRESH1;THRESH2

View File

@@ -70,6 +70,7 @@ func matchingItemIDsForEvent(ev map[string]interface{}, stringFldIDs, prefixFldI
dbItemIDs, err = dm.MatchFilterIndex(dbIdxKey, filterIndexTypes[i], fldName, val)
if err != nil {
if err == utils.ErrNotFound {
err = nil
continue
}
return nil, err
@@ -83,5 +84,8 @@ func matchingItemIDsForEvent(ev map[string]interface{}, stringFldIDs, prefixFldI
}
}
}
if len(itemIDs) == 0 {
return nil, utils.ErrNotFound
}
return
}

View File

@@ -580,9 +580,9 @@ const (
//StatS APIs
const (
StatSv1ProcessEvent = "StatSv1.ProcessEvent"
StatSv1GetQueueIDs = "StatSv1.GetQueueIDs"
StatSv1GetGetQueueStringMetrics = "StatSv1.GetQueueStringMetrics"
StatSv1ProcessEvent = "StatSv1.ProcessEvent"
StatSv1GetQueueIDs = "StatSv1.GetQueueIDs"
StatSv1GetQueueStringMetrics = "StatSv1.GetQueueStringMetrics"
)
//ResourceS APIs
@@ -712,8 +712,8 @@ const (
StatFilterRevIndexes = "sfr_"
ThresholdFilterIndexes = "tfi_"
ThresholdFilterRevIndexes = "tfr_"
SupplierFilterIndexes = "sfi_"
SupplierFilterRevIndexes = "sfr_"
SupplierFilterIndexes = "spi_"
SupplierFilterRevIndexes = "spr_"
AttributeFilterIndexes = "afi_"
AttributeFilterRevIndexes = "afr_"
)