diff --git a/xos/ceilometer/admin.py b/xos/ceilometer/admin.py
index 48bf101..a70032a 100644
--- a/xos/ceilometer/admin.py
+++ b/xos/ceilometer/admin.py
@@ -74,10 +74,10 @@
     list_display = ('backend_status_icon', 'id', )
     list_display_links = ('backend_status_icon', 'id')
     fieldsets = [ (None, {'fields': ['backend_status_text', 'kind', 'provider_service', 'service_specific_attribute',
-                                     'sliver',
-                                     'creator'],
+                                     'tenant_list_str',
+                                     'sliver', 'creator'],
                           'classes':['suit-tab suit-tab-general']})]
-    readonly_fields = ('backend_status_text', 'sliver', 'service_specific_attribute')
+    readonly_fields = ('backend_status_text', 'sliver', 'service_specific_attribute', 'tenant_list_str')
     form = MonitoringChannelForm
 
     suit_form_tabs = (('general','Details'),)
diff --git a/xos/ceilometer/models.py b/xos/ceilometer/models.py
index 2b2e990..c276682 100644
--- a/xos/ceilometer/models.py
+++ b/xos/ceilometer/models.py
@@ -8,6 +8,8 @@
 from operator import itemgetter, attrgetter, methodcaller
 import traceback
 from xos.exceptions import *
+from core.models import SlicePrivilege, SitePrivilege
+from sets import Set
 
 CEILOMETER_KIND = "ceilometer"
 
@@ -48,6 +50,41 @@
         self.cleanup_container()
         super(MonitoringChannel, self).delete(*args, **kwargs)
 
+    @property
+    def site_tenant_list(self):
+        tenant_ids = Set()
+        for sp in SitePrivilege.objects.filter(user=self.creator):
+            site = sp.site
+            for cs in site.controllersite.all():
+               if cs.tenant_id:
+                   tenant_ids.add(cs.tenant_id)
+        return tenant_ids
+
+    @property
+    def slice_tenant_list(self):
+        tenant_ids = Set()
+        for sp in SlicePrivilege.objects.filter(user=self.creator):
+            slice = sp.slice
+            for cs in slice.controllerslices.all():
+               if cs.tenant_id:
+                   tenant_ids.add(cs.tenant_id)
+        for slice in Slice.objects.filter(creator=self.creator):
+            for cs in slice.controllerslices.all():
+                if cs.tenant_id:
+                    tenant_ids.add(cs.tenant_id)
+        return tenant_ids
+
+    @property
+    def tenant_list(self):
+        return self.slice_tenant_list | self.site_tenant_list
+
+    @property
+    def tenant_list_str(self):
+        return ", ".join(self.tenant_list)
+
+
+
+
 def model_policy_monitoring_channel(pk):
     # TODO: this should be made in to a real model_policy
     with transaction.atomic():
