Skip to content

Instantly share code, notes, and snippets.

View IliaIsakhin's full-sized avatar
🚀
Enterprise-level bugcreator

Ilia Isakhin IliaIsakhin

🚀
Enterprise-level bugcreator
  • Izhevsk, Russia
View GitHub Profile
@IliaIsakhin
IliaIsakhin / CoroutineTimedAspect.kt
Created September 26, 2022 19:24
Replacement for Spring`s @timed annotation. Works with kotlin suspend function with Continuation parameter.
import io.micrometer.core.instrument.MeterRegistry
import io.micrometer.core.instrument.Timer
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.Around
import org.aspectj.lang.annotation.Aspect
import org.springframework.stereotype.Component
import kotlin.coroutines.Continuation
import kotlin.coroutines.intrinsics.startCoroutineUninterceptedOrReturn
import kotlin.coroutines.intrinsics.suspendCoroutineUninterceptedOrReturn