MetricBuilder
Builds and registers metrics.
Value members
Concrete methods
Registers a new gauge metric that caches its value for a given duration.
Registers a new gauge metric that caches its value for a given duration.
Example:
import nl.grons.metrics4.scala._
import scala.concurrent.duration._
class UserRepository(db: Database) extends DefaultInstrumented {
// Defines the gauge.
metrics.cachedGauge("row-count", 5.minutes) {
// Does a measurement at most once every 5 minutes.
db.usersRowCount()
}
}
- Value parameters:
- f
a code block that does a measurement
- name
the name of the gauge
- timeout
the timeout
- Throws:
- IllegalArgumentException
when a metric with the given name already exists
Creates a new counter metric.
Creates a new counter metric.
- Value parameters:
- name
the name of the counter
Registers a new gauge metric.
Registers a new gauge metric.
Example:
import nl.grons.metrics4.scala._
class SessionStore(cache: Cache) extends DefaultInstrumented {
// Defines the gauge.
metrics.gauge("cache-evictions") {
// Does a measurement.
cache.getEvictionsCount()
}
}
- Value parameters:
- f
a code block that does a measurement
- name
the name of the gauge
- Throws:
- IllegalArgumentException
when a metric with the given name already exists
Creates a new histogram metric.
Creates a new histogram metric.
- Value parameters:
- name
the name of the histogram
Registers a new gauge metric to which you can push values.
Registers a new gauge metric to which you can push values.
Example:
import nl.grons.metrics4.scala._
class ExternalCacheUpdater extends DefaultInstrumented {
// Defines a push gauge
private val cachedItemsCount = metrics.pushGauge[Int]("cached.items.count", 0)
def updateExternalCache(): Unit = {
val items = fetchItemsFromDatabase()
pushItemsToExternalCache(items)
// Pushes a new measurement to the gauge
cachedItemsCount.push(items.size)
// Alternative way to push a new measurement
cachedItemsCount.value = items.size
}
}
When a gauge already exists with the given name, parameter startValue is ignored and the existing gauge
is returned.
- Value parameters:
- name
the name of the gauge
- startValue
the first value of the gauge, typically this is
0,0Lornull.
Registers a new gauge metric to which you can push values.
Registers a new gauge metric to which you can push values.
The reported value is reset to defaultValue after the timeout.
Example in which the last pushed measurement is reported for at most 10 minutes.
import nl.grons.metrics4.scala._
import scala.concurrent.duration._
class ExternalCacheUpdater extends DefaultInstrumented {
// Defines a push gauge
private val cachedItemsCount = metrics.pushGaugeWithTimeout[Int]("cached.items.count", 0, 10.minutes)
def updateExternalCache(): Unit = {
val items = fetchItemsFromDatabase()
pushItemsToExternalCache(items)
// Pushes a new measurement to the gauge
cachedItemsCount.push(items.size)
// Alternative way to push a new measurement
cachedItemsCount.value = items.size
}
}
When a gauge already exists with the given name, parameters defaultValue and timeout are ignored and the
existing gauge is returned.
Note: Cleanup of old values happens only on read. In the absence of a metric reporter or other reader, the last
pushed value will continue to take space on the heap. As most values are very small (e.g. an Int), this should
not matter much.
- Value parameters:
- defaultValue
the first and default value of the gauge, typically this is 0
,0Lornull`.- name
the name of the gauge
- timeout
the timeout
Deprecated and Inherited methods
Registers a new gauge metric that caches its value for a given duration.
Registers a new gauge metric that caches its value for a given duration.
- Value parameters:
- name
the name of the gauge
- scope
(deprecated) the scope of the gauge or null for no scope
- timeout
the timeout
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder
Creates a new counter metric.
Creates a new counter metric.
- Value parameters:
- name
the name of the counter
- scope
(deprecated) the scope of the counter or null for no scope
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder
Registers a new gauge metric.
Registers a new gauge metric.
- Value parameters:
- name
the name of the gauge
- scope
(deprecated) the scope of the gauge or null for no scope
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder
Creates a new histogram metric.
Creates a new histogram metric.
- Value parameters:
- name
the name of the histogram
- scope
(deprecated) the scope of the histogram or null for no scope
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder
Creates a new meter metric.
Creates a new meter metric.
- Value parameters:
- name
the name of the meter
- scope
(deprecated) the scope of the meter or null for no scope
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder
Creates a new timer metric.
Creates a new timer metric.
- Value parameters:
- name
the name of the timer
- scope
(deprecated) the scope of the timer or null for no scope
- Deprecated
- Inherited from:
- DeprecatedMetricBuilder