Metrics with Dropwizard metrics
This feature is defined in the class in the artifact io.ktor:ktor-metrics:$ktor_version
.
dependencies { implementation "io.ktor:ktor-metrics:$ktor_version"}
dependencies { implementation("io.ktor:ktor-metrics:$ktor_version")}
<project> … <dependencies> <dependency> <groupId>io.ktor</groupId> <artifactId>ktor-metrics</artifactId> <version>${ktor.version}</version> <scope>compile</scope> </dependency> </dependencies></project>
The JMX Reporter allows you to expose all the metrics to JMX,allowing you to view those metrics with jconsole
or jvisualvm
with the MBeans plugin.
SLF4J Reporter
The SLF4J Reporter allows you to periodically emit reports to any output supported by SLF4J.For example, to output the metrics every 10 seconds, you would:
Slf4jReporter.forRegistry(registry)
.outputTo(log)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build()
.start(10, TimeUnit.SECONDS)
}
This feature exposes many JVM properties relating to memory usage and thread behavior.
Global:
Specifically to Ktor, it exposes:
- :
Count
- The number of unfinished active requests ktor.calls.duration
- Information about the duration of the callsktor.calls.exceptions
- Information about the number of exceptionsktor.calls.status.NNN
- Information about the number of times that happened a specific HTTP Status Code NNN
"/uri(method:VERB).NNN"
- Information about the number of times that happened a specific HTTP Status Code NNN, for this path, for this verb"/uri(method:VERB).meter"
- Information about the number of calls for this path, for this verb"/uri(method:VERB).timer"
- Information about the durations for this endpoint
Durations
and ktor.calls.duration
are durations and expose:
- 50thPercentile
- 75thPercentile
- 95thPercentile
- 98thPercentile
- 99thPercentile
- Count
- DurationUnit
- OneMinuteRate
- FifteenMinuteRate
- FiveMinuteRate
- Max
- Mean
- MeanRate
- Min
- RateUnit
- StdDev
The other properties are exposed as counts:
- Count
- FifteenMinuteRate
- FiveMinuteRate
- OneMinuteRate
- MeanRate