From 7055573f4c5751e24fed306caa3ad0ccc9c573f0 Mon Sep 17 00:00:00 2001 From: DanB Date: Mon, 29 Jun 2015 15:12:04 +0200 Subject: [PATCH] Local test for offline cdrstats persistence --- apier/v1/cdrstatsv1_local_test.go | 23 +++++++++++++++++++++++ data/conf/samples/cdrstats/cdrstats.json | 7 ++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/apier/v1/cdrstatsv1_local_test.go b/apier/v1/cdrstatsv1_local_test.go index 3a176414c..bc6f59355 100644 --- a/apier/v1/cdrstatsv1_local_test.go +++ b/apier/v1/cdrstatsv1_local_test.go @@ -159,6 +159,29 @@ func TestCDRStatsLclGetMetrics1(t *testing.T) { } } +// Test stats persistence +func TestCDRStatsLclStatsPersistence(t *testing.T) { + if !*testLocal { + return + } + time.Sleep(time.Duration(2) * time.Second) // Allow stats to be updated in dataDb + if _, err := engine.StopStartEngine(cdrstCfgPath, *waitRater); err != nil { + t.Fatal(err) + } + var err error + cdrstRpc, err = jsonrpc.Dial("tcp", cdrstCfg.RPCJSONListen) // We connect over JSON so we can also troubleshoot if needed + if err != nil { + t.Fatal("Could not connect to rater: ", err.Error()) + } + var rcvMetrics map[string]float64 + expectedMetrics := map[string]float64{"ASR": 75, "ACD": 15} + if err := cdrstRpc.Call("CDRStatsV1.GetMetrics", AttrGetMetrics{StatsQueueId: "CDRST4"}, &rcvMetrics); err != nil { + t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) + } else if !reflect.DeepEqual(expectedMetrics, rcvMetrics) { + t.Errorf("Expecting: %v, received: %v", expectedMetrics, rcvMetrics) + } +} + func TestCDRStatsLclResetMetrics(t *testing.T) { if !*testLocal { return diff --git a/data/conf/samples/cdrstats/cdrstats.json b/data/conf/samples/cdrstats/cdrstats.json index 63b9b7b96..31e2ee7e9 100644 --- a/data/conf/samples/cdrstats/cdrstats.json +++ b/data/conf/samples/cdrstats/cdrstats.json @@ -7,8 +7,7 @@ "rater": { "enabled": true, // enable Rater service: }, - -"cdrs": { + "cdrs": { "enabled": true, // start the CDR Server service: "store_cdrs": false, // store cdrs in storDb "rater": "internal", // address where to reach the Rater for cost calculation, empty to disable functionality: <""|internal|x.y.z.y:1234> @@ -17,9 +16,7 @@ "cdrstats": { "enabled": true, // starts the cdrstats service: - "queue_length": 5, // number of items in the stats buffer - "time_window": "0", // will only keep the CDRs who's call setup time is not older than time.Now()-TimeWindow - "save_interval": "5s", + "save_interval": "1s", }, }