diff --git a/lib/refrepo/gen/puppet/templates/kwollect-network.erb b/lib/refrepo/gen/puppet/templates/kwollect-network.erb
index eef8059b951459b3aa37e3d3b7d8633a47e98bb7..9d7e9864fab230545f852876e2a93b6baeb06692 100644
--- a/lib/refrepo/gen/puppet/templates/kwollect-network.erb
+++ b/lib/refrepo/gen/puppet/templates/kwollect-network.erb
@@ -14,10 +14,12 @@ neteq.fetch('metrics', []).each {|metric|
         port_name = lport['snmp_name']
         # TODO: Handle secondary interface
         port_node = lport['uid']
+        labels = lport['kind'] == 'node' ? {'interface': lport['port']} : {}
+        labels.update({'_device_alias': port_node})
 -%>
 - name: <%= metric['name'] %>
   device_id: <%= neteq_uid %>-port-<%= port_uid %>
-  device_alias: <%= port_node %>
+  labels: <%= labels.to_json %>
   url: snmp://<%= neteq.fetch('snmp_community', 'public')%>@<%= neteq_uid %>.<%= site_uid %>.grid5000.fr/<%= metric['source']['id'].sub('%SNMP_IFACE%',  "{{ #{port_name} }}") %>
   update_every: <%= metric['period'] > 0 ? metric['period'] : metric['optional_period'] %>
 <%- if metric['period'] == 0 -%>
diff --git a/lib/refrepo/gen/puppet/templates/kwollect-node.erb b/lib/refrepo/gen/puppet/templates/kwollect-node.erb
index b7d7363b21dd123a51f01f9f38f72c6f2812878a..6b1aab0bcb17f5f112c28ec9c65b93dfe775f388 100644
--- a/lib/refrepo/gen/puppet/templates/kwollect-node.erb
+++ b/lib/refrepo/gen/puppet/templates/kwollect-node.erb
@@ -22,7 +22,7 @@ cluster.fetch('metrics', []).each {|metric|
 - name: <%= metric['name'] %>
   device_id: <%= node_uid %>
   url: <%= metric['source']['protocol'] %>://<%= auth %><%= node_uid %>-bmc.<%= site_uid %>.grid5000.fr/<%= metric['source']['id'] %>
-  device_alias: <%= node_uid %>-bmc
+  labels: <%= metric.fetch('labels', {}).update({'_device_alias': node_uid+'-bmc'}).to_json %>
   update_every: <%= metric['period'] > 0 ? metric['period'] : metric['optional_period'] %>
 <%- if metric['period'] == 0 -%>
   optional: true
diff --git a/lib/refrepo/gen/puppet/templates/kwollect-pdu.erb b/lib/refrepo/gen/puppet/templates/kwollect-pdu.erb
index 2a87b87c7ea8bd4249bd3e221732d007ef58457d..792a8535e1c782273f20500d375062a2586af82e 100644
--- a/lib/refrepo/gen/puppet/templates/kwollect-pdu.erb
+++ b/lib/refrepo/gen/puppet/templates/kwollect-pdu.erb
@@ -14,7 +14,7 @@ pdu.fetch('metrics', []).each {|metric|
 - name: <%= metric['name'] %>
   device_id: <%= pdu_uid %>-port-<%= port_uid %>
 <%- if single_port -%>
-  device_alias: <%= node_uid %>
+  labels: <%= {'_device_alias': node_uid}.to_json %>
 <%- end -%>
   url: snmp://<%= pdu.fetch('snmp_community', 'public')%>@<%= pdu_uid %>.<%= site_uid %>.grid5000.fr/<%= metric['source']['id'].sub('%PORT%',  "#{port_uid}") %>
   update_every: <%= metric['period'] > 0 ? metric['period'] : metric['optional_period'] %>