ngx-export-tools-extra 0.5.7.0 → 0.5.8.0
raw patch · 3 files changed
+29/−19 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Changelog.md +4/−0
- NgxExport/Tools/Prometheus.hs +24/−18
- ngx-export-tools-extra.cabal +1/−1
Changelog.md view
@@ -1,3 +1,7 @@+### 0.5.8.0++- Using *Data.HashSet* for *pcGauges* and *pcScale1000* in Prometheus metrics.+ ### 0.5.7.0 - Show histogram *error* counters in parameterized Prometheus metrics.
NgxExport/Tools/Prometheus.hs view
@@ -37,6 +37,8 @@ import Data.Map.Strict (Map) import qualified Data.Map.Strict as M+import Data.HashSet (HashSet)+import qualified Data.HashSet as HS import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as C8 import qualified Data.ByteString.Lazy as L@@ -72,8 +74,8 @@ data PrometheusConf = PrometheusConf { pcMetrics :: Map MetricsName MetricsHelp- , pcGauges :: [MetricsName]- , pcScale1000 :: [MetricsName]+ , pcGauges :: HashSet MetricsName+ , pcScale1000 :: HashSet MetricsName } deriving Read data HistogramLayout =@@ -187,8 +189,10 @@ -- ,(\"cnt_uptime_reload\", \"Nginx master uptime after reload\") -- ,(\"hst_request_time\", \"Request duration\") -- ]--- , __/pcGauges/__ = [\"cnt_stub_status_active\"]--- , __/pcScale1000/__ = [\"hst_request_time_sum\"]+-- , __/pcGauges/__ = fromList+-- [\"cnt_stub_status_active\"]+-- , __/pcScale1000/__ = fromList+-- [\"hst_request_time_sum\"] -- }'; -- -- haskell_var_empty_on_error $hs_prom_metrics;@@ -440,7 +444,7 @@ toPrometheusMetrics' :: PrometheusConf -> AllMetrtics -> PrometheusMetrics toPrometheusMetrics' PrometheusConf {..} (srv, cnts, hs, ocnts) = let toValues = M.mapWithKey- (\k v -> (if k `elem` pcScale1000+ (\k v -> (if k `HS.member` pcScale1000 then (/ 1000) else id ) $ fromIntegral v@@ -476,7 +480,7 @@ in ((k == v1 || k == v2) :) ) [] ks )- gCounter = const . flip elem pcGauges+ gCounter = const . flip HS.member pcGauges toHistogram cs hk rs = let ranges = M.mapWithKey (\k ->@@ -518,10 +522,8 @@ renameErrCounter k = let s = "_err" (b, (a, e)) =- second (\v -> if s `T.isSuffixOf` v- then (fromJust $ T.stripSuffix s v, s)- else (v, "")- ) $ T.breakOn "@" k+ second (\v -> maybe (v, "") (, s) $ T.stripSuffix s v) $+ T.breakOn "@" k in T.concat [b, e, a] showPrometheusMetrics :: PrometheusMetrics -> L.ByteString@@ -745,10 +747,12 @@ -- ,(\"__/hst_u_response_time/__\" -- ,\"Response time from all servers in a single upstream\") -- ]--- , __/pcGauges/__ = [\"cnt_stub_status_active\"]--- , __/pcScale1000/__ = [\"hst_request_time_sum\"--- ,\"__/hst_u_response_time_sum/__\"--- ]+-- , __/pcGauges/__ = fromList+-- [\"cnt_stub_status_active\"]+-- , __/pcScale1000/__ = fromList+-- [\"hst_request_time_sum\"+-- ,\"__/hst_u_response_time_sum/__\"+-- ] -- }\'; -- @ -- @@@ -921,10 +925,12 @@ -- ,(\"cnt_uptime_reload\", \"Nginx master uptime after reload\") -- ,(\"__/hst_request_time/__\", \"Request duration\") -- ]--- , pcGauges = [\"cnt_stub_status_active\"]--- , pcScale1000 = [\"__/hst_request_time\@scope=(total)_sum/__\"--- ,\"__/hst_request_time\@scope=(in_upstreams)_sum/__\"--- ]+-- , pcGauges = fromList+-- [\"cnt_stub_status_active\"]+-- , pcScale1000 = fromList+-- [\"__/hst_request_time@\scope=(total)_sum/__\"+-- ,\"__/hst_request_time\@scope=(in_upstreams)_sum/__\"+-- ] -- }\'; -- -- @
ngx-export-tools-extra.cabal view
@@ -1,5 +1,5 @@ name: ngx-export-tools-extra-version: 0.5.7.0+version: 0.5.8.0 synopsis: More extra tools for Nginx haskell module description: More extra tools for <https://github.com/lyokha/nginx-haskell-module Nginx haskell module>.