A Metric[In, Out]
represents a concurrent metric, which accepts updates of
type In
, which are aggregated to a stateful value of type Out
.
A MetricKey
is a unique key associated with each metric.
A MetricKey
is a unique key associated with each metric. The key is based
on a combination of the metric type, the name and tags associated with the
metric, and any other information to describe a a metric, such as the
boundaries of a histogram. In this way, it is impossible to ever create
different metrics with conflicting keys.
A MetricLabel
represents a key value pair that allows analyzing metrics at
an additional level of granularity.
A MetricLabel
represents a key value pair that allows analyzing metrics at
an additional level of granularity. For example if a metric tracks the
response time of a service labels could be used to create separate versions
that track response times for different clients.
A MetricState
describes the state of a metric.
A MetricState
describes the state of a metric. The type parameter of a
metric state corresponds to the type of the metric key (MetricKeyType). This
phantom type parameter is used to tie keys to their expected states.
A PollingMetric[Type, Out]
is a combination of a metric and an effect that
polls for updates to the metric.
A
Metric[In, Out]
represents a concurrent metric, which accepts updates of typeIn
, which are aggregated to a stateful value of typeOut
.For example, a counter metric would have type
Metric[Double, Double]
, representing the fact that the metric can be updated with doubles (the amount to increment or decrement the counter by), and the state of the counter is a double.There are five primitive metric types supported by ZIO:
The companion object contains constructors for these primitive metrics. All metrics are derived from these primitive metrics.