prometheus 2.0.0 → 2.0.1
raw patch · 10 files changed
+33/−22 lines, 10 files
Files
- prometheus.cabal +1/−1
- src/System/Metrics/Prometheus/Concurrent/Registry.hs +1/−0
- src/System/Metrics/Prometheus/Concurrent/RegistryT.hs +1/−0
- src/System/Metrics/Prometheus/Http/Scrape.hs +1/−0
- src/System/Metrics/Prometheus/Metric/Counter.hs +4/−1
- src/System/Metrics/Prometheus/Metric/Gauge.hs +9/−10
- src/System/Metrics/Prometheus/Metric/Histogram.hs +7/−5
- src/System/Metrics/Prometheus/MetricId.hs +7/−5
- src/System/Metrics/Prometheus/Registry.hs +1/−0
- src/System/Metrics/Prometheus/RegistryT.hs +1/−0
prometheus.cabal view
@@ -1,5 +1,5 @@ name: prometheus-version: 2.0.0+version: 2.0.1 synopsis: Prometheus Haskell Client homepage: http://github.com/bitnomial/prometheus bug-reports: http://github.com/bitnomial/prometheus/issues
src/System/Metrics/Prometheus/Concurrent/Registry.hs view
@@ -8,6 +8,7 @@ ) where +import Control.Applicative ((<$>)) import Control.Concurrent.MVar (MVar, modifyMVarMasked, newMVar, withMVar)
src/System/Metrics/Prometheus/Concurrent/RegistryT.hs view
@@ -2,6 +2,7 @@ module System.Metrics.Prometheus.Concurrent.RegistryT where +import Control.Applicative ((<$>)) import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.Trans.Class (MonadTrans) import Control.Monad.Trans.Reader (ReaderT (..),
src/System/Metrics/Prometheus/Http/Scrape.hs view
@@ -8,6 +8,7 @@ ) where +import Control.Applicative ((<$>)) import Control.Monad.IO.Class (MonadIO, liftIO) import Data.Text (Text)
src/System/Metrics/Prometheus/Metric/Counter.hs view
@@ -9,6 +9,7 @@ ) where +import Control.Applicative ((<$>)) import Data.Atomics.Counter (AtomicCounter, incrCounter, newCounter) @@ -21,11 +22,13 @@ addAndSample :: Int -> Counter -> IO CounterSample-addAndSample by | by >= 0 = fmap CounterSample . incrCounter by . unCounter+addAndSample by | by >= 0 = fmap CounterSample . incrCounter by . unCounter | otherwise = error "must be >= 0" + add :: Int -> Counter -> IO () add by c = addAndSample by c >> pure ()+ inc :: Counter -> IO () inc = add 1
src/System/Metrics/Prometheus/Metric/Gauge.hs view
@@ -11,8 +11,8 @@ , modifyAndSample ) where -import Data.IORef (IORef, atomicModifyIORef', atomicWriteIORef,- newIORef, readIORef)+import Control.Applicative ((<$>))+import Data.IORef (IORef, atomicModifyIORef', newIORef) newtype Gauge = Gauge { unGauge :: IORef Double }@@ -23,18 +23,17 @@ new = Gauge <$> newIORef 0 -modifyAndSample :: (Double -> (Double, a)) -> Gauge -> IO a-modifyAndSample f = flip atomicModifyIORef' f . unGauge+modifyAndSample :: (Double -> Double) -> Gauge -> IO GaugeSample+modifyAndSample f = flip atomicModifyIORef' g . unGauge+ where g v = (f v, GaugeSample $ f v) add :: Double -> Gauge -> IO ()-add x = modifyAndSample f- where f v = (v + x, ())+add x g = modifyAndSample (+ x) g >> pure () sub :: Double -> Gauge -> IO ()-sub x = modifyAndSample f- where f v = (v - x, ())+sub x g = modifyAndSample (subtract x) g >> pure () inc :: Gauge -> IO ()@@ -46,8 +45,8 @@ set :: Double -> Gauge -> IO ()-set x = flip atomicWriteIORef x . unGauge+set x g = modifyAndSample (const x) g >> pure () sample :: Gauge -> IO GaugeSample-sample = fmap GaugeSample . readIORef . unGauge+sample = modifyAndSample id
src/System/Metrics/Prometheus/Metric/Histogram.hs view
@@ -12,11 +12,13 @@ ) where -import Control.Monad (void)-import Data.Bool (bool)-import Data.IORef (IORef, atomicModifyIORef', newIORef, readIORef)-import Data.Map (Map)-import qualified Data.Map as Map+import Control.Applicative ((<$>))+import Control.Monad (void)+import Data.Bool (bool)+import Data.IORef (IORef, atomicModifyIORef', newIORef,+ readIORef)+import Data.Map (Map)+import qualified Data.Map as Map newtype Histogram = Histogram { unHistogram :: IORef HistogramSample }
src/System/Metrics/Prometheus/MetricId.hs view
@@ -2,11 +2,13 @@ module System.Metrics.Prometheus.MetricId where -import Data.Map (Map)-import qualified Data.Map as Map-import Data.String (IsString)-import Data.Text (Text)-import Prelude hiding (null)+import Data.Map (Map)+import qualified Data.Map as Map+import Data.Monoid ()+import Data.Semigroup ()+import Data.String (IsString)+import Data.Text (Text)+import Prelude hiding (null) newtype Name = Name { unName :: Text } deriving (Show, Eq, Ord, IsString, Monoid, Semigroup)
src/System/Metrics/Prometheus/Registry.hs view
@@ -10,6 +10,7 @@ , sample ) where +import Control.Applicative ((<$>)) import Control.Exception (Exception, throw) import Data.Map (Map) import qualified Data.Map as Map
src/System/Metrics/Prometheus/RegistryT.hs view
@@ -2,6 +2,7 @@ module System.Metrics.Prometheus.RegistryT where +import Control.Applicative ((<$>)) import Control.Monad.IO.Class (MonadIO, liftIO) import Control.Monad.Trans.Class (MonadTrans) import Control.Monad.Trans.State.Strict (StateT (..),