ekg-cloudwatch 0.0.1.5 → 0.0.1.6
raw patch · 4 files changed
+17/−40 lines, 4 filesdep −aesondep −ekg-cloudwatchdep −hspecdep ~basePVP ok
version bump matches the API change (PVP)
Dependencies removed: aeson, ekg-cloudwatch, hspec
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- ekg-cloudwatch.cabal +3/−29
- src/System/Remote/Monitoring/CloudWatch.hs +9/−10
- test/Spec.hs +0/−1
CHANGELOG.md view
@@ -2,6 +2,11 @@ # Upcoming... +# v0.0.1.6++- Fix a bug where batched metrics would send an empty list to the server. This+ causes the service to respond with an error.+ # v0.0.1.5 - Batch metric requests to Cloudwatch, resulting in cheaper operations.
ekg-cloudwatch.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: ekg-cloudwatch-version: 0.0.1.5+version: 0.0.1.6 synopsis: An ekg backend for Amazon Cloudwatch description: Push ekg metrics to Amazon Cloudwatch homepage: https://github.com/sellerlabs/ekg-cloudwatch#readme@@ -32,41 +32,15 @@ base >=4.7 && <5 , ekg-core >= 0.1 && < 1.0 , amazonka >= 1.0.0- , amazonka-core >= 1.0.0 , amazonka-cloudwatch >= 1.0.0- , aeson- , semigroups+ , amazonka-core >= 1.0.0 , bytestring , lens , resourcet+ , semigroups , text , time , unordered-containers exposed-modules: System.Remote.Monitoring.CloudWatch- default-language: Haskell2010--test-suite ekg-cloudwatch-test- type: exitcode-stdio-1.0- hs-source-dirs:- test- main-is: Spec.hs- build-depends:- base >=4.7 && <5- , ekg-core >= 0.1 && < 1.0- , amazonka >= 1.0.0- , amazonka-core >= 1.0.0- , amazonka-cloudwatch >= 1.0.0- , aeson- , semigroups- , bytestring- , lens- , resourcet- , text- , time- , unordered-containers- , base- , ekg-cloudwatch- , hspec- ghc-options: -threaded -rtsopts -with-rtsopts=-N default-language: Haskell2010
src/System/Remote/Monitoring/CloudWatch.hs view
@@ -19,17 +19,17 @@ import Control.Concurrent (ThreadId, forkFinally, myThreadId, threadDelay)-import Control.Exception-import Control.Lens-import Control.Monad (forM_, guard, void)-import Data.Aeson+import Control.Exception (Exception, throwTo,+ toException)+import Control.Lens ((&), (.~), (?~))+import Control.Monad (forM_, guard, unless,+ void) import qualified Data.ByteString as BS import qualified Data.HashMap.Strict as Map import Data.Int (Int64) import Data.List (foldl') import Data.List.NonEmpty (NonEmpty (..)) import Data.Maybe (mapMaybe)-import Data.Monoid import Data.Text (Text) import qualified Data.Text as Text import qualified Data.Text.IO as Text@@ -38,8 +38,8 @@ import Data.Traversable (for) import Network.AWS as AWS import Network.AWS.CloudWatch as AWS-import Network.AWS.Data.ByteString-import Network.AWS.Data.Query+import Network.AWS.Data.ByteString (toBS)+import Network.AWS.Data.Query (toQueryList) import System.IO (stderr) import qualified System.Metrics as Metrics import qualified System.Metrics.Distribution.Internal as Distribution@@ -199,11 +199,10 @@ where sendMetric :: [MetricDatum] -> IO () sendMetric metrics = do- -- TODO: This call is limited to 40KB in size. Any larger and it will- -- whine. e <- trying _Error . void . runResourceT . runAWS cweAwsEnv . forM_ (splitAt40KB metrics) $ \metrics ->- send (putMetricData cweNamespace & pmdMetricData .~ metrics)+ unless (null metrics) $+ void (send (putMetricData cweNamespace & pmdMetricData .~ metrics)) case e of Left err -> cweOnError err Right _ -> pure ()
− test/Spec.hs
@@ -1,1 +0,0 @@-{-# OPTIONS_GHC -F -pgmF hspec-discover #-}