diff --git a/src/PostgREST/AppState.hs b/src/PostgREST/AppState.hs index ed2eef3fc..7841d3080 100644 --- a/src/PostgREST/AppState.hs +++ b/src/PostgREST/AppState.hs @@ -222,7 +222,7 @@ usePool AppState{stateObserver=observer, stateMainThreadId=mainThreadId, ..} ses whenLeft res (\case SQL.AcquisitionTimeoutUsageError -> - observer $ PoolAcqTimeoutObs SQL.AcquisitionTimeoutUsageError + observer PoolAcqTimeoutObs err@(SQL.ConnectionUsageError e) -> let failureMessage = BS.unpack $ fromMaybe mempty e in when (("FATAL: password authentication failed" `isInfixOf` failureMessage) || ("no password supplied" `isInfixOf` failureMessage)) $ do diff --git a/src/PostgREST/Logger.hs b/src/PostgREST/Logger.hs index 8f6150985..2c5cd6e52 100644 --- a/src/PostgREST/Logger.hs +++ b/src/PostgREST/Logger.hs @@ -88,7 +88,7 @@ shouldLogResponse logLevel = case logLevel of -- All observations are logged except some that depend on the log-level observationLogger :: LoggerState -> LogLevel -> ObservationHandler observationLogger loggerState logLevel obs = case obs of - o@(PoolAcqTimeoutObs _) -> do + o@PoolAcqTimeoutObs -> do when (logLevel >= LogError) $ do logWithDebounce loggerState $ logWithZTime loggerState $ observationMessage o diff --git a/src/PostgREST/Metrics.hs b/src/PostgREST/Metrics.hs index 7a3955775..89378dfd6 100644 --- a/src/PostgREST/Metrics.hs +++ b/src/PostgREST/Metrics.hs @@ -50,7 +50,7 @@ init configDbPoolSize = do -- Only some observations are used as metrics observationMetrics :: MetricsState -> ObservationHandler observationMetrics MetricsState{..} obs = case obs of - (PoolAcqTimeoutObs _) -> do + PoolAcqTimeoutObs -> do incCounter poolTimeouts (HasqlPoolObs (SQL.ConnectionObservation _ status)) -> case status of SQL.ReadyForUseConnectionStatus -> do diff --git a/src/PostgREST/Observation.hs b/src/PostgREST/Observation.hs index 84f39fe8b..0878671c3 100644 --- a/src/PostgREST/Observation.hs +++ b/src/PostgREST/Observation.hs @@ -59,7 +59,7 @@ data Observation | QueryErrorCodeHighObs SQL.UsageError | QueryPgVersionError SQL.UsageError | PoolInit Int - | PoolAcqTimeoutObs SQL.UsageError + | PoolAcqTimeoutObs | HasqlPoolObs SQL.Observation | PoolRequest | PoolRequestFullfilled @@ -140,8 +140,7 @@ observationMessage = \case "Config reloaded" PoolInit poolSize -> "Connection Pool initialized with a maximum size of " <> show poolSize <> " connections" - PoolAcqTimeoutObs usageErr -> - jsonMessage usageErr + PoolAcqTimeoutObs -> jsonMessage SQL.AcquisitionTimeoutUsageError HasqlPoolObs (SQL.ConnectionObservation uuid status) -> "Connection " <> show uuid <> ( case status of