diff --git a/cmd/ipfs/daemon.go b/cmd/ipfs/daemon.go
index 4bda0128368a4de3ddb9cc2ffd5e549939f08845..c8aff04ffa0b6a4c52c82bf484dfed911a887675 100644
--- a/cmd/ipfs/daemon.go
+++ b/cmd/ipfs/daemon.go
@@ -181,6 +181,13 @@ func defaultMux(path string) corehttp.ServeOption {
 var fileDescriptorCheck = func() error { return nil }
 
 func daemonFunc(req cmds.Request, res cmds.Response) {
+	// Inject metrics before we do anything
+
+	err := mprome.Inject()
+	if err != nil {
+		log.Warningf("Injecting prometheus handler for metrics failed with message: %s\n", err.Error())
+	}
+
 	// let the user know we're going.
 	fmt.Printf("Initializing daemon...\n")
 
@@ -388,10 +395,6 @@ func daemonFunc(req cmds.Request, res cmds.Response) {
 	}
 
 	// initialize metrics collector
-	err = mprome.Inject()
-	if err != nil {
-		log.Warningf("Injecting prometheus handler for metrics failed with message: %s\n", err.Error())
-	}
 	prometheus.MustRegister(&corehttp.IpfsNodeCollector{Node: node})
 
 	fmt.Printf("Daemon is ready\n")