                                          e)
                     (throw e)))))
 
-            (handle-launch-task-metrics matches count-txns pool-name compute-cluster)
-
             ;; Launching the matched tasks MUST happen after the above transaction in
             ;; order to allow a transaction failure (due to failed preconditions)
-            ;; to block the launch
+            ;; to block the launch.
             (prom/with-duration
               prom/scheduler-launch-all-matched-tasks-submit-duration {:pool pool-name}
               (timers/time!
                 (timers/timer (metric-title "handle-resource-offer!-mesos-submit-duration" pool-name))
                 (let [_ (log-structured/info "Launching matched tasks for compute cluster"
                                              {:pool pool-name :compute-cluster compute-cluster-name})]
-                  (doseq [match matches]
-                    (timers/stop (-> match :leases first :offer :offer-match-timer))
-                    (-> match :leases first :offer :offer-match-timer-prom-stop-fn))
+                  ;; Mesos offers must be launched within a timeout, otherwise they expire worthless.
+                  ;; We track that metric in order to catch the problem. Note that this is only 
+                  ;; applicable to Mesos tasks on Fenzo. When Mesos goes away, this metric ceases 
+                  ;; to be important and this can be deleted.
+                  (when should-metric-offer-match-time
+                    (doseq [match matches]
+                      (timers/stop (-> match :leases first :offer :offer-match-timer))
+                      (-> match :leases first :offer :offer-match-timer-prom-stop-fn)))
                   (#(launch-matches! compute-cluster pool-name matches fenzo)))))
             (finally
               (.. kill-lock-object readLock unlock))))))))

          compute-cluster-to-matches-map (group-by match->compute-cluster matches)]
      (->> compute-cluster-to-matches-map
           (map
             (fn [[compute-cluster matches-in-compute-cluster]]
               ; vary behavior based on compute cluster type. Mesos clusters are single-threaded and
               ; should not be launched with futures
               (if (:mesos-config compute-cluster)
                 (launch-tasks-for-cluster compute-cluster matches-in-compute-cluster pool-name conn fenzo)
                 (future (launch-tasks-for-cluster compute-cluster matches-in-compute-cluster pool-name conn fenzo)))))
           doall
           (run! #(when (future? %) (deref %)))))))


             compute-clusters-for-pool (filter #(cc/autoscaling? % pool-name) compute-clusters)
             launch-distributed-job-fn
             (fn [[compute-cluster jobs]]
               (let [task-metadata-seq (jobs->kubernetes-task-metadata jobs pool-name mesos-run-as-user compute-cluster)
                     psuedo-matches [{:task-metadata-seq task-metadata-seq}]
                     task-txns (map (fn [job metadata] (job->task-txn job metadata compute-cluster)) jobs task-metadata-seq)]
                 (launch-tasks-for-cluster compute-cluster psuedo-matches task-txns pool-name conn nil false)))]
         (log-structured/info "Launching jobs in Kubernetes" {:pool pool-name})
         (distribute-and-launch-jobs considerable-jobs pool-name compute-clusters-for-pool
                                     job->acceptable-compute-clusters-fn launch-distributed-job-fn)
