Cómo contar el time de ejecución de lo observable

Estoy buscando una solución para medir la ejecución de alguna tarea

  1. Quiero iniciar el cronómetro en algún lugar
  2. Quiero ejecutar alguna tarea
  3. En diferentes partes del código quiero poder detener el timer, obtengo el resultado del time de ejecución final de la ejecución

Supongo que esto puede ser muy similar al uso de EventBus para publicar un evento de inicio de conteo y detención.

Entonces puedo tener una function:

doSomething(){ //start counting } 

en la function ohter quiero tener acceso al contador e invocar detenerlo:

 otherFunctionWhichCanBeInvokedLater(){ //stop counter and get the duration time } 

¿Hay alguna buena manera de lograr esto en Rx? Quiero usar Kotlin y RxJava2 para esto.