Skip to content

Commit

Permalink
CAD-2905: wip NodeId, 2.
Browse files Browse the repository at this point in the history
  • Loading branch information
Denis Shevchenko committed May 12, 2021
1 parent 2e4e1f9 commit aa0d0d2
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 9 deletions.
19 changes: 13 additions & 6 deletions cardano-logger/src/Cardano/Logger/Handlers/Logs/Run.hs
@@ -1,4 +1,5 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

module Cardano.Logger.Handlers.Logs.Run
( runLogsHandler
Expand All @@ -11,9 +12,10 @@ import Control.Monad (forM_, forever)
import qualified Data.HashMap.Strict as HM
import Data.IORef (readIORef)
import Data.List (intercalate)
import qualified Data.Text as T

import Cardano.Logger.Configuration
import Cardano.Logger.Types (AcceptedItems, NodeId)
import Cardano.Logger.Types (AcceptedItems, NodeId, NodeName, getNodeName)

runLogsHandler
:: LoggerConfig
Expand All @@ -22,8 +24,9 @@ runLogsHandler
runLogsHandler config acceptedItems = forever $ do
threadDelay 2000000
items <- HM.toList <$> readIORef acceptedItems
forM_ items $ \(nodeId, (_niStore, loQueue, _)) ->
atomically (getAllLogObjects loQueue) >>= writeLogObjects config nodeId
forM_ items $ \(nodeId, (niStore, loQueue, _)) -> do
nodeName <- maybe "" id <$> getNodeName niStore
atomically (getAllLogObjects loQueue) >>= writeLogObjects config nodeId nodeName

getAllLogObjects :: TBQueue lo -> STM [lo]
getAllLogObjects loQueue =
Expand All @@ -35,10 +38,14 @@ writeLogObjects
:: Show lo
=> LoggerConfig
-> NodeId
-> NodeName
-> [lo]
-> IO ()
writeLogObjects _ _ [] = return ()
writeLogObjects _config nodeId logObjects =
writeLogObjects _ _ _ [] = return ()
writeLogObjects _config nodeId nodeName logObjects =
appendFile fileName . intercalate "\n" . map show $ logObjects
where
fileName = "/tmp/cardano-logger-test-" <> show nodeId <> ".log"
fileName = "/tmp/cardano-logger-test-" <> nodeFullId <> ".log"
nodeFullId = if T.null nodeName
then show nodeId
else T.unpack nodeName <> "-" <> show nodeId
9 changes: 9 additions & 0 deletions cardano-logger/src/Cardano/Logger/Types.hs
Expand Up @@ -7,6 +7,8 @@ module Cardano.Logger.Types
, LogObjects
, Metrics
, NodeId (..)
, NodeName
, getNodeName
, addressToNodeId
, initAcceptedItems
, prepareAcceptedItems
Expand All @@ -29,6 +31,13 @@ import Trace.Forward.Protocol.Type (NodeInfoStore)

import System.Metrics.Store.Acceptor (MetricsLocalStore, emptyMetricsLocalStore)

-- | Human-readable name of node.
type NodeName = Text

getNodeName :: NodeInfoStore -> IO (Maybe NodeName)
getNodeName niStore = lookup "NodeName" <$> readIORef niStore

-- | It is assumed that the node can be uniquely identified by its IP:port.
data NodeId = NodeId
{ nodeIP :: !String
, nodePort :: !Word16
Expand Down
2 changes: 1 addition & 1 deletion trace-forward/demo/forwarder.hs
Expand Up @@ -37,7 +37,7 @@ main = do
ForwarderConfiguration
{ forwarderTracer = contramap show stdoutTracer
, acceptorEndpoint = howToConnect
, nodeBasicInfo = return [("nodeName", "node-1")]
, nodeBasicInfo = return [("NodeName", "node-1")]
, actionOnRequest = print -- const (return ())
}

Expand Down
2 changes: 1 addition & 1 deletion trace-forward/demo/mux/forwarder.hs
Expand Up @@ -79,7 +79,7 @@ mkConfigs howToConnect freq benchFillFreq = (ekgConfig, tfConfig)
TF.ForwarderConfiguration
{ TF.forwarderTracer = if benchMode then nullTracer else contramap show stdoutTracer
, TF.acceptorEndpoint = forTF howToConnect
, TF.nodeBasicInfo = return [("nodeName", "node-1")]
, TF.nodeBasicInfo = return [("NodeName", "node-1")]
, TF.actionOnRequest = const (return ())
}

Expand Down
2 changes: 1 addition & 1 deletion trace-forward/test/Trace/Forward/Test/MkConfig.hs
Expand Up @@ -36,6 +36,6 @@ mkForwarderConfig endpoint =
ForwarderConfiguration
{ forwarderTracer = nullTracer
, acceptorEndpoint = endpoint
, nodeBasicInfo = return [("nodeName", "node-1")]
, nodeBasicInfo = return [("NodeName", "node-1")]
, actionOnRequest = const $ return ()
}

0 comments on commit aa0d0d2

Please sign in to comment.