diff --git a/cabal.project b/cabal.project index ca850a6a..61ffc8d8 100644 --- a/cabal.project +++ b/cabal.project @@ -87,3 +87,8 @@ source-repository-package type: git location: https://github.com/goodlyrottenapple/tasty-test-reporter tag: b704130 + +source-repository-package + type: git + location: https://github.com/worm2fed/servant-prometheus + tag: 9f967b3b42b183653b91f0ba9097621797ad107d diff --git a/changelog.d/810 b/changelog.d/810 new file mode 100644 index 00000000..a1b300f5 --- /dev/null +++ b/changelog.d/810 @@ -0,0 +1,2 @@ +synopsis: Record more route duration metrics with prometheus +prs: #810 diff --git a/flora.cabal b/flora.cabal index 0fffab8c..498e224c 100644 --- a/flora.cabal +++ b/flora.cabal @@ -426,6 +426,7 @@ library flora-web , servant-client , servant-client-core , servant-openapi3 + , servant-prometheus , servant-server , text , text-display diff --git a/src/web/FloraWeb/Server.hs b/src/web/FloraWeb/Server.hs index 3bee43a9..18b2084d 100644 --- a/src/web/FloraWeb/Server.hs +++ b/src/web/FloraWeb/Server.hs @@ -33,7 +33,7 @@ import Network.Wai.Handler.Warp ) import Network.Wai.Log qualified as WaiLog import Network.Wai.Middleware.Heartbeat (heartbeatMiddleware) -import Network.Wai.Middleware.Prometheus qualified as P +import Network.Wai.Middleware.Prometheus qualified as WaiMetrics import OddJobs.Endpoints qualified as OddJobs import OddJobs.Job (startJobRunner) import OddJobs.Types qualified as OddJobs @@ -41,6 +41,7 @@ import Optics.Core import Prometheus qualified as P import Prometheus.Metric.GHC qualified as P import Prometheus.Metric.Proc qualified as P +import Prometheus.Servant qualified as P import Sel import Servant ( Application @@ -177,9 +178,8 @@ runServer appLogger floraEnv = do $ heartbeatMiddleware . loggingMiddleware . const - $ P.prometheus - P.def - server + $ WaiMetrics.prometheus WaiMetrics.def + $ P.prometheusMiddleware P.defaultMetrics (Proxy @ServerRoutes) server mkServer :: Logger