prometheus-2.2.4: src/System/Metrics/Prometheus/Metric.hs
module System.Metrics.Prometheus.Metric where
import System.Metrics.Prometheus.Metric.Counter (
Counter,
CounterSample,
)
import System.Metrics.Prometheus.Metric.Gauge (Gauge, GaugeSample)
import System.Metrics.Prometheus.Metric.Histogram (
Histogram,
HistogramSample,
)
import System.Metrics.Prometheus.Metric.Summary (SummarySample)
data Metric
= CounterMetric Counter
| GaugeMetric Gauge
| -- | Summary S.Summary
HistogramMetric Histogram
data MetricSample
= CounterMetricSample CounterSample
| GaugeMetricSample GaugeSample
| HistogramMetricSample HistogramSample
| SummaryMetricSample SummarySample
metricSample ::
(CounterSample -> a) ->
(GaugeSample -> a) ->
(HistogramSample -> a) ->
(SummarySample -> a) ->
MetricSample ->
a
metricSample f _ _ _ (CounterMetricSample s) = f s
metricSample _ f _ _ (GaugeMetricSample s) = f s
metricSample _ _ f _ (HistogramMetricSample s) = f s
metricSample _ _ _ f (SummaryMetricSample s) = f s