diff --git a/xos/api/service/monitoring/monitoringservice.py b/xos/api/service/monitoring/monitoringservice.py
index 37987cb..41ce9a0 100644
--- a/xos/api/service/monitoring/monitoringservice.py
+++ b/xos/api/service/monitoring/monitoringservice.py
@@ -43,6 +43,8 @@
         backend_status = ReadOnlyField()
         humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
         ceilometer_pub_sub_url = ReadOnlyField()
+        ceilometer_enable_pub_sub = ReadOnlyField()
+        kafka_url = ReadOnlyField()
         related = serializers.DictField(required=False)
 
         class Meta:
@@ -51,6 +53,8 @@
                       'id',
                       'backend_status',
                       'ceilometer_pub_sub_url',
+                      'ceilometer_enable_pub_sub',
+                      'kafka_url',
                       'related')
 
         def getHumanReadableName(self, obj):
diff --git a/xos/api/tenant/monitoring/dashboard/ceilometerdashboard.py b/xos/api/tenant/monitoring/dashboard/ceilometerdashboard.py
index 1ab8d75..1aaa7b3 100644
--- a/xos/api/tenant/monitoring/dashboard/ceilometerdashboard.py
+++ b/xos/api/tenant/monitoring/dashboard/ceilometerdashboard.py
@@ -34,7 +34,7 @@
     attempts = 0
     while True:
         try:
-            response = urllib2.urlopen(monitoring_channel.ceilometer_url)
+            response = urllib2.urlopen(monitoring_channel.ceilometer_ssh_proxy_url)
             break
         except urllib2.HTTPError, e:
             logger.info('HTTP error %(reason)s' % {'reason':e.reason})
@@ -46,8 +46,8 @@
             logger.info('URL error %(reason)s' % {'reason':e.reason})
             time.sleep(1)
             pass
-    logger.info("Ceilometer proxy URL for user %(user)s is %(url)s" % {'user':user.username,'url':monitoring_channel.ceilometer_url})
-    return monitoring_channel.ceilometer_url
+    logger.info("Ceilometer proxy URL for user %(user)s is %(url)s" % {'user':user.username,'url':monitoring_channel.ceilometer_ssh_proxy_url})
+    return monitoring_channel.ceilometer_ssh_proxy_url
 
 def getTenantControllerTenantMap(user, slice=None):
     tenantmap={}
diff --git a/xos/api/tenant/monitoring/monitoringchannel.py b/xos/api/tenant/monitoring/monitoringchannel.py
index 6324745..5b90992 100644
--- a/xos/api/tenant/monitoring/monitoringchannel.py
+++ b/xos/api/tenant/monitoring/monitoringchannel.py
@@ -39,6 +39,8 @@
         backend_status = ReadOnlyField()
         service_specific_attribute = ReadOnlyField()
         ceilometer_url = ReadOnlyField()
+        ceilometer_ssh_proxy_url = ReadOnlyField()
+        kafka_url = ReadOnlyField()
         tenant_list_str = ReadOnlyField()
         #creator = ReadOnlyField()
         #instance = ReadOnlyField()
@@ -51,7 +53,7 @@
 
         class Meta:
             model = MonitoringChannelForAPI
-            fields = ('humanReadableName', 'id', 'backend_status', 'provider_service', 'service_specific_attribute', 'ceilometer_url', 'tenant_list_str', 'related' )
+            fields = ('humanReadableName', 'id', 'backend_status', 'provider_service', 'service_specific_attribute', 'ceilometer_url', 'ceilometer_ssh_proxy_url', 'kafka_url', 'tenant_list_str', 'related' )
 
         def getHumanReadableName(self, obj):
             return obj.__unicode__()
