From 521f19c89b516c6ea9967a78a7b4e10c69678e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Choutri?= Date: Fri, 27 Dec 2024 15:44:38 +0100 Subject: [PATCH 1/2] Deduplicate results of package-specific advisory listing --- src/advisories/Advisories/Model/Affected/Query.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/advisories/Advisories/Model/Affected/Query.hs b/src/advisories/Advisories/Model/Affected/Query.hs index d92d1378..9464a784 100644 --- a/src/advisories/Advisories/Model/Affected/Query.hs +++ b/src/advisories/Advisories/Model/Affected/Query.hs @@ -60,10 +60,11 @@ SELECT s0.hsec_id , s0.published , a1.cvss FROM security_advisories AS s0 - INNER JOIN affected_packages AS a1 ON s0.advisory_id = a1.advisory_id + INNER JOIN affected_packages AS a1 ON s0.advisory_id = a1.advisory_id INNER JOIN affected_version_ranges AS a2 ON a1.affected_package_id = a2.affected_package_id INNER JOIN packages AS p3 ON a1.package_id = p3.package_id WHERE a1.package_id = ? +GROUP BY s0.hsec_id, p3.namespace, p3.name, s0.summary, fixed, s0.published, a1.cvss |] (Only packageId) From 1dd67b9f8369fcadbf619a51a42270164399841f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Choutri=20de=20Tarl=C3=A9?= Date: Sun, 29 Dec 2024 16:03:53 +0100 Subject: [PATCH 2/2] Record more route duration metrics with prometheus (#810) * Record more route duration metrics with prometheus * Add changelog entry --- cabal.project | 5 +++++ changelog.d/810 | 2 ++ flora.cabal | 1 + src/web/FloraWeb/Server.hs | 8 ++++---- 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 changelog.d/810 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