         tm = new Date()
         @_do_one_query opts, =>
             state.count -= 1
-            state.time_ms.push(new Date() - tm)
+            duration_ms = new Date() - tm
+            state.time_ms.push(duration_ms)
+            query_queue_duration.inc(duration_ms / 1000)
+            query_queue_done.inc(1)
             if state.time_ms.length > TIME_HISTORY_LENGTH
                 state.time_ms.shift()
             @_info(state)

            # point in even trying; the client likely already gave up.
            opts.cb?("timeout")
            cb()
            return

        @_dbg("_do_one_query(client_id='#{opts.client_id}') -- doing the query")

        return s / v.length

    _info: (state) =>
        query_queue_count.labels(state.client_id).set(state.count)
        @_dbg("client_id='#{state.client_id}': avg=#{@_avg(state)}ms, count=#{state.count}, queued.length=#{state.queue?.length}, sent=#{state.sent}")
