arbor-monad-metric 1.1.1 → 1.2.0
raw patch · 4 files changed
+18/−3 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Arbor.Monad.Metric.Generic: metric' :: forall k. () => Ord k => MetricFamily k => Semigroup (MetricState k) => k -> MetricValue k -> Metrics -> IO ()
+ Arbor.Monad.Metric.Type: GaugeCounter :: Text -> Set Tag -> GaugeCounter
+ Arbor.Monad.Metric.Type: [$sel:gaugeCounters:Metrics] :: Metrics -> TVar (MetricMap GaugeCounter (MetricState GaugeCounter))
+ Arbor.Monad.Metric.Type: [$sel:name:GaugeCounter] :: GaugeCounter -> Text
+ Arbor.Monad.Metric.Type: [$sel:tags:GaugeCounter] :: GaugeCounter -> Set Tag
+ Arbor.Monad.Metric.Type: data GaugeCounter
+ Arbor.Monad.Metric.Type: instance Arbor.Monad.Metric.Type.MetricFamily Arbor.Monad.Metric.Type.GaugeCounter
+ Arbor.Monad.Metric.Type: instance GHC.Classes.Eq Arbor.Monad.Metric.Type.GaugeCounter
+ Arbor.Monad.Metric.Type: instance GHC.Classes.Ord Arbor.Monad.Metric.Type.GaugeCounter
+ Arbor.Monad.Metric.Type: instance GHC.Generics.Generic Arbor.Monad.Metric.Type.GaugeCounter
+ Arbor.Monad.Metric.Type: instance GHC.Show.Show Arbor.Monad.Metric.Type.GaugeCounter
- Arbor.Monad.Metric.Type: Metrics :: TVar (MetricMap Counter (MetricState Counter)) -> TVar (MetricMap Gauge (MetricState Gauge)) -> Metrics
+ Arbor.Monad.Metric.Type: Metrics :: TVar (MetricMap Counter (MetricState Counter)) -> TVar (MetricMap Gauge (MetricState Gauge)) -> TVar (MetricMap GaugeCounter (MetricState GaugeCounter)) -> Metrics
Files
- arbor-monad-metric.cabal +1/−1
- src/Arbor/Monad/Metric.hs +1/−0
- src/Arbor/Monad/Metric/Generic.hs +1/−0
- src/Arbor/Monad/Metric/Type.hs +15/−2
arbor-monad-metric.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: arbor-monad-metric-version: 1.1.1+version: 1.2.0 description: Please see the README on Github at <https://github.com/arbor/arbor-monad-metric#readme> synopsis: Core metric library for publishing metrics. category: Metrics
src/Arbor/Monad/Metric.hs view
@@ -35,6 +35,7 @@ newMetricsIO = Metrics <$> STM.newTVarIO M.empty <*> STM.newTVarIO M.empty+ <*> STM.newTVarIO M.empty extractValues :: forall k. () => MetricFamily k
src/Arbor/Monad/Metric/Generic.hs view
@@ -3,6 +3,7 @@ module Arbor.Monad.Metric.Generic ( metric+ , metric' ) where import Arbor.Monad.Metric.Type (MetricFamily (..), Metrics, MonadMetrics)
src/Arbor/Monad/Metric/Type.hs view
@@ -38,11 +38,17 @@ , tags :: S.Set Tag } deriving (Eq, Ord, Show, Generic) +data GaugeCounter = GaugeCounter+ { name :: Text+ , tags :: S.Set Tag+ } deriving (Eq, Ord, Show, Generic)+ type MetricMap k v = M.Map k (STM.TVar v) data Metrics = Metrics- { counters :: STM.TVar (MetricMap Counter (MetricState Counter))- , gauges :: STM.TVar (MetricMap Gauge (MetricState Gauge ))+ { counters :: STM.TVar (MetricMap Counter (MetricState Counter ))+ , gauges :: STM.TVar (MetricMap Gauge (MetricState Gauge ))+ , gaugeCounters :: STM.TVar (MetricMap GaugeCounter (MetricState GaugeCounter)) } deriving (Generic) class (Monad m, MonadIO m) => MonadMetrics m where@@ -92,3 +98,10 @@ metricMapTVarOf = (^. the @"gauges") metricValueToState _ = Last metricStateToValue _ = getLast++instance MetricFamily GaugeCounter where+ type MetricValue GaugeCounter = Double+ type MetricState GaugeCounter = Sum Double+ metricMapTVarOf = (^. the @"gaugeCounters")+ metricValueToState _ = Sum+ metricStateToValue _ = getSum