Update metric definition to include path ( *sum:~*req.Field1 )

This commit is contained in:
TeoV
2020-02-21 09:35:24 +02:00
committed by Dan Christian Bogos
parent 13b8c3d851
commit 2fcae9a4f5
14 changed files with 49 additions and 46 deletions

View File

@@ -534,7 +534,7 @@ func testV1FIdxCaSetStatQueueProfile(t *testing.T) {
TTL: time.Duration(10) * time.Second,
Metrics: []*engine.MetricWithFilters{
&engine.MetricWithFilters{
MetricID: "*sum:~Val",
MetricID: "*sum:~*req.Val",
},
},
ThresholdIDs: []string{"Val1", "Val2"},
@@ -687,7 +687,7 @@ func testV1FIdxCaUpdateStatQueueProfile(t *testing.T) {
TTL: time.Duration(10) * time.Second,
Metrics: []*engine.MetricWithFilters{
&engine.MetricWithFilters{
MetricID: "*sum:~Val",
MetricID: "*sum:~*req.Val",
},
},
ThresholdIDs: []string{"*none"},

View File

@@ -163,8 +163,8 @@ func testV1STSGetStats(t *testing.T) {
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): utils.NOT_AVAILABLE,
}
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}},
@@ -201,8 +201,8 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.MetaACC: utils.NOT_AVAILABLE,
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): utils.NOT_AVAILABLE,
}
var metrics map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
@@ -220,8 +220,8 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaTCD: -1.0,
utils.MetaACC: -1.0,
utils.MetaPDD: -1.0,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): -1.0,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.Usage): -1.0,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): -1.0,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): -1.0,
}
var floatMetrics map[string]float64
if err := stsV1Rpc.Call(utils.StatSv1GetQueueFloatMetrics,
@@ -266,8 +266,8 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaTCD: "3m0s",
utils.MetaTCC: "135.1",
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): "180000000000",
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.Usage): "60000000000",
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): "180000000000",
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): "60000000000",
}
var metrics2 map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
@@ -284,8 +284,8 @@ func testV1STSProcessEvent(t *testing.T) {
utils.MetaTCD: 180,
utils.MetaACC: 45.03333,
utils.MetaPDD: -1.0,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): 180000000000,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.Usage): 60000000000,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): 180000000000,
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): 60000000000,
}
var floatMetrics2 map[string]float64
if err := stsV1Rpc.Call(utils.StatSv1GetQueueFloatMetrics,
@@ -320,8 +320,8 @@ func testV1STSGetStatsAfterRestart(t *testing.T) {
utils.MetaTCD: "3m0s",
utils.MetaTCC: "135.1",
utils.MetaPDD: utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): "180000000000",
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.Usage): "60000000000",
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): "180000000000",
utils.ConcatenatedKey(utils.MetaAverage, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): "60000000000",
}
var metrics2 map[string]string
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
@@ -491,7 +491,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
FilterIDs: []string{"*gt:~*req.Usage:5s"},
},
&engine.MetricWithFilters{
MetricID: "*sum:~CustomValue",
MetricID: "*sum:~*req.CustomValue",
FilterIDs: []string{"*exists:~*req.CustomValue:", "*gte:~*req.CustomValue:10.0"},
},
},
@@ -523,7 +523,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
expectedMetrics := map[string]string{
utils.MetaACD: utils.NOT_AVAILABLE,
utils.MetaTCD: utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, "~CustomValue"): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, "~*req.CustomValue"): utils.NOT_AVAILABLE,
}
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]}}, &metrics); err != nil {
@@ -551,7 +551,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
expectedMetrics = map[string]string{
utils.MetaACD: utils.NOT_AVAILABLE,
utils.MetaTCD: "6s",
utils.ConcatenatedKey(utils.MetaSum, "~CustomValue"): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, "~*req.CustomValue"): utils.NOT_AVAILABLE,
}
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{
@@ -578,7 +578,7 @@ func testV1STSProcessMetricsWithFilter(t *testing.T) {
expectedMetrics = map[string]string{
utils.MetaACD: "12s",
utils.MetaTCD: "18s",
utils.ConcatenatedKey(utils.MetaSum, "~CustomValue"): "10",
utils.ConcatenatedKey(utils.MetaSum, "~*req.CustomValue"): "10",
}
if err := stsV1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{

View File

@@ -806,7 +806,8 @@ func testV1SplSSetSupplierProfiles(t *testing.T) {
func testV1SplSGetSupplierProfileIDs(t *testing.T) {
expected := []string{"SPL_HIGHESTCOST_1", "SPL_QOS_1", "SPL_QOS_2", "SPL_QOS_FILTRED", "SPL_QOS_FILTRED2",
"SPL_ACNT_1001", "SPL_LEASTCOST_1", "SPL_WEIGHT_2", "SPL_WEIGHT_1", "SPL_QOS_3", "TEST_PROFILE1", "SPL_LCR"}
"SPL_ACNT_1001", "SPL_LEASTCOST_1", "SPL_WEIGHT_2", "SPL_WEIGHT_1", "SPL_QOS_3",
"TEST_PROFILE1", "SPL_LOAD_DIST", "SPL_LCR"}
var result []string
if err := splSv1Rpc.Call(utils.APIerSv1GetSupplierProfileIDs,
&utils.TenantArgWithPaginator{TenantArg: utils.TenantArg{"cgrates.org"}}, &result); err != nil {

View File

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

View File

@@ -3,6 +3,6 @@ cgrates.org,Stat_1,FLTR_STAT_1,2014-07-29T15:00:00Z,100,1s,0,*acd;*tcd;*asr,,fal
cgrates.org,Stat_1_1,FLTR_STAT_1_1,2014-07-29T15:00:00Z,100,1s,0,*acd;*tcd;*pdd,,false,true,30,*none
cgrates.org,Stat_2,FLTR_STAT_2,2014-07-29T15:00:00Z,100,1s,0,*acd;*tcd;*asr,,false,true,30,*none
cgrates.org,Stat_3,FLTR_STAT_3,2014-07-29T15:00:00Z,100,1s,0,*acd;*tcd;*asr,,false,true,30,*none
cgrates.org,Stat_Supplier1,*string:~*req.StatID:Stat_Supplier1,2014-07-29T15:00:00Z,100,1s,0,*sum:~LoadReq,,true,true,30,*none
cgrates.org,Stat_Supplier2,*string:~*req.StatID:Stat_Supplier2,2014-07-29T15:00:00Z,100,1s,0,*sum:~LoadReq,,true,true,30,*none
cgrates.org,Stat_Supplier3,*string:~*req.StatID:Stat_Supplier3,2014-07-29T15:00:00Z,100,1s,0,*sum:~LoadReq,,true,true,30,*none
cgrates.org,Stat_Supplier1,*string:~*req.StatID:Stat_Supplier1,2014-07-29T15:00:00Z,100,1s,0,*sum:~*req.LoadReq,,true,true,30,*none
cgrates.org,Stat_Supplier2,*string:~*req.StatID:Stat_Supplier2,2014-07-29T15:00:00Z,100,1s,0,*sum:~*req.LoadReq,,true,true,30,*none
cgrates.org,Stat_Supplier3,*string:~*req.StatID:Stat_Supplier3,2014-07-29T15:00:00Z,100,1s,0,*sum:~*req.LoadReq,,true,true,30,*none
1 #Tenant[0] Id[1] FilterIDs[2] ActivationInterval[3] QueueLength[4] TTL[5] MinItems[6] Metrics[7] MetricFilterIDs[8] Stored[9] Blocker[10] Weight[11] ThresholdIDs[12]
3 cgrates.org Stat_1_1 FLTR_STAT_1_1 2014-07-29T15:00:00Z 100 1s 0 *acd;*tcd;*pdd false true 30 *none
4 cgrates.org Stat_2 FLTR_STAT_2 2014-07-29T15:00:00Z 100 1s 0 *acd;*tcd;*asr false true 30 *none
5 cgrates.org Stat_3 FLTR_STAT_3 2014-07-29T15:00:00Z 100 1s 0 *acd;*tcd;*asr false true 30 *none
6 cgrates.org Stat_Supplier1 *string:~*req.StatID:Stat_Supplier1 2014-07-29T15:00:00Z 100 1s 0 *sum:~LoadReq *sum:~*req.LoadReq true true 30 *none
7 cgrates.org Stat_Supplier2 *string:~*req.StatID:Stat_Supplier2 2014-07-29T15:00:00Z 100 1s 0 *sum:~LoadReq *sum:~*req.LoadReq true true 30 *none
8 cgrates.org Stat_Supplier3 *string:~*req.StatID:Stat_Supplier3 2014-07-29T15:00:00Z 100 1s 0 *sum:~LoadReq *sum:~*req.LoadReq true true 30 *none

View File

@@ -28,6 +28,6 @@ cgrates.org,SPL_QOS_FILTRED2,,,,,supplier2,FLTR_QOS_SP2_2,,RP_RETAIL1,,Stat_2,20
cgrates.org,SPL_QOS_FILTRED2,,,,,supplier3,,,,,Stat_3,35,,,
cgrates.org,SPL_LCR,FLTR_TEST,2017-11-27T00:00:00Z,*lc,,supplier_1,,,RP_TEST_1,,,10,,,50
cgrates.org,SPL_LCR,,,,,supplier_2,,,RP_TEST_2,,,,,,
cgrates.org,SPL_LOAD_DIST,FLTR_SPP_LOAD_DIST,,*load,supplier1:2;supplier2:7;*default:5,supplier1,,,,,Stat_Supplier1:*sum:~LoadReq,10,false,,20
cgrates.org,SPL_LOAD_DIST,,,,,supplier2,,,,,Stat_Supplier2:*sum:~LoadReq,20,,,
cgrates.org,SPL_LOAD_DIST,,,,,supplier3,,,,,Stat_Supplier3:*sum:~LoadReq,35,,,
cgrates.org,SPL_LOAD_DIST,FLTR_SPP_LOAD_DIST,,*load,supplier1:2;supplier2:7;*default:5,supplier1,,,,,Stat_Supplier1:*sum:~*req.LoadReq,10,false,,20
cgrates.org,SPL_LOAD_DIST,,,,,supplier2,,,,,Stat_Supplier2:*sum:~*req.LoadReq,20,,,
cgrates.org,SPL_LOAD_DIST,,,,,supplier3,,,,,Stat_Supplier3:*sum:~*req.LoadReq,35,,,
1 #Tenant ID FilterIDs ActivationInterval Sorting SortingParameters SupplierID SupplierFilterIDs SupplierAccountIDs SupplierRatingPlanIDs SupplierResourceIDs SupplierStatIDs SupplierWeight SupplierBlocker SupplierParameters Weight
28 cgrates.org SPL_QOS_FILTRED2 supplier3 Stat_3 35
29 cgrates.org SPL_LCR FLTR_TEST 2017-11-27T00:00:00Z *lc supplier_1 RP_TEST_1 10 50
30 cgrates.org SPL_LCR supplier_2 RP_TEST_2
31 cgrates.org SPL_LOAD_DIST FLTR_SPP_LOAD_DIST *load supplier1:2;supplier2:7;*default:5 supplier1 Stat_Supplier1:*sum:~LoadReq Stat_Supplier1:*sum:~*req.LoadReq 10 false 20
32 cgrates.org SPL_LOAD_DIST supplier2 Stat_Supplier2:*sum:~LoadReq Stat_Supplier2:*sum:~*req.LoadReq 20
33 cgrates.org SPL_LOAD_DIST supplier3 Stat_Supplier3:*sum:~LoadReq Stat_Supplier3:*sum:~*req.LoadReq 35

View File

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

View File

@@ -234,10 +234,10 @@ cgrates.org,ResGroup22,*string:~*req.Account:dan,2014-07-29T15:00:00Z,3600s,2,pr
`
StatsCSVContent = `
#Tenant[0],Id[1],FilterIDs[2],ActivationInterval[3],QueueLength[4],TTL[5],MinItems[6],Metrics[7],MetricFilterIDs[8],Stored[9],Blocker[10],Weight[11],ThresholdIDs[12]
cgrates.org,TestStats,*string:~*req.Account:1001,2014-07-29T15:00:00Z,100,1s,2,*sum:~Value;*average:~Value,,true,true,20,Th1;Th2
cgrates.org,TestStats,,,,,2,*sum:~Usage,,true,true,20,
cgrates.org,TestStats2,FLTR_1,2014-07-29T15:00:00Z,100,1s,2,*sum:~Value;*sum:~Usage;*average:~Value;*average:~Usage,,true,true,20,Th
cgrates.org,TestStats2,,,,,2,*sum:~Cost;*average:~Cost,,true,true,20,
cgrates.org,TestStats,*string:~*req.Account:1001,2014-07-29T15:00:00Z,100,1s,2,*sum:~*req.Value;*average:~*req.Value,,true,true,20,Th1;Th2
cgrates.org,TestStats,,,,,2,*sum:~*req.Usage,,true,true,20,
cgrates.org,TestStats2,FLTR_1,2014-07-29T15:00:00Z,100,1s,2,*sum:~*req.Value;*sum:~*req.Usage;*average:~*req.Value;*average:~*req.Usage,,true,true,20,Th
cgrates.org,TestStats2,,,,,2,*sum:~*req.Cost;*average:~*req.Cost,,true,true,20,
`
ThresholdsCSVContent = `

View File

@@ -59,7 +59,7 @@ func NewStatMetric(metricID string, minItems int, filterIDs []string) (sm StatMe
utils.MetaDistinct: NewStatDistinct,
}
// split the metricID
// in case of *sum we have *sum:~FieldName
// in case of *sum we have *sum:~*req.FieldName
metricSplit := utils.SplitConcatenatedKey(metricID)
if _, has := metrics[metricSplit[0]]; !has {
return nil, fmt.Errorf("unsupported metric type <%s>", metricSplit[0])

View File

@@ -481,7 +481,7 @@ func testV2CDRsSetStats(t *testing.T) {
// QueueLength: 10,
Metrics: []*engine.MetricWithFilters{
&engine.MetricWithFilters{
MetricID: "*sum:~Usage",
MetricID: "*sum:~*req.Usage",
},
},
ThresholdIDs: []string{utils.META_NONE},
@@ -592,7 +592,7 @@ func testV2CDRsGetStats1(t *testing.T) {
expectedIDs := []string{"STS_PoccessCDR"}
var metrics map[string]string
expectedMetrics := map[string]string{
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): utils.NOT_AVAILABLE,
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): utils.NOT_AVAILABLE,
}
if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{
@@ -659,7 +659,7 @@ func testV2CDRsGetStats2(t *testing.T) {
expectedIDs := []string{"STS_PoccessCDR"}
var metrics map[string]string
expectedMetrics := map[string]string{
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.Usage): "60000000000",
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+utils.Usage): "60000000000",
}
if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{

View File

@@ -587,7 +587,7 @@ func testV1SplSPopulateStats(t *testing.T) {
var metrics map[string]string
expectedMetrics := map[string]string{
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+"LoadReq"): "2",
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+"LoadReq"): "2",
}
if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
&utils.TenantIDWithArgDispatcher{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier1"}},
@@ -691,7 +691,7 @@ func testV1SplSPopulateStats(t *testing.T) {
}
expectedMetrics = map[string]string{
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+"LoadReq"): "3",
utils.ConcatenatedKey(utils.MetaSum, utils.DynamicDataPrefix+utils.MetaReq+utils.NestingSep+"LoadReq"): "3",
}
if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,

View File

@@ -635,13 +635,13 @@ func TestLoaderProcessStats(t *testing.T) {
TTL: time.Duration(1 * time.Second),
Metrics: []*engine.MetricWithFilters{
&engine.MetricWithFilters{
MetricID: "*sum:~Value",
MetricID: "*sum:~*req.Value",
},
&engine.MetricWithFilters{
MetricID: "*average:~Value",
MetricID: "*average:~*req.Value",
},
&engine.MetricWithFilters{
MetricID: "*sum:~Usage",
MetricID: "*sum:~*req.Usage",
},
},
ThresholdIDs: []string{"Th1", "Th2"},

View File

@@ -158,9 +158,9 @@ func TestRemakeQueue(t *testing.T) {
EventID: "ev1",
}},
SQMetrics: map[string]engine.StatMetric{
"*tcc": nil,
"*sum:~Usage": nil,
"*avreage:~Cost": nil,
"*tcc": nil,
"*sum:~*req.Usage": nil,
"*avreage:~*req.Cost": nil,
},
MinItems: 2,
}
@@ -169,9 +169,9 @@ func TestRemakeQueue(t *testing.T) {
ID: sq.ID,
SQItems: sq.SQItems,
SQMetrics: map[string]engine.StatMetric{
"*tcc": nil,
"*sum:~Usage": nil,
"*avreage:~Cost": nil,
"*tcc": nil,
"*sum:~*req.Usage": nil,
"*avreage:~*req.Cost": nil,
},
MinItems: sq.MinItems,
}

View File

@@ -19,6 +19,8 @@ cgrates (0.11.0~dev) UNRELEASED; urgency=medium
* [AgentRequest] Add support for *tmp path
* [SessionS] Add new API SessionSv1.GetCost
* [SessionS] Add support for *cdrs flag in SessionSv1.ProcessEvent
* [StatS] Update metric definition to include path for example:
*sum:~*req.Field1
-- Alexandru Tripon <alexandru.tripon@itsyscom.com> Wed, 19 Feb 2020 13:25:52 +0200