diff --git a/src/Simplex/Messaging/Server/Prometheus.hs b/src/Simplex/Messaging/Server/Prometheus.hs index 869c13e63..16bb02888 100644 --- a/src/Simplex/Messaging/Server/Prometheus.hs +++ b/src/Simplex/Messaging/Server/Prometheus.hs @@ -13,6 +13,7 @@ import Data.Time.Clock.System (systemEpochDay) import Data.Time.Format.ISO8601 (iso8601Show) import Network.Socket (ServiceName) import Simplex.Messaging.Server.Stats +import Simplex.Messaging.Transport.Server (SocketStats (..)) data ServerMetrics = ServerMetrics { statsData :: ServerStatsData, @@ -32,13 +33,6 @@ data RealTimeMetrics = RealTimeMetrics ntfSubClientsCount :: Int } -data SocketStats = SocketStats - { socketsAccepted :: Int, - socketsClosed :: Int, - socketsActive :: Int, - socketsLeaked :: Int - } - {-# FOURMOLU_DISABLE\n#-} prometheusMetrics :: ServerMetrics -> RealTimeMetrics -> UTCTime -> Text prometheusMetrics sm rtm ts = diff --git a/src/Simplex/Messaging/Transport/Server.hs b/src/Simplex/Messaging/Transport/Server.hs index 95afb5947..c328dd6e5 100644 --- a/src/Simplex/Messaging/Transport/Server.hs +++ b/src/Simplex/Messaging/Transport/Server.hs @@ -12,6 +12,7 @@ module Simplex.Messaging.Transport.Server runTransportServerState, runTransportServerState_, SocketState, + SocketStats (..), newSocketState, getSocketStats, runTransportServer, @@ -44,7 +45,6 @@ import Foreign.C.Error import GHC.IO.Exception (ioe_errno) import Network.Socket import qualified Network.TLS as T -import Simplex.Messaging.Server.Prometheus import Simplex.Messaging.Transport import Simplex.Messaging.Util (catchAll_, labelMyThread, tshow) import System.Exit (exitFailure) @@ -165,6 +165,13 @@ safeAccept sock = type SocketState = (TVar Int, TVar Int, TVar (IntMap (Weak ThreadId))) +data SocketStats = SocketStats + { socketsAccepted :: Int, + socketsClosed :: Int, + socketsActive :: Int, + socketsLeaked :: Int + } + newSocketState :: IO SocketState newSocketState = (,,) <$> newTVarIO 0 <*> newTVarIO 0 <*> newTVarIO mempty