diff --git a/circle/vm/tasks/local_agent_tasks.py b/circle/vm/tasks/local_agent_tasks.py
index 2ed6720..a024201 100644
--- a/circle/vm/tasks/local_agent_tasks.py
+++ b/circle/vm/tasks/local_agent_tasks.py
@@ -24,7 +24,9 @@ from base64 import encodestring
 from StringIO import StringIO
 from tarfile import TarFile, TarInfo
 from django.conf import settings
+from django.utils import timezone
 from celery.result import TimeoutError
+from monitor.client import Client
 
 
 def send_init_commands(instance, act, vm):
@@ -86,12 +88,33 @@ def agent_started(vm, version=None):
                 pass
 
         if not initialized:
+            measure_boot_time(instance)
             send_init_commands(instance, act, vm)
 
         with act.sub_activity('start_access_server'):
             start_access_server.apply_async(queue=queue, args=(vm, ))
 
 
+def measure_boot_time(instance):
+    if not instance.template:
+        return
+
+    from vm.models import InstanceActivity
+    deploy_time = InstanceActivity.objects.filter(
+        instance=instance, activity_code="vm.Instance.deploy"
+    ).latest("finished").finished
+
+    total_boot_time = (timezone.now() - deploy_time).total_seconds()
+
+    Client().send([
+        "template.%(pk)d.boot_time %(val)f %(time)s" % {
+            'pk': instance.template.pk,
+            'val': total_boot_time,
+            'time': time.time(),
+        }
+    ])
+
+
 @celery.task
 def agent_stopped(vm):
     from vm.models import Instance, InstanceActivity