diff --git a/kafka/kafka-consumer.py b/kafka/kafka-consumer.py
index 3f405d8..0b45f6f 100644
--- a/kafka/kafka-consumer.py
+++ b/kafka/kafka-consumer.py
@@ -20,7 +20,7 @@
 
 
 class ConsumerExample(object):
-    def __init__(self, consul_endpoint, topic="heartbeat.voltha", runtime=60):
+    def __init__(self, consul_endpoint, topic="voltha.heartbeat", runtime=60):
         self.topic = topic
         self.runtime = runtime
         self.kafka_endpoint = get_endpoint_from_consul(consul_endpoint,
@@ -105,7 +105,7 @@
 
     parser.add_argument("-t", "--topic",
                         help="topic to listen from",
-                        default="heartbeat.voltha")
+                        default="voltha.heartbeat")
 
     parser.add_argument("-r", "--runtime",
                         help="total runtime",
diff --git a/tests/itests/docutests/build_md_test.py b/tests/itests/docutests/build_md_test.py
index d8c888c..f4b43b7 100644
--- a/tests/itests/docutests/build_md_test.py
+++ b/tests/itests/docutests/build_md_test.py
@@ -441,7 +441,7 @@
 
             # Verify kafka client is receiving the messages
             print "Verify kafka client is receiving the heartbeat messages ..."
-            expected_pattern = ['heartbeat.voltha', 'heartbeat']
+            expected_pattern = ['voltha.heartbeat', 'heartbeat']
             cmd = command_defs['kafka_client_run_10_secs']
             kafka_client_output = run_long_running_command_with_timeout(cmd,
                                                                         20)
diff --git a/voltha/main.py b/voltha/main.py
index 2262c94..9653674 100755
--- a/voltha/main.py
+++ b/voltha/main.py
@@ -18,12 +18,14 @@
 """Virtual OLT Hardware Abstraction main entry point"""
 
 import argparse
+import arrow
 import os
 import time
 
 import yaml
 from simplejson import dumps
 from twisted.internet.defer import inlineCallbacks
+from twisted.internet.task import LoopingCall
 from zope.interface import implementer
 
 from common.event_bus import EventBusClient
@@ -371,7 +373,6 @@
         def heartbeat():
             self.log.debug(status='up', since=t0s, uptime=time.time() - t0)
 
-        from twisted.internet.task import LoopingCall
         lc = LoopingCall(heartbeat)
         lc.start(10)
 
@@ -381,19 +382,21 @@
         # For heartbeat we will send a message to a specific "voltha-heartbeat"
         #  topic.  The message is a protocol buf
         # message
-        message = dumps(dict(
+        message = dict(
             type='heartbeat',
             voltha_instance=instance_id,
             ip=get_my_primary_local_ipv4()
-        ))
-        topic = "heartbeat.voltha"
+        )
+        topic = "voltha.heartbeat"
 
-        from twisted.internet.task import LoopingCall
+        def send_msg():
+            message['ts'] = arrow.utcnow().timestamp
+            kafka_proxy.send_message(topic, dumps(message))
+
         kafka_proxy = get_kafka_proxy()
         if kafka_proxy:
-            lc = LoopingCall(kafka_proxy.send_message, topic, message)
+            lc = LoopingCall(send_msg)
             lc.start(10)
-            pass
         else:
             self.log.error('Kafka proxy has not been created!')
 
diff --git a/voltha/northbound/diagnostics.py b/voltha/northbound/diagnostics.py
index 55ec07b..1f6e889 100644
--- a/voltha/northbound/diagnostics.py
+++ b/voltha/northbound/diagnostics.py
@@ -23,6 +23,7 @@
 import structlog
 import resource
 
+import sys
 from simplejson import dumps
 from twisted.internet.defer import Deferred
 from twisted.internet.task import LoopingCall
@@ -66,7 +67,10 @@
             return len(gc.get_referrers(Deferred))
 
         def rss_mb():
-            return resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024/1024
+            rss = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1024
+            if sys.platform.startswith('darwin'):
+                rss /= 1024
+            return rss
 
         data = dict(
             type='slice',
