diff --git a/my_deploy.sh b/my_deploy.sh
index e0ae334ae4ce63356806ac3358ec49f6473a18f7..6d2ca46c5cfa983bb3ca4688ae85af515c65473b 100644
--- a/my_deploy.sh
+++ b/my_deploy.sh
@@ -7,7 +7,7 @@ export TFS_REGISTRY_IMAGE="http://localhost:32000/tfs/"
 #   interdomain slice pathcomp dlt
 #   dbscanserving opticalattackmitigator opticalcentralizedattackdetector
 #   l3_attackmitigator l3_centralizedattackdetector l3_distributedattackdetector
-export TFS_COMPONENTS="context device automation service compute monitoring webui dbscanserving opticalattackmanager opticalattackmitigator opticalattackdetector "
+export TFS_COMPONENTS="context device automation service compute monitoring webui dbscanserving opticalattackmitigator" # opticalattackmanager opticalattackdetector 
 
 # Set the tag you want to use for your images.
 export TFS_IMAGE_TAG="dev"
diff --git a/proto/monitoring.proto b/proto/monitoring.proto
index ea7f532bbb3aa6a9e9bcb2223f85619c5ae851f8..b7080f560004aa0d799603716d2c17e2a400ae84 100644
--- a/proto/monitoring.proto
+++ b/proto/monitoring.proto
@@ -109,8 +109,8 @@ message KpiDescriptorList {
 message SubsDescriptor{
   SubscriptionID    subs_id             = 1;
   KpiId             kpi_id              = 2;
-  float             sampling_duration_s = 3;
-  float             sampling_interval_s = 4;
+  float             monitoring_window_s = 3;
+  float             sampling_rate_s     = 4;
   context.Timestamp start_timestamp     = 5;  // used when you want something like "get the samples since X date/time"
   context.Timestamp end_timestamp       = 6;  // used when you want something like "get the samples until X date/time"
   // Pending add field to reflect Available Device Protocols
diff --git a/src/dbscanserving/client/DbscanServingClient.py b/src/dbscanserving/client/DbscanServingClient.py
index 0458deeb7465c8149ad6195956893bf2f880f49c..fd2642d92b7e692f41f1f38d2a619e1d7027afd6 100644
--- a/src/dbscanserving/client/DbscanServingClient.py
+++ b/src/dbscanserving/client/DbscanServingClient.py
@@ -14,11 +14,13 @@
 
 from email.policy import default
 import grpc, logging
-from common.Settings import get_setting
+from common.Settings import get_log_level, get_setting
 from common.tools.client.RetryDecorator import retry, delay_exponential
 from common.proto.dbscanserving_pb2 import DetectionRequest, DetectionResponse
 from common.proto.dbscanserving_pb2_grpc import DetectorStub
 
+log_level = get_log_level()
+logging.basicConfig(level=log_level)
 LOGGER = logging.getLogger(__name__)
 MAX_RETRIES = 15
 DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0)
@@ -46,7 +48,10 @@ class DbscanServingClient:
 
     @RETRY_DECORATOR
     def Detect(self, request : DetectionRequest) -> DetectionResponse:
-        LOGGER.debug('Detect request')
+        LOGGER.debug('Detect request with {} samples and {} features'.format(
+            request.num_samples,
+            request.num_features
+        ))
         response = self.stub.Detect(request)
         LOGGER.debug('Detect result: {:s}'.format(str(response)))
         return response
diff --git a/src/monitoring/service/__main__.py b/src/monitoring/service/__main__.py
index e37412fa004704d089a8e00bada8033d8abe53bd..3334a860ccd94d51390ab5f5869d25e2475084ee 100644
--- a/src/monitoring/service/__main__.py
+++ b/src/monitoring/service/__main__.py
@@ -45,8 +45,8 @@ def start_monitoring():
                 # Create Monitor Kpi Requests
                 monitor_kpi_request = monitoring_pb2.MonitorKpiRequest()
                 monitor_kpi_request.kpi_id.CopyFrom(kpi_id)
-                monitor_kpi_request.sampling_duration_s = 86400
-                monitor_kpi_request.sampling_interval_s = 30
+                monitor_kpi_request.monitoring_window_s = 86400
+                monitor_kpi_request.sampling_rate_s = 30
                 events_collector._monitoring_client.MonitorKpi(monitor_kpi_request)
     else:
         # Terminate is set, looping terminates
diff --git a/src/opticalattackdetector/Config.py b/src/opticalattackdetector/Config.py
index ddc2843a673183117f8af8e1b1fcad3b650c6aaf..1c356766d30f30b47ca99573a7171b824850ae03 100644
--- a/src/opticalattackdetector/Config.py
+++ b/src/opticalattackdetector/Config.py
@@ -22,17 +22,6 @@ GRPC_SERVICE_PORT = 10006
 
 # service settings
 MONITORING_INTERVAL = 10  # monitoring interval in seconds
-#TODO: adjust the addresses below for the specific case
-MONITORING_SERVICE_ADDRESS = 'monitoringservice'  # address/name of the monitoring service
-# MONITORING_SERVICE_ADDRESS = '10.99.41.20'  # address/name of the monitoring service
-CONTEXT_SERVICE_ADDRESS = 'contextservice'  # address/name of the monitoring service
-# CONTEXT_SERVICE_ADDRESS = '10.107.199.65'  # address/name of the monitoring service
-SERVICE_SERVICE_ADDRESS = 'serviceservice'  # address/name of the service service
-# SERVICE_SERVICE_ADDRESS = '10.99.234.88'  # address/name of the service service
-# INFERENCE_SERVICE_ADDRESS = '10.108.113.78'  # address/name of the inference service
-INFERENCE_SERVICE_ADDRESS = 'dbscanservingservice'  # address/name of the inference service
-# ATTACK_MITIGATOR_SERVICE_ADDRESS = '10.96.248.167'
-ATTACK_MITIGATOR_SERVICE_ADDRESS = 'opticalattackmitigatorservice'
 
 # Prometheus settings
 METRICS_PORT = 9192
diff --git a/src/opticalattackdetector/service/__main__.py b/src/opticalattackdetector/service/__main__.py
index c0bea72ebc9d64618cc0caced378dbc390828351..75d170de8b1363d70f9041c26a7fb791be27f17e 100644
--- a/src/opticalattackdetector/service/__main__.py
+++ b/src/opticalattackdetector/service/__main__.py
@@ -18,6 +18,7 @@ from celery import Celery
 
 from common.Constants import DEFAULT_GRPC_MAX_WORKERS, DEFAULT_GRPC_GRACE_PERIOD
 from common.Settings import get_log_level, get_metrics_port, get_setting
+from common.tools.timestamp.Converters import timestamp_utcnow_to_float
 from opticalattackdetector.Config import (
     GRPC_SERVICE_PORT, MONITORING_INTERVAL)
 from common.proto.context_pb2 import (Empty,
@@ -79,7 +80,6 @@ def main():
     metrics_port = get_metrics_port()
     start_http_server(metrics_port)
 
-    dbscanserving_client: DbscanServingClient = DbscanServingClient()
     attack_mitigator_client: OpticalAttackMitigatorClient = OpticalAttackMitigatorClient()
     monitoring_client: MonitoringClient = MonitoringClient()
 
@@ -95,12 +95,13 @@ def main():
     LOGGER.info('Connecting with REDIS...')
     REDIS_PASSWORD = get_setting('REDIS_PASSWORD')
     REDIS_HOST = get_setting('CACHINGSERVICE_SERVICE_HOST')
-    REDIS_PORT = get_setting('CACHINGSERVICE_SERVICE_PORT_REDIS')
+    REDIS_PORT = get_setting('CACHINGSERVICE_SERVICE_PORT')
     BROKER_URL = f'redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0'
+    BACKEND_URL = f'redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/1'
     app = Celery(
         'cybersecurity',
         broker=BROKER_URL,
-        backend=BROKER_URL
+        backend=BACKEND_URL
     )
     LOGGER.info('Connected to REDIS...')
 
@@ -110,38 +111,44 @@ def main():
         alien_samples = random.randint(2, 10)
         # run attack detection for every service
         request: DetectionRequest = DetectionRequest()
-        request.num_samples = 300 + alien_samples
+        request.num_samples = 200 + alien_samples
         request.num_features = 20
         request.eps = 100.5
         request.min_samples = 5
         for _ in range(200):
             grpc_sample = Sample()
-            for __ in range(20):
+            for __ in range(request.num_features):
                 grpc_sample.features.append(random.uniform(0., 10.))
             request.samples.append(grpc_sample)
-        for _ in range(100):
-            grpc_sample = Sample()
-            for __ in range(20):
-                grpc_sample.features.append(random.uniform(50., 60.))
-            request.samples.append(grpc_sample)                  
+        # for _ in range(100):
+        #     grpc_sample = Sample()
+        #     for __ in range(20):
+        #         grpc_sample.features.append(random.uniform(50., 60.))
+        #     request.samples.append(grpc_sample)                  
         for _ in range(alien_samples):
             grpc_sample = Sample()
-            for __ in range(20):
+            for __ in range(request.num_features):
                 grpc_sample.features.append(random.uniform(5000., 6000.))
             request.samples.append(grpc_sample)
-        response: DetectionResponse = dbscanserving_client.Detect(request)
+        try:
+            dbscanserving_client: DbscanServingClient = DbscanServingClient()
+            response: DetectionResponse = dbscanserving_client.Detect(request)
+            dbscanserving_client.close()
+        except Exception as e:
+            LOGGER.exception(e)
 
         # including KPI
         kpi = Kpi()
         kpi.kpi_id.kpi_id.uuid = kpi_id
-        kpi.timestamp = Timestamp()
-        kpi.kpi_value.int32Val = response.cluster_indices[-1]
-        monitoring_client.IncludeKpi(kpi)
-
-        if -1 in response.cluster_indices:  # attack detected
-            attack = AttackDescription()
-            # attack.cs_id.uuid = service.service_id.service_uuid.uuid
-            response: AttackResponse = attack_mitigator_client.NotifyAttack(attack)
+        kpi.timestamp.timestamp = timestamp_utcnow_to_float()
+        # kpi.kpi_value.int32Val = response.cluster_indices[-1]
+        kpi.kpi_value.int32Val = 1
+        # monitoring_client.IncludeKpi(kpi)
+
+        # if -1 in response.cluster_indices:  # attack detected
+        #     attack = AttackDescription()
+        #     # attack.cs_id.uuid = service.service_id.service_uuid.uuid
+        #     response: AttackResponse = attack_mitigator_client.NotifyAttack(attack)
         return 0
     
     app.worker_main([
diff --git a/src/opticalattackmanager/Dockerfile b/src/opticalattackmanager/Dockerfile
index bbd680a5a4692178a1ee5121ce0fba9c9691270c..908c4893f5178fdb01bca48d54f7641a91ca08c6 100644
--- a/src/opticalattackmanager/Dockerfile
+++ b/src/opticalattackmanager/Dockerfile
@@ -16,9 +16,11 @@ FROM python:3.9-slim
 
 # Install dependencies
 RUN apt-get --yes --quiet --quiet update && \
-    apt-get --yes --quiet --quiet install wget g++ && \
+    apt-get --yes --quiet --quiet install wget g++ nano && \
     rm -rf /var/lib/apt/lists/*
 
+# TODO: remove nano from installation
+
 # Set Python to show logs as they occur
 ENV PYTHONUNBUFFERED=0
 ENV PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
diff --git a/src/opticalattackmanager/send_task.py b/src/opticalattackmanager/send_task.py
new file mode 100644
index 0000000000000000000000000000000000000000..1cf25ffea728c14c48df11c6fae93d7e0bf46078
--- /dev/null
+++ b/src/opticalattackmanager/send_task.py
@@ -0,0 +1,47 @@
+from celery import Celery
+import random
+from common.Settings import get_log_level, get_metrics_port, get_setting
+from common.proto.dbscanserving_pb2 import DetectionRequest, DetectionResponse, Sample
+from dbscanserving.client.DbscanServingClient import DbscanServingClient
+
+
+dbscanserving_client: DbscanServingClient = DbscanServingClient()
+
+alien_samples = random.randint(2, 20)
+
+request: DetectionRequest = DetectionRequest()
+request.num_samples = 300 + alien_samples
+request.num_features = 20
+request.eps = 100.5
+request.min_samples = 5
+for _ in range(200):
+    grpc_sample = Sample()
+    for __ in range(20):
+        grpc_sample.features.append(random.uniform(0., 10.))
+    request.samples.append(grpc_sample)
+for _ in range(100):
+    grpc_sample = Sample()
+    for __ in range(20):
+        grpc_sample.features.append(random.uniform(50., 60.))
+    request.samples.append(grpc_sample)
+for _ in range(alien_samples):
+    grpc_sample = Sample()
+    for __ in range(20):
+        grpc_sample.features.append(random.uniform(5000., 6000.))
+    request.samples.append(grpc_sample)
+response: DetectionResponse = dbscanserving_client.Detect(request)
+
+REDIS_PASSWORD = get_setting('REDIS_PASSWORD')
+REDIS_HOST = get_setting('CACHINGSERVICE_SERVICE_HOST')
+REDIS_PORT = get_setting('CACHINGSERVICE_SERVICE_PORT')
+BROKER_URL = f'redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0'
+app = Celery(
+    'cybersecurity',
+    broker=BROKER_URL,
+    backend=BROKER_URL
+)
+
+service = {'context': 'admin', 'service': '23bb5c96-e377-4943-a47a-4db9c54104cc', 'kpi': '1'}
+result = app.send_task('detect_attack', (service['context'], service['service'], service['kpi']))
+print('waiting for result...')
+print('Result:', result.get())
\ No newline at end of file
diff --git a/src/opticalattackmanager/service/__main__.py b/src/opticalattackmanager/service/__main__.py
index 3652022d67250b8ae3aeab89fdeadaf7c715635a..135cb257fe1194ad7d4e6fed9a7b412f5d7022d9 100644
--- a/src/opticalattackmanager/service/__main__.py
+++ b/src/opticalattackmanager/service/__main__.py
@@ -129,10 +129,11 @@ def main():
     REDIS_HOST = get_setting('CACHINGSERVICE_SERVICE_HOST')
     REDIS_PORT = get_setting('CACHINGSERVICE_SERVICE_PORT_REDIS')
     BROKER_URL = f'redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/0'
+    BACKEND_URL = f'redis://:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/1'
     app = Celery(
         'cybersecurity',
         broker=BROKER_URL,
-        backend=BROKER_URL
+        backend=BACKEND_URL
     )
     LOGGER.info('Connected to REDIS...')