You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2018/03/20 22:28:48 UTC

[geode] 05/05: A commit that I can demo.

This is an automated email from the ASF dual-hosted git repository.

udo pushed a commit to branch micrometer
in repository https://gitbox.apache.org/repos/asf/geode.git

commit e2cc32a809457e92d35ed8a10f54b168a1db2e24
Merge: df27f26 a6db167
Author: Udo <uk...@pivotal.io>
AuthorDate: Tue Mar 20 15:28:24 2018 -0700

    A commit that I can demo.

 .../bean/stats/RegionStatsJUnitTest.java           |  1 +
 .../statistics/TimedMicrometerClientStatsImpl.kt   | 29 ++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --cc geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/TimedMicrometerClientStatsImpl.kt
index 0000000,0000000..e9acac4
new file mode 100644
--- /dev/null
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/TimedMicrometerClientStatsImpl.kt
@@@ -1,0 -1,0 +1,29 @@@
++package org.apache.geode.internal.protocol.protobuf.statistics
++
++import io.micrometer.core.instrument.MeterRegistry
++import io.micrometer.core.instrument.Tag
++import io.micrometer.core.instrument.Timer
++import org.apache.geode.internal.cache.CachePerfStats
++import org.apache.geode.internal.cache.MicroMeterRegistryFactory
++import java.util.concurrent.TimeUnit
++import java.util.concurrent.atomic.AtomicInteger
++
++class TimedMicrometerClientStatsImpl(meterRegistry: MeterRegistry) : MicrometerClientStatsImpl(meterRegistry) {
++
++    constructor() : this(MicroMeterRegistryFactory.getMeterRegistry())
++
++    private fun constructTimerForMetric(metricName: String): Timer =
++            meterRegistry.timer("${metricName}Latency", emptyList())
++
++    private val operationTimer = constructTimerForMetric("operation")
++
++    override fun startOperation(): Long = CachePerfStats.getStatTime()
++
++    override fun endOperation(startOperationTime: Long) {
++        updateTimer(startOperationTime, operationTimer)
++    }
++
++    private fun updateTimer(startTimeInNanos: Long, timer: Timer) {
++        timer.record((System.nanoTime() - startTimeInNanos), TimeUnit.NANOSECONDS)
++    }
++}

-- 
To stop receiving notification emails like this one, please contact
udo@apache.org.