All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.tinkoff.plugins.buildmetrics.system.metrics.GCDurationMetricFactory.kt Maven / Gradle / Ivy

The newest version!
package ru.tinkoff.plugins.buildmetrics.system.metrics

import ru.tinkoff.plugins.buildmetrics.api.factories.Factory
import ru.tinkoff.plugins.buildmetrics.api.Reinitializable
import ru.tinkoff.plugins.buildmetrics.api.metrics.Metric
import ru.tinkoff.plugins.buildmetrics.system.utils.GarbageCollectorUtils
import ru.tinkoff.plugins.buildmetrics.system.utils.GarbageCollectorUtilsImpl

class GCDurationMetricFactory(
    private val garbageCollectorUtils: GarbageCollectorUtils = GarbageCollectorUtilsImpl(),
) : Factory.Metrics, Reinitializable {

    @Transient
    private var excessGCTime: Long = garbageCollectorUtils.collectionTimeMs()

    override fun reinitialize() {
        excessGCTime = garbageCollectorUtils.collectionTimeMs()
    }

    override fun create(): List> = listOf(
        Metric(
            name = "gc_duration_ms",
            value = garbageCollectorUtils.collectionTimeMs() - excessGCTime,
        )
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy