diff --git a/src/device/service/MonitoringLoops.py b/src/device/service/MonitoringLoops.py
index 4d6d3f59147026c3104062cca0684ea9e3a304cf..18faed0d51d8d594368a0c80ef03539a9b0c4d4e 100644
--- a/src/device/service/MonitoringLoops.py
+++ b/src/device/service/MonitoringLoops.py
@@ -129,8 +129,8 @@ class MonitoringLoops:
             # FIXME: uint32 used for intVal results in out of range issues. Temporarily changed to float
             #        extend the 'kpi_value' to support long integers (uint64 / int64 / ...)
             if isinstance(value, int):
-                kpi_value_field_name = 'floatVal'   # 'intVal'
-                kpi_value_field_cast = float        # int
+                kpi_value_field_name = 'int64Val'
+                kpi_value_field_cast = int
             elif isinstance(value, float):
                 kpi_value_field_name = 'floatVal'
                 kpi_value_field_cast = float
@@ -144,7 +144,7 @@ class MonitoringLoops:
             try:
                 self._monitoring_client.IncludeKpi(Kpi(**{
                     'kpi_id'   : {'kpi_id': {'uuid': db_kpi.kpi_uuid}},
-                    'timestamp': datetime.utcfromtimestamp(timestamp).isoformat() + 'Z',
+                    'timestamp': {'timestamp': timestamp},
                     'kpi_value': {kpi_value_field_name: kpi_value_field_cast(value)}
                 }))
             except: # pylint: disable=bare-except
diff --git a/src/device/tests/test_unitary_emulated.py b/src/device/tests/test_unitary_emulated.py
index 87c067a08e37475bcf44b0546abcfcaf25fc965d..745c25c1eba679dc67e0ed9e04f38eb0ae8c3af4 100644
--- a/src/device/tests/test_unitary_emulated.py
+++ b/src/device/tests/test_unitary_emulated.py
@@ -299,12 +299,7 @@ def test_device_emulated_monitor(
     for received_sample in received_samples:
         kpi_uuid = received_sample.kpi_id.kpi_id.uuid
         assert kpi_uuid in KPI_UUIDS__TO__NUM_SAMPLES_RECEIVED
-        assert isinstance(received_sample.timestamp, str)
-        try:
-            timestamp = float(received_sample.timestamp)
-        except ValueError:
-            dt_time = dateutil.parser.isoparse(received_sample.timestamp).replace(tzinfo=timezone.utc)
-            timestamp = float(calendar.timegm(dt_time.timetuple())) + (dt_time.microsecond / 1.e6)
+        timestamp = float(received_sample.timestamp.timestamp)
         assert timestamp > t_start_monitoring
         assert timestamp < t_end_monitoring
         assert received_sample.kpi_value.HasField('floatVal') or received_sample.kpi_value.HasField('intVal')