micrometer-metrics/micrometer
Voir sur GitHubTimer API does not support Kotlin suspend function (coroutines)
Open
#4 455 ouverte le 7 déc. 2023
enhancementhelp wantedkotlin
Description
Please describe the feature request.
For standard (non suspend functions) it is possible to use record function to measure method invocation time:
Timer.builder("method.timed")
.register(meterRegistry)
.record { fn() } // fn() is a standard, non suspend function
However, it is not possible to call a suspend function from within record block:
Timer.builder("method.timed")
.register(meterRegistry)
.record { suspendFn() } // Suspension functions can be called only within coroutine body
The support for suspend functions should be added to the library.
Rationale Suspend functions are popular for non-blocking API, and it is currently not possible to measure time needed to call suspend functions without having a custom function to record the time.
Additional context Maybe this could be added as a extension function to the Timer interface.