packages feed

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 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