diff --git a/software/grafana/buildout.hash.cfg b/software/grafana/buildout.hash.cfg
index c1d659e6793047cea52cad5547dc13bb88e4ee3e..01f73b27c1594925213382d3c3cce931d74e4003 100644
--- a/software/grafana/buildout.hash.cfg
+++ b/software/grafana/buildout.hash.cfg
@@ -15,7 +15,7 @@
 
 [instance-profile]
 filename = instance.cfg.in
-md5sum = 7fb6806b139b3a8d0054308397be1dd9
+md5sum = 461d515da03de5e422e6f75189d09184
 
 [influxdb-config-file]
 filename = influxdb-config-file.cfg.in
diff --git a/software/grafana/instance.cfg.in b/software/grafana/instance.cfg.in
index 550e68cbf2bc73f1c610d10e81a4bcffd3c4c6ff..ed2435f70a91a405e9038f312bf089625ab8d6d3 100644
--- a/software/grafana/instance.cfg.in
+++ b/software/grafana/instance.cfg.in
@@ -3,6 +3,8 @@ parts =
   promises
   publish-connection-parameter
 
+extends = {{ monitor_template }}
+
 eggs-directory = {{ buildout['eggs-directory'] }}
 develop-eggs-directory = {{ buildout['develop-eggs-directory'] }}
 offline = true
@@ -33,7 +35,6 @@ etc = ${:home}/etc
 var = ${:home}/var
 srv = ${:home}/srv
 service = ${:etc}/service
-promise = ${:etc}/promise
 influxdb-data-dir = ${:srv}/influxdb
 grafana-dir = ${:srv}/grafana
 grafana-data-dir = ${:grafana-dir}/data
@@ -70,8 +71,9 @@ mode = 0644
 extensions = jinja2.ext.do
 
 [check-port-listening-promise]
-recipe = slapos.cookbook:check_port_listening
-path = ${directory:promise}/${:_buildout_section_name_}
+<= monitor-base-promise
+module = check_port_listening
+name = ${:_buildout_section_name_}.py
 
 
 
@@ -110,14 +112,15 @@ username = influxdb
 
 [influxdb-listen-promise]
 <= check-port-listening-promise
-hostname = ${influxdb:ipv6}
-port = ${influxdb:http-port}
+config-hostname = ${influxdb:ipv6}
+config-port = ${influxdb:http-port}
 
 [influxdb-password-promise]
-recipe = slapos.cookbook:wrapper
-command-line =
+<= monitor-base-promise
+module = check_command_execute
+name = ${:_buildout_section_name_}.py
+config-command =
   {{ influx_bin }} -username ${influxdb:auth-username} -password ${influxdb:auth-password} -socket ${influxdb:unix-socket} -execute "CREATE USER ${influxdb:auth-username} WITH PASSWORD '${influxdb:auth-password}' WITH ALL PRIVILEGES"
-wrapper-path = ${directory:promise}/${:_buildout_section_name_}
 
 
 
@@ -160,8 +163,8 @@ context =
 
 [grafana-listen-promise]
 <= check-port-listening-promise
-hostname= ${grafana:ipv6}
-port = ${grafana:port}
+config-hostname= ${grafana:ipv6}
+config-port = ${grafana:port}
 
 
 
diff --git a/software/grafana/software.cfg b/software/grafana/software.cfg
index 8f2147ce38cf730844bd983d5e40e984449382ff..47d9b895b52e7b6e9c2bef7ed4e2025424d525d7 100644
--- a/software/grafana/software.cfg
+++ b/software/grafana/software.cfg
@@ -2,6 +2,7 @@
 extends =
   ../../stack/slapos.cfg
   ../../stack/nodejs.cfg
+  ../../stack/monitor/buildout.cfg
   ../../component/make/buildout.cfg
   ../../component/golang/buildout.cfg
   ../../component/openssl/buildout.cfg
@@ -105,6 +106,7 @@ context =
   key influx_bin gowork:influx-bin
   key grafana_bin gowork:grafana-bin
   key grafana_homepath gowork:grafana-homepath
+  key monitor_template monitor2-template:rendered
 
 
 [versions]