diff --git a/broker/src/hidra2_broker/server/server.go b/broker/src/hidra2_broker/server/server.go
index d517d373ff0bdaadc11445ee7c0cdd93cd34bedf..eadd2ba6b3cc0b202c92f3901ecec985f0d7ceb8 100644
--- a/broker/src/hidra2_broker/server/server.go
+++ b/broker/src/hidra2_broker/server/server.go
@@ -7,8 +7,10 @@ import (
 var db database.Agent
 
 type serverSettings struct {
-	DbAddress string
-	Port      int
+	BrokerDbAddress string
+	MonitorDbAddress string
+	MonitorDbName string
+	Port            int
 }
 
 var settings serverSettings
@@ -16,7 +18,7 @@ var statistics serverStatistics
 
 func InitDB(dbAgent database.Agent) error {
 	db = dbAgent
-	return db.Connect(settings.DbAddress)
+	return db.Connect(settings.BrokerDbAddress)
 }
 
 func CleanupDB() {
diff --git a/broker/src/hidra2_broker/server/server_nottested.go b/broker/src/hidra2_broker/server/server_nottested.go
index e31a0d2df355b2dcc7b3a8c010399a8f3aed61f1..39320081e2c2b60fc31cdeba7c1ca5dc8d20a25c 100644
--- a/broker/src/hidra2_broker/server/server_nottested.go
+++ b/broker/src/hidra2_broker/server/server_nottested.go
@@ -7,6 +7,7 @@ import (
 	"log"
 	"net/http"
 	"strconv"
+	"errors"
 )
 
 func StartStatistics() {
@@ -22,5 +23,25 @@ func Start() {
 }
 
 func ReadConfig(fname string) error {
-	return utils.ReadJsonFromFile(fname, &settings)
+	if err := utils.ReadJsonFromFile(fname, &settings); err != nil {
+		return err
+	}
+
+	if settings.BrokerDbAddress == "" {
+		return errors.New("BrokerDbAddress not set")
+	}
+
+	if settings.MonitorDbAddress == "" {
+		return errors.New("MonitorDbAddress not set")
+	}
+
+	if settings.Port == 0 {
+		return errors.New("Server port not set")
+	}
+
+	if settings.MonitorDbName == "" {
+		return errors.New("MonitorDbName not set")
+	}
+
+	return nil
 }
diff --git a/broker/src/hidra2_broker/server/server_test.go b/broker/src/hidra2_broker/server/server_test.go
index 9d6d3d73074f68c138b54fe02b3d3339b9b41363..baba3ed60dbd538d5b1fa85b01c2490fa1d62e13 100644
--- a/broker/src/hidra2_broker/server/server_test.go
+++ b/broker/src/hidra2_broker/server/server_test.go
@@ -34,7 +34,7 @@ func TestInitDBWithWrongAddress(t *testing.T) {
 
 	mock_db.ExpectedCalls = nil
 
-	settings.DbAddress = "0.0.0.0:0000"
+	settings.BrokerDbAddress = "0.0.0.0:0000"
 
 	for _, test := range initDBTests {
 		mock_db.On("Connect", "0.0.0.0:0000").Return(test.answer)
diff --git a/broker/src/hidra2_broker/server/statistics.go b/broker/src/hidra2_broker/server/statistics.go
index 860c766ea38f97a214061970ff72c6f19f0bdf6d..f0851ae33f58070035d51fc3588f99843718043d 100644
--- a/broker/src/hidra2_broker/server/statistics.go
+++ b/broker/src/hidra2_broker/server/statistics.go
@@ -4,6 +4,7 @@ import (
 	"fmt"
 	"log"
 	"time"
+	"sync"
 )
 
 type statisticsWriter interface {
@@ -12,18 +13,25 @@ type statisticsWriter interface {
 
 type serverStatistics struct {
 	counter int
+	mux sync.Mutex
 	Writer  statisticsWriter
 }
 
 func (st *serverStatistics) IncreaseCounter() {
+	st.mux.Lock()
+	defer st.mux.Unlock()
 	st.counter++
 }
 
 func (st *serverStatistics) GetCounter() int {
+	st.mux.Lock()
+	defer st.mux.Unlock()
 	return st.counter
 }
 
 func (st *serverStatistics) Reset() {
+	st.mux.Lock()
+	defer st.mux.Unlock()
 	st.counter = 0
 }
 
diff --git a/broker/src/hidra2_broker/server/statistics_writer.go b/broker/src/hidra2_broker/server/statistics_writers.go
similarity index 78%
rename from broker/src/hidra2_broker/server/statistics_writer.go
rename to broker/src/hidra2_broker/server/statistics_writers.go
index ffc619145736391933f41935089712368196950f..db6e46fb293895c77fdfe9599d635f8f4f52ace9 100644
--- a/broker/src/hidra2_broker/server/statistics_writer.go
+++ b/broker/src/hidra2_broker/server/statistics_writers.go
@@ -21,7 +21,7 @@ type StatisticInfluxDbWriter struct {
 
 func (writer *StatisticInfluxDbWriter) Write(statistics *serverStatistics) error {
 	c, err := client.NewHTTPClient(client.HTTPConfig{
-		Addr: "http://localhost:8086",
+		Addr: "http://"+ settings.MonitorDbAddress,
 	})
 	if err != nil {
 		return err
@@ -29,15 +29,14 @@ func (writer *StatisticInfluxDbWriter) Write(statistics *serverStatistics) error
 	defer c.Close()
 
 	bp, _ := client.NewBatchPoints(client.BatchPointsConfig{
-		Database:  "db",
-		Precision: "s",
+		Database:  settings.MonitorDbName,
 	})
 
-	//	tags := map[string]string{"rate": "rate-total"}
+	tags := map[string]string{"Group ID": "0"}
 	fields := map[string]interface{}{
 		"rate": statistics.GetCounter(),
 	}
-	pt, err := client.NewPoint("RequestsRate", nil, fields, time.Now())
+	pt, err := client.NewPoint("RequestsRate", tags, fields, time.Now())
 	if err != nil {
 		return err
 	}
diff --git a/broker/src/hidra2_broker/utils/helpers.go b/broker/src/hidra2_broker/utils/helpers.go
index 02bb46796c257c6f8f784e25d8a47ee202e84e57..f1d0da4dc985d0231cbe34602f1942ce01fde362 100644
--- a/broker/src/hidra2_broker/utils/helpers.go
+++ b/broker/src/hidra2_broker/utils/helpers.go
@@ -33,5 +33,6 @@ func ReadJsonFromFile(fname string, config interface{}) error {
 	if err != nil {
 		return err
 	}
+
 	return nil
 }
diff --git a/tests/broker/CMakeLists.txt b/tests/broker/CMakeLists.txt
index c3741747744a36054595915d91f42ecd5eb96943..6f1685c7d12bf036a9fa6f126b357fd962d2b954 100644
--- a/tests/broker/CMakeLists.txt
+++ b/tests/broker/CMakeLists.txt
@@ -1,3 +1,6 @@
 add_subdirectory(get_next)
 add_subdirectory(read_config)
 
+if (UNIX)
+add_subdirectory(check_monitoring)
+endif()
\ No newline at end of file
diff --git a/tests/broker/check_monitoring/CMakeLists.txt b/tests/broker/check_monitoring/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..de66ca8b3e7f809565b6352cb17b31a0942ea685
--- /dev/null
+++ b/tests/broker/check_monitoring/CMakeLists.txt
@@ -0,0 +1,8 @@
+set(TARGET_NAME hidra2-broker)
+
+################################
+# Testing
+################################
+configure_file(${CMAKE_SOURCE_DIR}/tests/settings/broker_settings.json settings.json COPYONLY)
+add_script_test("${TARGET_NAME}-monitoring" "$<TARGET_PROPERTY:${TARGET_NAME},EXENAME>" nomem
+        )
diff --git a/tests/broker/check_monitoring/check_linux.sh b/tests/broker/check_monitoring/check_linux.sh
new file mode 100644
index 0000000000000000000000000000000000000000..9af76490853e00d86cc70d3118295d9a5faba76f
--- /dev/null
+++ b/tests/broker/check_monitoring/check_linux.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+database_name=db_test
+
+set -e
+
+trap Cleanup EXIT
+
+Cleanup() {
+	echo cleanup
+	influx -execute "drop database ${database_name}"
+	kill -9 $brokerid
+}
+
+influx -execute "create database ${database_name}"
+
+$@ settings.json &
+
+sleep 0.3
+
+brokerid=`echo $!`
+
+for i in `seq 1 50`;
+do
+    curl --silent 127.0.0.1:5005/database/data/next >/dev/null 2>&1 &
+done
+
+
+sleep 2
+
+influx -execute "select sum(rate) from RequestsRate" -database=${database_name} -format=json | jq .results[0].series[0].values[0][1] | grep 50
diff --git a/tests/broker/read_config/check_linux.sh b/tests/broker/read_config/check_linux.sh
index e491171a3c8d00802b7e1beb55c77acc3bb3040a..5b9e9c78c8b9c5c814b907ea08dfd4c745043e73 100644
--- a/tests/broker/read_config/check_linux.sh
+++ b/tests/broker/read_config/check_linux.sh
@@ -9,7 +9,7 @@ brokerid=`echo $!`
 kill -9 $brokerid
 
 # check if gives error with bad json file
-$@ settings_bad.json 2>&1 | grep "invalid"
+$@ settings_bad.json 2>&1 | grep "not set"
 
 # check if gives error non-existing file
 $@ settings_notexist.json 2>&1 | grep "no such"
diff --git a/tests/broker/read_config/settings_bad.json b/tests/broker/read_config/settings_bad.json
index 01598594a92d5cbcd01cacc8e8c27e27cf2c42ea..88157fb1b06da72f529ea9f42a808a58e91533cb 100644
--- a/tests/broker/read_config/settings_bad.json
+++ b/tests/broker/read_config/settings_bad.json
@@ -1,4 +1,4 @@
 {
-  "dbaddress":"127.0.0.1:27017",
-  "port":
+  "BrokerDbAddres":"127.0.0.1:27017",
+  "port":12
 }
\ No newline at end of file
diff --git a/tests/settings/broker_settings.json b/tests/settings/broker_settings.json
index 841f1994677df8ab075b7e71859991527f438b67..56bf15f52fa9666103ac542903195def198733d7 100644
--- a/tests/settings/broker_settings.json
+++ b/tests/settings/broker_settings.json
@@ -1,4 +1,6 @@
 {
-  "dbaddress":"127.0.0.1:27017",
+  "BrokerDbAddress":"127.0.0.1:27017",
+  "MonitorDbAddress": "localhost:8086",
+  "MonitorDbName": "db_test",
   "port":5005
 }
\ No newline at end of file