diff --git a/metrics/metrics_daemon.cc b/metrics/metrics_daemon.cc
index 5f9d851..bdd181c 100644
--- a/metrics/metrics_daemon.cc
+++ b/metrics/metrics_daemon.cc
@@ -187,8 +187,8 @@
 }
 
 void MetricsDaemon::RunUploaderTest() {
-  upload_service_.reset(new UploadService(testing_));
-  upload_service_->Init();
+  upload_service_.reset(new UploadService(testing_, server_));
+  upload_service_->Init(upload_interval_secs_, metrics_file_);
   upload_service_->UploadEvent();
 }
 
@@ -215,11 +215,18 @@
                          const string& diskstats_path,
                          const string& vmstats_path,
                          const string& scaling_max_freq_path,
-                         const string& cpuinfo_max_freq_path) {
+                         const string& cpuinfo_max_freq_path,
+                         int upload_interval_secs,
+                         const string& server,
+                         const string& metrics_file) {
   testing_ = testing;
   DCHECK(metrics_lib != nullptr);
   metrics_lib_ = metrics_lib;
 
+  upload_interval_secs_ = upload_interval_secs;
+  server_ = server;
+  metrics_file_ = metrics_file;
+
   // Get ticks per second (HZ) on this system.
   // Sysconf cannot fail, so no sanity checks are needed.
   ticks_per_second_ = sysconf(_SC_CLK_TCK);
@@ -314,8 +321,8 @@
 
   if (uploader_active) {
     LOG(INFO) << "uploader enabled";
-    upload_service_.reset(new UploadService(testing_));
-    upload_service_->Init();
+    upload_service_.reset(new UploadService(testing_, server_));
+    upload_service_->Init(upload_interval_secs_, metrics_file_);
   }
 }
 
