name:                prometheus
version:             0.3.2
synopsis:            Prometheus Haskell Client
homepage:            http://github.com/LukeHoersten/prometheus#readme
bug-reports:         http://github.com/LukeHoersten/prometheus/issues
license:             BSD3
license-file:        LICENSE
author:              Luke Hoersten
maintainer:          luke@hoersten.org
copyright:           All Rights Reserved
category:            Metrics, Monitoring, Web, System
build-type:          Simple
cabal-version:       >=1.10

description:
  [Prometheus Haskell Client]
  .
  A simple and modern, type safe, idiomatic Haskell client for
  <http://prometheus.io Prometheus> monitoring. Specifically there is no
  use of unsafe IO or manual ByteString construction from lists of
  bytes. Batteries-included web server.
  .
  [Usage Example]
  .
  > module Example where
  >
  > import           Control.Monad.IO.Class                         (liftIO)
  > import           System.Metrics.Prometheus.Concurrent.Http      (serveHttpTextMetricsT)
  > import           System.Metrics.Prometheus.Concurrent.RegistryT
  > import           System.Metrics.Prometheus.Metric.Counter       (inc)
  > import           System.Metrics.Prometheus.MetricId
  >
  > main :: IO ()
  > main = runRegistryT $ do
  >     -- Labels can be defined as lists or added to an empty label set
  >     connectSuccessGauge <- registerGauge "example_connections" (fromList [("login", "success")])
  >     connectFailureGauge <- registerGauge "example_connections" (addLabel "login" "failure" mempty)
  >     connectCounter <- registerCounter "example_connection_total" mempty
  >     latencyHistogram <- registerHistogram "example_round_trip_latency_ms" mempty [10, 20..100]
  >
  >     liftIO $ inc connectCounter -- increment a counter
  >
  >     -- [...] pass metric handles to the rest of the app
  >
  >     serveHttpTextMetricsT 8080 ["metrics"] -- http://localhost:8080/metric server
  >
  .
  [Advanced Usage]
  .
  A `Registry` and `StateT`-based `RegistryT` are available for unit testing or generating lists
  of `[IO a]` actions that can be `sequenced` and returned from pure code to be applied.


extra-source-files: Example.hs
                  , README.md

library
  hs-source-dirs:      src
  default-language:    Haskell2010

  exposed-modules: System.Metrics.Prometheus.Concurrent.Http
                 , System.Metrics.Prometheus.Concurrent.Registry
                 , System.Metrics.Prometheus.Concurrent.RegistryT
                 , System.Metrics.Prometheus.Encode
                 , System.Metrics.Prometheus.Encode.Histogram
                 , System.Metrics.Prometheus.Encode.MetricId
                 , System.Metrics.Prometheus.Metric
                 , System.Metrics.Prometheus.Metric.Counter
                 , System.Metrics.Prometheus.Metric.Gauge
                 , System.Metrics.Prometheus.Metric.Histogram
                 , System.Metrics.Prometheus.Metric.Summary
                 , System.Metrics.Prometheus.MetricId
                 , System.Metrics.Prometheus.Registry
                 , System.Metrics.Prometheus.RegistryT

  build-depends: atomic-primops >= 0.8  && < 0.9
               , base           >= 4.7  && < 5.0
               , bytestring     >= 0.10 && < 0.11
               , containers     >= 0.5  && < 0.6
               , http-types     >= 0.9  && < 0.10
               , text           >= 1.2  && < 1.3
               , transformers   >= 0.4  && < 0.5
               , wai            >= 3.2  && < 3.3
               , warp           >= 3.2  && < 3.3

source-repository head
  type:     git
  location: https://github.com/LukeHoersten/prometheus