TimestreamReporter

class TimestreamReporter(val timestreamWriteClient: TimestreamWriteClient, val databaseName: String, val tableName: String, val globalDimensionValues: List<Dimension>, registry: MetricRegistry, name: String, filter: MetricFilter, rateUnit: TimeUnit, durationUnit: TimeUnit) : ScheduledReporter

ScheduledReporter implementation that sends metrics to AWS Timestream.

Constructors

Link copied to clipboard
fun TimestreamReporter(timestreamWriteClient: TimestreamWriteClient, databaseName: String, tableName: String, globalDimensionValues: List<Dimension>, registry: MetricRegistry, name: String, filter: MetricFilter, rateUnit: TimeUnit, durationUnit: TimeUnit)

Functions

Link copied to clipboard
private open fun calculateRateUnit(p0: TimeUnit): String
Link copied to clipboard
private open fun cancelScheduledFuture()
Link copied to clipboard
open override fun close()
Link copied to clipboard
protected open fun convertDuration(p0: Double): Double
Link copied to clipboard
protected open fun convertRate(p0: Double): Double
Link copied to clipboard
private fun getCounterRecords(counterName: String, counter: Counting): List<Record>

For each Counting (Counter, Meter, Histogram, and Timer), send the current count as a metric.

Link copied to clipboard
private fun getGaugeRecords(gaugeName: String, gauge: Gauge<*>): List<Record>

For each Gauge, send the current value as a metric.

Link copied to clipboard
private fun getMeterRecords(meterName: String, meter: Metered): List<Record>

For each Metered (Meter and Timer), send the mean_rate, m1_rate, m5_rate and m15_rate as metrics.

Link copied to clipboard
private fun getRecord(nameValue: Pair<String, Number>): Record?

Create a Record from a name/value pair, making sure to only send finite metric numbers to Timestream

Link copied to clipboard
private fun getSamplingRecords(samplingName: String, sampling: Sampling): List<Record>

For each Sampling (Histogram and Timer), send the mean, max, min, stddev, and p50-p999 percentiles as metrics.

Link copied to clipboard
open fun report()

open override fun report(gauges: SortedMap<String, Gauge<Any>>, counters: SortedMap<String, Counter>, histograms: SortedMap<String, Histogram>, meters: SortedMap<String, Meter>, timers: SortedMap<String, Timer>)

Collect all metrics and send to Timestream in batches of 100

Link copied to clipboard
open fun start(p0: Long, p1: TimeUnit)
open fun start(p0: Long, p1: Long, p2: TimeUnit)
open fun start(p0: Long, p1: Long, p2: TimeUnit, p3: Runnable)
Link copied to clipboard
open fun stop()

Properties

Link copied to clipboard
Link copied to clipboard
protected val disabledMetricAttributes: MutableSet<MetricAttribute>
Link copied to clipboard
private val durationFactor: Double
private val durationFactor: Long
Link copied to clipboard
protected val durationUnit: String
Link copied to clipboard
Link copied to clipboard
private val filter: MetricFilter
Link copied to clipboard
val globalDimensionValues: List<Dimension>
Link copied to clipboard
private val rateFactor: Long
private val rateFactor: Long
Link copied to clipboard
protected val rateUnit: String
Link copied to clipboard
private val registry: MetricRegistry
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val timestreamWriteClient: TimestreamWriteClient