```class ResponseTimeHeader { companion object...
# ktor
s
Copy code
class ResponseTimeHeader {
    companion object Plugin : BaseApplicationPlugin<ApplicationCallPipeline, Configuration, ResponseTimeHeader> {
        override val key = AttributeKey<ResponseTimeHeader>("ResponseTimeHeader")
        override fun install(
            pipeline: ApplicationCallPipeline,
            configure: Configuration.() -> Unit,
        ): ResponseTimeHeader {
            val plugin = ResponseTimeHeader()
            var time: Duration? = Duration.ZERO
            pipeline.intercept(ApplicationCallPipeline.Monitoring) {
                time = measureTime { proceed() }
            }
            pipeline.sendPipeline.intercept(ApplicationSendPipeline.After) {
                call.response.header("X-Response-Time", "${time?.inWholeMilliseconds} ms")
            }
            return plugin
        }
    }
}
Sometime this one responds header with 0 ms which i think wrong. Please help
c
Milliseconds is a pretty broad unit for measuring code - try microseconds for better granularity
a
What duration do you want to measure?