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:

    1. Slf4jReporter.forRegistry(registry)
    2. .outputTo(log)
    3. .convertDurationsTo(TimeUnit.MILLISECONDS)
    4. .build()
    5. .start(10, TimeUnit.SECONDS)
    6. }

    Ktor Metrics: SLF4J

    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 calls
    • ktor.calls.exceptions - Information about the number of exceptions
    • ktor.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