From 97cf2aac89460604ddce2aba0729647ed473726a Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Tue, 17 Dec 2019 17:31:04 -0500 Subject: [PATCH 01/35] add katip-es deps --- hs-abci-examples/nameservice/package.yaml | 3 ++ hs-abci-extra/package.yaml | 1 + stack.yaml | 6 ++++ stack.yaml.lock | 42 +++++++++++++++++++++++ 4 files changed, 52 insertions(+) diff --git a/hs-abci-examples/nameservice/package.yaml b/hs-abci-examples/nameservice/package.yaml index a7fea215..7f9c2767 100644 --- a/hs-abci-examples/nameservice/package.yaml +++ b/hs-abci-examples/nameservice/package.yaml @@ -49,6 +49,7 @@ dependencies: - aeson - aeson-casing - base >= 4.7 && < 5 +- bloodhound - bytestring - data-default-class - errors @@ -58,6 +59,7 @@ dependencies: - hs-abci-sdk - hs-abci-server - hs-abci-types +- http-client - lens - polysemy - polysemy-plugin @@ -68,6 +70,7 @@ dependencies: - proto3-suite - proto3-wire - katip +- katip-elasticsearch - servant - string-conversions - text diff --git a/hs-abci-extra/package.yaml b/hs-abci-extra/package.yaml index 047a7de1..ad4d0ba8 100644 --- a/hs-abci-extra/package.yaml +++ b/hs-abci-extra/package.yaml @@ -22,6 +22,7 @@ description: Please see the README on GitHub at = 4.7 && < 5 - katip +- katip-elasticsearch - hs-abci-server - aeson - aeson-casing diff --git a/stack.yaml b/stack.yaml index 44c480b0..dc091ae8 100644 --- a/stack.yaml +++ b/stack.yaml @@ -20,6 +20,12 @@ extra-deps: - lens-labels-0.3.0.1 - proto-lens-0.5.0.0 - proto-lens-protoc-0.5.0.0 + - containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685 + - http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 + - binary-0.8.7.0@sha256:ae3e6cca723ac55c54bbb3fa771bcf18142bc727afd57818e66d6ee6c8044f12,7705 + - text-1.2.4.0@sha256:8c24450feb8e3bbb7ea3e17af24ef57e85db077c4bf53e5bcc345b283d1b1d5b,10081 + - katip-elasticsearch-0.6.0.0@sha256:be8513ce611db989c63c9f836af99699767d4fc3a9cb0fd81fcbae4d1f2ed7ee,2746 + - bloodhound-0.16.0.0@sha256:b7be3a83e7b914fbe80a9b9de29009ad60cff072f5f8d4af4ee64de8e6406d32,5508 - git: https://github.com/oscoin/avl-auth commit: dfc468845a82cdd7d759943b20853999bc026505 - git: https://github.com/awakesecurity/proto3-suite diff --git a/stack.yaml.lock b/stack.yaml.lock index 327e9dd5..070fe141 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -39,6 +39,48 @@ packages: sha256: 30942e172639508c45742e4b0cb6bf3493bee24b291b6cd4c1ad0785f1e9057c original: hackage: proto-lens-protoc-0.5.0.0 +- completed: + hackage: containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685 + pantry-tree: + size: 4849 + sha256: faa4e75922a28f7cfe9920c1d7ab3866b792cefcd29bf79f54cfe3b6b5f57cbf + original: + hackage: containers-0.5.11.0@sha256:28ad7337057442f75bc689315ab4ec7bdf5e6b2c39668f306672cecd82c02798,16685 +- completed: + hackage: http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 + pantry-tree: + size: 2457 + sha256: 02bcffba9cad572fefb4640f5fc9be68e770b32ab73efcac649db20290994c6d + original: + hackage: http-client-0.5.14@sha256:4880b27d6741e331454a1d4c887d96ce3d7d625322c8433983a4b1cd08538577,5348 +- completed: + hackage: binary-0.8.7.0@sha256:ae3e6cca723ac55c54bbb3fa771bcf18142bc727afd57818e66d6ee6c8044f12,7705 + pantry-tree: + size: 1976 + sha256: 35e44b6d3ccf0d56fc5407dc3f0895e74696a66da189afbd65973c95743f5e25 + original: + hackage: binary-0.8.7.0@sha256:ae3e6cca723ac55c54bbb3fa771bcf18142bc727afd57818e66d6ee6c8044f12,7705 +- completed: + hackage: text-1.2.4.0@sha256:8c24450feb8e3bbb7ea3e17af24ef57e85db077c4bf53e5bcc345b283d1b1d5b,10081 + pantry-tree: + size: 7457 + sha256: 3437b0a73ce2ae1a81aa8b3438d41a85981c00894cdbee0d6d6d6873046a5d5d + original: + hackage: text-1.2.4.0@sha256:8c24450feb8e3bbb7ea3e17af24ef57e85db077c4bf53e5bcc345b283d1b1d5b,10081 +- completed: + hackage: katip-elasticsearch-0.6.0.0@sha256:be8513ce611db989c63c9f836af99699767d4fc3a9cb0fd81fcbae4d1f2ed7ee,2746 + pantry-tree: + size: 679 + sha256: 907421eb58249f6bed58f4e94f00627b383e53fd0ea0737050c1b1f7ab9fee44 + original: + hackage: katip-elasticsearch-0.6.0.0@sha256:be8513ce611db989c63c9f836af99699767d4fc3a9cb0fd81fcbae4d1f2ed7ee,2746 +- completed: + hackage: bloodhound-0.16.0.0@sha256:b7be3a83e7b914fbe80a9b9de29009ad60cff072f5f8d4af4ee64de8e6406d32,5508 + pantry-tree: + size: 4812 + sha256: 7f21ce00e92f7fd24a91dd19a82aab38f62047c1b93f2cc070481760b41a4d37 + original: + hackage: bloodhound-0.16.0.0@sha256:b7be3a83e7b914fbe80a9b9de29009ad60cff072f5f8d4af4ee64de8e6406d32,5508 - completed: cabal-file: size: 1872 From cc47cd5eda309c928fc6bab0fb2980da06b1e276 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Wed, 18 Dec 2019 14:13:08 -0500 Subject: [PATCH 02/35] wip es scribe/logger --- hs-abci-examples/nameservice/app/Main.hs | 32 +++++++++++++++---- .../nameservice/src/Nameservice/Server.hs | 4 +++ hs-abci-extra/package.yaml | 2 ++ .../ABCI/Server/Middleware/RequestLogger.hs | 26 +++++++++++++++ .../ABCI/Server/Middleware/ResponseLogger.hs | 27 ++++++++++++++++ hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs | 2 +- .../src/Tendermint/SDK/BaseApp/Events.hs | 4 +++ .../src/Tendermint/SDK/BaseApp/Logger.hs | 1 + 8 files changed, 91 insertions(+), 7 deletions(-) diff --git a/hs-abci-examples/nameservice/app/Main.hs b/hs-abci-examples/nameservice/app/Main.hs index b906fffd..c261acfb 100644 --- a/hs-abci-examples/nameservice/app/Main.hs +++ b/hs-abci-examples/nameservice/app/Main.hs @@ -1,19 +1,39 @@ module Main where import Control.Exception (bracket) -import qualified Katip as K import Nameservice.Application (makeAppConfig) import Nameservice.Server (makeAndServeApplication) -import System.IO (stdout) +--import System.IO (stdout) import Tendermint.SDK.BaseApp.Logger.Katip (LogConfig (..), mkLogConfig) - +import Katip +import Katip.Scribes.ElasticSearch +import Database.V5.Bloodhound +import Network.HTTP.Client main :: IO () main = do logCfg <- mkLogConfig "dev" "nameservice" - handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 - let mkLogEnv = K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) - bracket mkLogEnv K.closeScribes $ \le -> do + mgr <- newManager defaultManagerSettings + let bhe = mkBHEnv (Server "http://localhost:9201") mgr + esScribe <- mkEsScribe + -- Reasonable for production + defaultEsScribeCfgV5 + -- Reasonable for single-node in development + bhe + (IndexName "nameservice") + (MappingName "application-logs") + (permitItem InfoS) + V3 + let mkLogEnv = registerScribe "es" esScribe defaultScribeSettings + =<< initLogEnv "ABCI" "production" + bracket mkLogEnv closeScribes $ \le -> do cfg <- makeAppConfig logCfg {_logEnv = le} makeAndServeApplication cfg + + -- logCfg <- mkLogConfig "dev" "nameservice" + -- handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 + -- let mkLogEnv = K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) + -- bracket mkLogEnv K.closeScribes $ \le -> do + -- cfg <- makeAppConfig logCfg {_logEnv = le} + -- makeAndServeApplication cfg diff --git a/hs-abci-examples/nameservice/src/Nameservice/Server.hs b/hs-abci-examples/nameservice/src/Nameservice/Server.hs index 6dbafa75..85876f35 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Server.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Server.hs @@ -25,10 +25,14 @@ makeAndServeApplication cfg = do mkMiddleware :: IO (Middleware IO) mkMiddleware = do reqLogger <- ReqLogger.mkLogStdoutDev + esReqLogger <- ReqLogger.mkLogESDev resLogger <- ResLogger.mkLogStdoutDev + esResLogger <- ResLogger.mkLogESDev pure . appEndo . fold $ [ Endo reqLogger + , Endo esReqLogger , Endo resLogger + , Endo esResLogger ] hookInMiddleware _app = do middleware <- mkMiddleware diff --git a/hs-abci-extra/package.yaml b/hs-abci-extra/package.yaml index ad4d0ba8..f9347da4 100644 --- a/hs-abci-extra/package.yaml +++ b/hs-abci-extra/package.yaml @@ -21,9 +21,11 @@ description: Please see the README on GitHub at = 4.7 && < 5 +- bloodhound - katip - katip-elasticsearch - hs-abci-server +- http-client - aeson - aeson-casing - unordered-containers diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index dc1ad784..21049f33 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -2,6 +2,7 @@ module Network.ABCI.Server.Middleware.RequestLogger ( -- * Basic stdout logging mkLogStdout , mkLogStdoutDev + , mkLogESDev -- * Custom Loggers , mkRequestLogger , mkRequestLoggerM @@ -12,6 +13,10 @@ import Katip import Network.ABCI.Server.App (App (..), MessageType, Middleware, Request (..)) import System.IO (stdout) +import Katip.Scribes.ElasticSearch +import Database.V5.Bloodhound +import qualified Network.HTTP.Client as Client + --------------------------------------------------------------------------- -- Types --------------------------------------------------------------------------- @@ -53,6 +58,27 @@ mkLogStdoutDev = do let ns = "Server" pure $ mkRequestLogger le ns +--------------------------------------------------------------------------- +-- mkLogESDev +-------------------------------------------------------------------------- +mkLogESDev :: (MonadIO m) => m (Middleware m) +mkLogESDev = do + mgr <- liftIO $ Client.newManager Client.defaultManagerSettings + let bhe = mkBHEnv (Server "http://localhost:9201") mgr + esScribe <- liftIO $ mkEsScribe + -- Reasonable for production + defaultEsScribeCfgV5 + -- Reasonable for single-node in development + bhe + (IndexName "nameservice") + (MappingName "application-logs") + (permitItem DebugS) + V3 + le <- liftIO $ registerScribe "es" esScribe defaultScribeSettings + =<< initLogEnv "ABCI" "production" + let ns = "Server" + pure $ mkRequestLogger le ns + --------------------------------------------------------------------------- -- mkRequestLogger --------------------------------------------------------------------------- diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 420e2618..650138bc 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -2,6 +2,7 @@ module Network.ABCI.Server.Middleware.ResponseLogger ( -- * Basic stdout logging mkLogStdout , mkLogStdoutDev + , mkLogESDev -- * Custom Loggers , mkResponseLogger , mkResponseLoggerM @@ -12,6 +13,10 @@ import Katip import Network.ABCI.Server.App (App (..), MessageType, Middleware, Response (..)) import System.IO (stdout) +import Katip.Scribes.ElasticSearch +import Database.V5.Bloodhound +import qualified Network.HTTP.Client as Client + --------------------------------------------------------------------------- -- Types --------------------------------------------------------------------------- @@ -53,6 +58,28 @@ mkLogStdoutDev = do let ns = "Server" pure $ mkResponseLogger le ns +--------------------------------------------------------------------------- +-- mkLogESDev +-------------------------------------------------------------------------- +mkLogESDev :: (MonadIO m) => m (Middleware m) +mkLogESDev = do + mgr <- liftIO $ Client.newManager Client.defaultManagerSettings + let bhe = mkBHEnv (Server "http://localhost:9201") mgr + esScribe <- liftIO $ mkEsScribe + -- Reasonable for production + defaultEsScribeCfgV5 + -- Reasonable for single-node in development + bhe + (IndexName "nameservice") + (MappingName "application-logs") + (permitItem DebugS) + V3 + le <- liftIO $ registerScribe "es" esScribe defaultScribeSettings + =<< initLogEnv "ABCI" "production" + let ns = "Server" + pure $ mkResponseLogger le ns + + --------------------------------------------------------------------------- -- mkResponseLogger --------------------------------------------------------------------------- diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs index c5497aa4..ce59065f 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs @@ -9,7 +9,7 @@ module Tendermint.SDK.BaseApp -- * CoreEff , CoreEffs - , Context + , Context(..) , makeContext , runCoreEffs diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index 80b9de94..62b9cd5a 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -47,6 +47,10 @@ class ToEvent e where A.Object obj -> bimap cs (cs . A.encode) <$> toList obj _ -> mempty +data LoggableEvent a = LoggableEvent a + +-- logEvent :: + -- | A class that can parse event log items in the deliverTx response. Primarily -- | useful for client applications and testing. class ToEvent e => FromEvent e where diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index 4c549973..6b7f11ff 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -14,5 +14,6 @@ data Severity = Debug | Info | Warning | Error | Exception deriving (Eq, Ord) -- | Effect allowing for console logging. data Logger m a where Log :: Severity -> Text -> Logger m () + -- AddContext :: Object -> m a -> Logger m a makeSem ''Logger From 82741df8044e1ab9113fdce0b38a899409c15cff Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Wed, 18 Dec 2019 16:34:38 -0500 Subject: [PATCH 03/35] add metrics instructions --- hs-abci-examples/nameservice/README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index e40d5f34..363571ab 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -1 +1,23 @@ # nameservice + +## Metrics + +Run `nameservice` via the `Makefile`: + +``` +make deploy-nameservice-local +``` + +Along with running `nameservice`, this also starts a Prometheus] metrics server. +By default, the metrics server runs on `localhost:9200`. To use a different port, +set the `STATS_PORT` environment variable to the desired port value. + +To see these metrics in Datadog, follow the +[Prometheus host config instructions](https://docs.datadoghq.com/getting_started/integrations/prometheus/?tab=host#pagetitle) +to configure a local Datadog agent to scrape the endpoint. + +Alternatively, use the `docker-compose` command: + +``` +make deploy-nameservice-docker +``` From 42c2e7f4348cd5e5614180acea7d882541e54a82 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Wed, 18 Dec 2019 17:43:22 -0500 Subject: [PATCH 04/35] toggle response/request logs to ES or console --- hs-abci-examples/nameservice/app/Main.hs | 57 ++++++++++--------- .../nameservice/src/Nameservice/Server.hs | 26 +++------ 2 files changed, 40 insertions(+), 43 deletions(-) diff --git a/hs-abci-examples/nameservice/app/Main.hs b/hs-abci-examples/nameservice/app/Main.hs index 8be341f6..8aab9cca 100644 --- a/hs-abci-examples/nameservice/app/Main.hs +++ b/hs-abci-examples/nameservice/app/Main.hs @@ -12,41 +12,46 @@ import Tendermint.SDK.BaseApp.Logger.Katip (LogConfig (..), import Tendermint.SDK.BaseApp.Metrics.Prometheus (MetricsConfig (..), mkMetricsConfig) import qualified Text.Read as T -import Katip -import Katip.Scribes.ElasticSearch -import Database.V5.Bloodhound -import Network.HTTP.Client +import qualified Katip.Scribes.ElasticSearch as ES +import qualified Database.V5.Bloodhound as BH +import qualified Network.HTTP.Client as Client main :: IO () main = do - metCfg <- mkMetricsConfig + -- | Env vars mApiKey <- lookupEnv "DD_API_KEY" mMetricsPort <- lookupEnv "STATS_PORT" + mESPort <- lookupEnv "ES_PORT" + -- | Cfgs + metCfg <- mkMetricsConfig logCfg <- mkLogConfig "dev" "nameservice" - mgr <- newManager defaultManagerSettings - let bhe = mkBHEnv (Server "http://localhost:9201") mgr - esScribe <- mkEsScribe - -- Reasonable for production - defaultEsScribeCfgV5 - -- Reasonable for single-node in development - bhe - (IndexName "nameservice") - (MappingName "application-logs") - (permitItem InfoS) - V3 - let mkLogEnv = registerScribe "es" esScribe defaultScribeSettings - =<< initLogEnv "ABCI" "production" - bracket mkLogEnv closeScribes $ \le -> do + -- | Log Environment + mkLogEnv <- case mESPort of + Nothing -> do + -- | Console logger context + handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 + return $ K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) + Just esPort -> do + -- | ES logger context + mgr <- Client.newManager Client.defaultManagerSettings + let serverAddress = "http://localhost:" ++ esPort + bhe = BH.mkBHEnv (BH.Server $ pack serverAddress) mgr + esScribe <- ES.mkEsScribe + -- Reasonable for production + ES.defaultEsScribeCfgV5 + -- Reasonable for single-node in development + bhe + (BH.IndexName "nameservice") + (BH.MappingName "application-logs") + (K.permitItem K.InfoS) + K.V3 + return $ K.registerScribe "es" esScribe K.defaultScribeSettings + =<< K.initLogEnv "ABCI" "production" + -- | serve with appropriate log environment + bracket mkLogEnv K.closeScribes $ \le -> do cfg <- makeAppConfig metCfg { metricsAPIKey = pack <$> mApiKey , metricsPort = T.read <$> mMetricsPort } logCfg {_logEnv = le} makeAndServeApplication cfg - - -- logCfg <- mkLogConfig "dev" "nameservice" - -- handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 - -- let mkLogEnv = K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) - -- bracket mkLogEnv K.closeScribes $ \le -> do - -- cfg <- makeAppConfig logCfg {_logEnv = le} - -- makeAndServeApplication cfg diff --git a/hs-abci-examples/nameservice/src/Nameservice/Server.hs b/hs-abci-examples/nameservice/src/Nameservice/Server.hs index ef741f99..85f828f7 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Server.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Server.hs @@ -1,7 +1,5 @@ module Nameservice.Server (makeAndServeApplication) where -import Data.Foldable (fold) -import Data.Monoid (Endo (..)) import Nameservice.Application (AppConfig (..), handlersContext) import Network.ABCI.Server (serveApp) @@ -24,25 +22,19 @@ makeAndServeApplication AppConfig{..} = do runMetricsServer metCfg let nat :: forall a. Sem CoreEffs a -> IO a nat = runCoreEffs baseAppContext - application = createIOApp nat $ makeApp handlersContext + application = createIOApp nat . addContextLoggers $ + makeApp handlersContext serveApp =<< hookInMiddleware application where metCfg = contextMetricsConfig baseAppContext apiKey = (fmap MetLogger.ApiKey . metricsAPIKey) =<< metCfg - mkMiddleware :: IO (Middleware IO) - mkMiddleware = do - reqLogger <- ReqLogger.mkLogStdoutDev - esReqLogger <- ReqLogger.mkLogESDev - resLogger <- ResLogger.mkLogStdoutDev - esResLogger <- ResLogger.mkLogESDev + addContextLoggers = + ResLogger.mkResponseLoggerM . ReqLogger.mkRequestLoggerM + -- direct to datadog logger requires a different log environment + mkMetricMiddleware :: IO (Middleware IO) + mkMetricMiddleware = do metLogger <- MetLogger.mkMetricsLogDatadog apiKey - pure . appEndo . fold $ - [ Endo reqLogger - , Endo esReqLogger - , Endo resLogger - , Endo esResLogger - , Endo metLogger - ] + pure metLogger hookInMiddleware _app = do - middleware <- mkMiddleware + middleware <- mkMetricMiddleware pure $ middleware _app From fa171e62ac6a8ff5747f6aee91f39fd6b496dedc Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Wed, 18 Dec 2019 17:46:08 -0500 Subject: [PATCH 05/35] add some comments and rename app logger middleware for clarity --- hs-abci-examples/nameservice/src/Nameservice/Server.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Server.hs b/hs-abci-examples/nameservice/src/Nameservice/Server.hs index 85f828f7..5870fd50 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Server.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Server.hs @@ -22,13 +22,14 @@ makeAndServeApplication AppConfig{..} = do runMetricsServer metCfg let nat :: forall a. Sem CoreEffs a -> IO a nat = runCoreEffs baseAppContext - application = createIOApp nat . addContextLoggers $ + application = createIOApp nat . addContextAppLoggers $ makeApp handlersContext serveApp =<< hookInMiddleware application where metCfg = contextMetricsConfig baseAppContext apiKey = (fmap MetLogger.ApiKey . metricsAPIKey) =<< metCfg - addContextLoggers = + -- response/request use the provided log environment + addContextAppLoggers = ResLogger.mkResponseLoggerM . ReqLogger.mkRequestLoggerM -- direct to datadog logger requires a different log environment mkMetricMiddleware :: IO (Middleware IO) From 598680d903ae7834829a85ce2901b742fc77aa2c Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 10:47:55 -0500 Subject: [PATCH 06/35] some code cleanup --- hs-abci-examples/nameservice/app/Main.hs | 63 ++++++++++--------- .../nameservice/src/Nameservice/Server.hs | 17 +++-- hs-abci-extra/package.yaml | 3 - .../ABCI/Server/Middleware/RequestLogger.hs | 25 -------- .../ABCI/Server/Middleware/ResponseLogger.hs | 26 -------- .../src/Tendermint/SDK/BaseApp/Logger.hs | 2 +- 6 files changed, 42 insertions(+), 94 deletions(-) diff --git a/hs-abci-examples/nameservice/app/Main.hs b/hs-abci-examples/nameservice/app/Main.hs index 8aab9cca..ee114652 100644 --- a/hs-abci-examples/nameservice/app/Main.hs +++ b/hs-abci-examples/nameservice/app/Main.hs @@ -2,9 +2,12 @@ module Main where import Control.Exception (bracket) import Data.Text (pack) +import qualified Database.V5.Bloodhound as BH import qualified Katip as K +import qualified Katip.Scribes.ElasticSearch as ES import Nameservice.Application (makeAppConfig) import Nameservice.Server (makeAndServeApplication) +import qualified Network.HTTP.Client as Client import System.Environment (lookupEnv) import System.IO (stdout) import Tendermint.SDK.BaseApp.Logger.Katip (LogConfig (..), @@ -12,46 +15,48 @@ import Tendermint.SDK.BaseApp.Logger.Katip (LogConfig (..), import Tendermint.SDK.BaseApp.Metrics.Prometheus (MetricsConfig (..), mkMetricsConfig) import qualified Text.Read as T -import qualified Katip.Scribes.ElasticSearch as ES -import qualified Database.V5.Bloodhound as BH -import qualified Network.HTTP.Client as Client main :: IO () main = do - -- | Env vars + -- Env vars mApiKey <- lookupEnv "DD_API_KEY" mMetricsPort <- lookupEnv "STATS_PORT" mESPort <- lookupEnv "ES_PORT" - -- | Cfgs + -- Cfgs metCfg <- mkMetricsConfig logCfg <- mkLogConfig "dev" "nameservice" - -- | Log Environment - mkLogEnv <- case mESPort of - Nothing -> do - -- | Console logger context - handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 - return $ K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) - Just esPort -> do - -- | ES logger context - mgr <- Client.newManager Client.defaultManagerSettings - let serverAddress = "http://localhost:" ++ esPort - bhe = BH.mkBHEnv (BH.Server $ pack serverAddress) mgr - esScribe <- ES.mkEsScribe - -- Reasonable for production - ES.defaultEsScribeCfgV5 - -- Reasonable for single-node in development - bhe - (BH.IndexName "nameservice") - (BH.MappingName "application-logs") - (K.permitItem K.InfoS) - K.V3 - return $ K.registerScribe "es" esScribe K.defaultScribeSettings - =<< K.initLogEnv "ABCI" "production" - -- | serve with appropriate log environment + -- Log Environment + let mkLogEnv = + case mESPort of + Nothing -> do + -- Console logger + handleScribe <- K.mkHandleScribe + K.ColorIfTerminal + stdout + (K.permitItem K.DebugS) + K.V2 + K.registerScribe "stdout" handleScribe K.defaultScribeSettings + (_logEnv logCfg) + Just esPort -> do + -- ES logger + mgr <- Client.newManager Client.defaultManagerSettings + let serverAddress = "http://localhost:" ++ esPort + bhe = BH.mkBHEnv (BH.Server $ pack serverAddress) mgr + esScribe <- ES.mkEsScribe + -- Reasonable for production + ES.defaultEsScribeCfgV5 + -- Reasonable for single-node in development + bhe + (BH.IndexName "nameservice") + (BH.MappingName "application-logs") + (K.permitItem K.InfoS) + K.V3 + K.registerScribe "es" esScribe K.defaultScribeSettings + =<< K.initLogEnv "nameservice" "production" bracket mkLogEnv K.closeScribes $ \le -> do cfg <- makeAppConfig metCfg { metricsAPIKey = pack <$> mApiKey , metricsPort = T.read <$> mMetricsPort } - logCfg {_logEnv = le} + logCfg { _logEnv = le } makeAndServeApplication cfg diff --git a/hs-abci-examples/nameservice/src/Nameservice/Server.hs b/hs-abci-examples/nameservice/src/Nameservice/Server.hs index 5870fd50..dc5a3f1a 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Server.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Server.hs @@ -4,9 +4,9 @@ import Nameservice.Application (AppConfig (..), handlersContext) import Network.ABCI.Server (serveApp) import Network.ABCI.Server.App (Middleware) -import qualified Network.ABCI.Server.Middleware.MetricsLogger as MetLogger -import qualified Network.ABCI.Server.Middleware.RequestLogger as ReqLogger -import qualified Network.ABCI.Server.Middleware.ResponseLogger as ResLogger +import qualified Network.ABCI.Server.Middleware.MetricsLogger as Met +import qualified Network.ABCI.Server.Middleware.RequestLogger as Req +import qualified Network.ABCI.Server.Middleware.ResponseLogger as Res import Polysemy (Sem) import Tendermint.SDK.Application (createIOApp, makeApp) @@ -27,15 +27,12 @@ makeAndServeApplication AppConfig{..} = do serveApp =<< hookInMiddleware application where metCfg = contextMetricsConfig baseAppContext - apiKey = (fmap MetLogger.ApiKey . metricsAPIKey) =<< metCfg - -- response/request use the provided log environment - addContextAppLoggers = - ResLogger.mkResponseLoggerM . ReqLogger.mkRequestLoggerM + apiKey = (fmap Met.ApiKey . metricsAPIKey) =<< metCfg + -- response/request use the provided log environment from CoreEffs + addContextAppLoggers = Res.mkResponseLoggerM . Req.mkRequestLoggerM -- direct to datadog logger requires a different log environment mkMetricMiddleware :: IO (Middleware IO) - mkMetricMiddleware = do - metLogger <- MetLogger.mkMetricsLogDatadog apiKey - pure metLogger + mkMetricMiddleware = pure =<< Met.mkMetricsLogDatadog apiKey hookInMiddleware _app = do middleware <- mkMetricMiddleware pure $ middleware _app diff --git a/hs-abci-extra/package.yaml b/hs-abci-extra/package.yaml index 10b8dd24..aede9b77 100644 --- a/hs-abci-extra/package.yaml +++ b/hs-abci-extra/package.yaml @@ -21,12 +21,9 @@ description: Please see the README on GitHub at = 4.7 && < 5 -- bloodhound - katip -- katip-elasticsearch - katip-datadog - hs-abci-server -- http-client - aeson - aeson-casing - unordered-containers diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index ca7ee85a..c46edc5e 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -2,7 +2,6 @@ module Network.ABCI.Server.Middleware.RequestLogger ( -- * Basic stdout logging mkLogStdout , mkLogStdoutDev - , mkLogESDev -- * Custom Loggers , mkRequestLogger , mkRequestLoggerM @@ -14,9 +13,6 @@ import Katip import Network.ABCI.Server.App (App (..), MessageType, Middleware, Request (..)) import System.IO (stdout) -import Katip.Scribes.ElasticSearch -import Database.V5.Bloodhound -import qualified Network.HTTP.Client as Client --------------------------------------------------------------------------- -- Types @@ -59,27 +55,6 @@ mkLogStdoutDev = do let ns = "Server" pure $ mkRequestLogger le ns ---------------------------------------------------------------------------- --- mkLogESDev --------------------------------------------------------------------------- -mkLogESDev :: (MonadIO m) => m (Middleware m) -mkLogESDev = do - mgr <- liftIO $ Client.newManager Client.defaultManagerSettings - let bhe = mkBHEnv (Server "http://localhost:9201") mgr - esScribe <- liftIO $ mkEsScribe - -- Reasonable for production - defaultEsScribeCfgV5 - -- Reasonable for single-node in development - bhe - (IndexName "nameservice") - (MappingName "application-logs") - (permitItem DebugS) - V3 - le <- liftIO $ registerScribe "es" esScribe defaultScribeSettings - =<< initLogEnv "ABCI" "production" - let ns = "Server" - pure $ mkRequestLogger le ns - --------------------------------------------------------------------------- -- mkRequestLogger --------------------------------------------------------------------------- diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 650138bc..79603478 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -2,7 +2,6 @@ module Network.ABCI.Server.Middleware.ResponseLogger ( -- * Basic stdout logging mkLogStdout , mkLogStdoutDev - , mkLogESDev -- * Custom Loggers , mkResponseLogger , mkResponseLoggerM @@ -13,9 +12,6 @@ import Katip import Network.ABCI.Server.App (App (..), MessageType, Middleware, Response (..)) import System.IO (stdout) -import Katip.Scribes.ElasticSearch -import Database.V5.Bloodhound -import qualified Network.HTTP.Client as Client --------------------------------------------------------------------------- -- Types @@ -58,28 +54,6 @@ mkLogStdoutDev = do let ns = "Server" pure $ mkResponseLogger le ns ---------------------------------------------------------------------------- --- mkLogESDev --------------------------------------------------------------------------- -mkLogESDev :: (MonadIO m) => m (Middleware m) -mkLogESDev = do - mgr <- liftIO $ Client.newManager Client.defaultManagerSettings - let bhe = mkBHEnv (Server "http://localhost:9201") mgr - esScribe <- liftIO $ mkEsScribe - -- Reasonable for production - defaultEsScribeCfgV5 - -- Reasonable for single-node in development - bhe - (IndexName "nameservice") - (MappingName "application-logs") - (permitItem DebugS) - V3 - le <- liftIO $ registerScribe "es" esScribe defaultScribeSettings - =<< initLogEnv "ABCI" "production" - let ns = "Server" - pure $ mkResponseLogger le ns - - --------------------------------------------------------------------------- -- mkResponseLogger --------------------------------------------------------------------------- diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index 6b7f11ff..5c14d96b 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -14,6 +14,6 @@ data Severity = Debug | Info | Warning | Error | Exception deriving (Eq, Ord) -- | Effect allowing for console logging. data Logger m a where Log :: Severity -> Text -> Logger m () - -- AddContext :: Object -> m a -> Logger m a + -- AddContext :: Object -> m a -> Logger m a makeSem ''Logger From b5ba74405ca2ef6f6527aab2666614bcbe506dad Mon Sep 17 00:00:00 2001 From: martyall Date: Thu, 19 Dec 2019 12:30:58 -0500 Subject: [PATCH 07/35] wip --- hs-abci-examples/nameservice/app/Main.hs | 36 ++--------- hs-abci-examples/nameservice/package.yaml | 6 +- .../src/Nameservice/Application.hs | 63 +++++++++++++++++++ .../nameservice/src/Nameservice/Server.hs | 29 ++++----- .../ABCI/Server/Middleware/MetricsLogger.hs | 1 + .../src/Tendermint/SDK/BaseApp/CoreEff.hs | 17 ++++- .../Tendermint/SDK/BaseApp/Logger/Katip.hs | 12 ---- 7 files changed, 99 insertions(+), 65 deletions(-) diff --git a/hs-abci-examples/nameservice/app/Main.hs b/hs-abci-examples/nameservice/app/Main.hs index ee114652..e93b02fa 100644 --- a/hs-abci-examples/nameservice/app/Main.hs +++ b/hs-abci-examples/nameservice/app/Main.hs @@ -19,44 +19,16 @@ import qualified Text.Read as T main :: IO () main = do -- Env vars - mApiKey <- lookupEnv "DD_API_KEY" - mMetricsPort <- lookupEnv "STATS_PORT" - mESPort <- lookupEnv "ES_PORT" + mPrometheusPort <- lookupEnv "STATS_PORT" -- Cfgs - metCfg <- mkMetricsConfig + metCfg <- mkPrometheusConfig logCfg <- mkLogConfig "dev" "nameservice" -- Log Environment - let mkLogEnv = - case mESPort of - Nothing -> do - -- Console logger - handleScribe <- K.mkHandleScribe - K.ColorIfTerminal - stdout - (K.permitItem K.DebugS) - K.V2 - K.registerScribe "stdout" handleScribe K.defaultScribeSettings - (_logEnv logCfg) - Just esPort -> do - -- ES logger - mgr <- Client.newManager Client.defaultManagerSettings - let serverAddress = "http://localhost:" ++ esPort - bhe = BH.mkBHEnv (BH.Server $ pack serverAddress) mgr - esScribe <- ES.mkEsScribe - -- Reasonable for production - ES.defaultEsScribeCfgV5 - -- Reasonable for single-node in development - bhe - (BH.IndexName "nameservice") - (BH.MappingName "application-logs") - (K.permitItem K.InfoS) - K.V3 - K.registerScribe "es" esScribe K.defaultScribeSettings - =<< K.initLogEnv "nameservice" "production" bracket mkLogEnv K.closeScribes $ \le -> do + leWithScribes <- addScribesToLogEnv le cfg <- makeAppConfig metCfg { metricsAPIKey = pack <$> mApiKey , metricsPort = T.read <$> mMetricsPort } - logCfg { _logEnv = le } + logCfg { _logEnv = leWithScribes } makeAndServeApplication cfg diff --git a/hs-abci-examples/nameservice/package.yaml b/hs-abci-examples/nameservice/package.yaml index 7f9c2767..83fb0888 100644 --- a/hs-abci-examples/nameservice/package.yaml +++ b/hs-abci-examples/nameservice/package.yaml @@ -51,6 +51,7 @@ dependencies: - base >= 4.7 && < 5 - bloodhound - bytestring +- containers - data-default-class - errors - exceptions @@ -60,6 +61,9 @@ dependencies: - hs-abci-server - hs-abci-types - http-client +- katip +- katip-datadog +- katip-elasticsearch - lens - polysemy - polysemy-plugin @@ -69,8 +73,6 @@ dependencies: - proto-lens-runtime - proto3-suite - proto3-wire -- katip -- katip-elasticsearch - servant - string-conversions - text diff --git a/hs-abci-examples/nameservice/src/Nameservice/Application.hs b/hs-abci-examples/nameservice/src/Nameservice/Application.hs index 5b0dac88..f0054773 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Application.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Application.hs @@ -4,8 +4,10 @@ module Nameservice.Application , EffR , NameserviceModules , handlersContext + , addScribesToLogEnv ) where +import Control.Error (MaybeT(..), runMaybeT) import Data.Proxy import qualified Nameservice.Modules.Nameservice as N import qualified Nameservice.Modules.Token as T @@ -17,15 +19,76 @@ import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL import qualified Tendermint.SDK.BaseApp.Metrics.Prometheus as Prometheus import Tendermint.SDK.Crypto (Secp256k1) import qualified Tendermint.SDK.Modules.Auth as A +import qualified Database.V5.Bloodhound as BH +import qualified Katip as K +import qualified Katip.Scribes.ElasticSearch as ES +import qualified Network.HTTP.Client as Client +import qualified Katip.Scribes.Datadog.TCP as DD +import Data.Text (Text) +import System.Environment +import System.IO (stdout) +import Data.String.Conversions (cs) +import Data.Maybe (fromMaybe) +import Control.Arrow (Kleisli(..), (>>>), returnA) +import Control.Concurrent.MVar (MVar, newMVar) +import Data.Map.Strict (Map, empty) +import Network.ABCI.Server.Middleware.MetricsLogger (OrderedMessageType) + + +data KatipConfig = ES {host :: String, port :: String} | Console + +makeConsoleLoggingConfig :: IO KatipConfig +makeConsoleLoggingConfig = do + mEsConfig <- runMaybeT $ + ES <$> (MaybeT $ lookupEnv "ES_HOST") <*> (MaybeT $ lookupEnv "ES_PORT") + pure $ fromMaybe Console mEsConfig + +-- makes a log environment for console logs / ES logs +makeKatipScribe :: KatipConfig -> Kleisli IO K.LogEnv K.LogEnv +makeKatipScribe kcfg = Kleisli $ \le -> case kcfg of + Console -> do + handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 + K.registerScribe "stdout" handleScribe K.defaultScribeSettings le + ES {host, port} -> do + mgr <- Client.newManager Client.defaultManagerSettings + let serverAddress = "http://" <> host <> port + bloodhoundEnv = BH.mkBHEnv (BH.Server $ cs serverAddress) mgr + esScribe <- ES.mkEsScribe ES.defaultEsScribeCfgV5 bloodhoundEnv (BH.IndexName "nameservice") + (BH.MappingName "application-logs") (K.permitItem K.InfoS) K.V3 + K.registerScribe "es" esScribe K.defaultScribeSettings le + +-- makes a log environment for metrics logs +makeMetricsScribe :: Text -> Kleisli IO K.LogEnv K.LogEnv +makeMetricsScribe key = Kleisli $ \le -> do + let apiKey = DD.APIKey key + datadogScribeSettings <- DD.mkDatadogScribeSettings DD.directAPIConnectionParams (DD.DirectAuth apiKey) + scribe <- DD.mkDatadogScribe datadogScribeSettings (K.permitItem K.InfoS) K.V0 + K.registerScribe "datadog" scribe K.defaultScribeSettings le + +addScribesToLogEnv :: AppConfig -> K.LogEnv -> IO K.LogEnv +addScribesToLogEnv AppConfig{..} initialLogEnv = do + let addScribes = runKleisli $ + makeKatipScribe consoleCfg >>> maybe returnA makeMetricsScribe datadogApiKey + addScribes initialLogEnv + data AppConfig = AppConfig { baseAppContext :: BaseApp.Context + , serverMetricsMap :: MVar (Map OrderedMessageType Integer) + , datadogApiKey :: Maybe Text + , consoleLogConfig :: KatipConfig } makeAppConfig :: Prometheus.MetricsConfig -> KL.LogConfig -> IO AppConfig makeAppConfig metCfg logCfg = do c <- BaseApp.makeContext (Just metCfg) logCfg + serverMetricsMap <- newMVar empty + ddApiKey <- fmap cs <$> lookupEnv "DD_API_KEY" + consoleCfg <- makeConsoleLoggingConfig pure $ AppConfig { baseAppContext = c + , serverMetricsMap = serverMetricsMap + , datadogApiKey = ddApiKey + , consoleLogConfig = consoleCfg } -------------------------------------------------------------------------------- diff --git a/hs-abci-examples/nameservice/src/Nameservice/Server.hs b/hs-abci-examples/nameservice/src/Nameservice/Server.hs index dc5a3f1a..ec3022cf 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Server.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Server.hs @@ -1,5 +1,7 @@ module Nameservice.Server (makeAndServeApplication) where +import Data.Monoid (Endo(..)) +import Data.Foldable (fold) import Nameservice.Application (AppConfig (..), handlersContext) import Network.ABCI.Server (serveApp) @@ -13,26 +15,19 @@ import Tendermint.SDK.Application (createIOApp, import Tendermint.SDK.BaseApp (Context (..), CoreEffs, runCoreEffs) -import Tendermint.SDK.BaseApp.Metrics.Prometheus (MetricsConfig (..), - runMetricsServer) +import Tendermint.SDK.BaseApp.Metrics.Prometheus (runMetricsServer) makeAndServeApplication :: AppConfig -> IO () makeAndServeApplication AppConfig{..} = do putStrLn "Starting ABCI application..." - runMetricsServer metCfg + runMetricsServer $ contextMetricsConfig baseAppContext let nat :: forall a. Sem CoreEffs a -> IO a nat = runCoreEffs baseAppContext - application = createIOApp nat . addContextAppLoggers $ - makeApp handlersContext - serveApp =<< hookInMiddleware application - where - metCfg = contextMetricsConfig baseAppContext - apiKey = (fmap Met.ApiKey . metricsAPIKey) =<< metCfg - -- response/request use the provided log environment from CoreEffs - addContextAppLoggers = Res.mkResponseLoggerM . Req.mkRequestLoggerM - -- direct to datadog logger requires a different log environment - mkMetricMiddleware :: IO (Middleware IO) - mkMetricMiddleware = pure =<< Met.mkMetricsLogDatadog apiKey - hookInMiddleware _app = do - middleware <- mkMetricMiddleware - pure $ middleware _app + application = makeApp handlersContext + middleware :: Middleware (Sem CoreEffs) + middleware = appEndo . fold $ + [ Endo Req.mkRequestLoggerM + , Endo Res.mkResponseLoggerM + , Endo $ Met.mkMetricsLoggerM serverMetricsMap + ] + serveApp $ createIOApp nat (middleware application) diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs index 3a67db70..cf1d5317 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs @@ -8,6 +8,7 @@ module Network.ABCI.Server.Middleware.MetricsLogger , mkMetricsLoggerM -- * ApiKey , ApiKey(..) + , OrderedMessageType(..) ) where import Control.Concurrent.MVar (MVar, modifyMVar, newMVar) import Control.Monad.IO.Class (MonadIO, liftIO) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs index 6629b800..f120f1f5 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs @@ -8,6 +8,7 @@ module Tendermint.SDK.BaseApp.CoreEff , runCoreEffs ) where +import Data.Text (Text) import Control.Lens (over, view) import qualified Katip as K import Polysemy (Embed, Members, @@ -17,6 +18,7 @@ import Polysemy.Reader (Reader, asks, import Tendermint.SDK.BaseApp.Events (EventBuffer, newEventBuffer) import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL +import Katip as K import qualified Tendermint.SDK.BaseApp.Metrics.Prometheus as Prometheus import Tendermint.SDK.BaseApp.Store (MergeScopes, ResolveScope (..)) @@ -51,16 +53,27 @@ data Context = Context , contextAuthTree :: AT.AuthTreeState } -makeContext :: Maybe Prometheus.MetricsConfig -> KL.LogConfig -> IO Context -makeContext metCfg logCfg = do +makeContext :: (Text, Text) -> Maybe Prometheus.MetricsConfig -> IO Context +makeContext (environment, processName) metCfg = do authTreeState <- AT.initAuthTreeState eb <- newEventBuffer + logCfg <- mkLogConfig environment processName pure $ Context { contextLogConfig = logCfg , contextMetricsConfig = metCfg , contextEventBuffer = eb , contextAuthTree = authTreeState } + where + mkLogConfig :: Text -> Text -> IO KL.LogConfig + mkLogConfig environment processName = do + let mkLogEnv = K.initLogEnv (K.Namespace [processName]) (K.Environment environment) + le <- mkLogEnv + return $ LogConfig + { _logNamespace = mempty + , _logContext = mempty + , _logEnv = le + } instance (Members CoreEffs r, AT.AuthTreeGetter s) => ResolveScope s r where resolveScope = AT.evalTagged diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs index c7e0b01e..dd972167 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs @@ -4,7 +4,6 @@ module Tendermint.SDK.BaseApp.Logger.Katip where import Control.Lens.TH (makeLenses) import Data.String (fromString) import Data.String.Conversions (cs) -import Data.Text (Text) import qualified Katip as K import Polysemy (Sem, interpret) import Tendermint.SDK.BaseApp.Logger (Logger (..), Severity (..)) @@ -16,17 +15,6 @@ data LogConfig = LogConfig } makeLenses ''LogConfig -mkLogConfig :: Text -> Text -> IO LogConfig -mkLogConfig environment processName = do - le <- mkLogEnv - return $ LogConfig - { _logNamespace = mempty - , _logContext = mempty - , _logEnv = le - } - where - mkLogEnv = K.initLogEnv (K.Namespace [processName]) (K.Environment environment) - evalKatip :: forall r a. K.KatipContext (Sem r) From 1140afb43fc2882dd8041155e5e5feacbd1a7507 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 13:13:39 -0500 Subject: [PATCH 08/35] wip almost builds --- hs-abci-examples/nameservice/app/Main.hs | 26 ++++--- .../src/Nameservice/Application.hs | 75 ++++++++++--------- .../nameservice/src/Nameservice/Server.hs | 4 +- hs-abci-examples/simple-storage/app/Main.hs | 14 ++-- .../src/SimpleStorage/Application.hs | 7 +- .../src/Tendermint/SDK/BaseApp/CoreEff.hs | 15 ++-- .../SDK/BaseApp/Metrics/Prometheus.hs | 14 ++-- 7 files changed, 79 insertions(+), 76 deletions(-) diff --git a/hs-abci-examples/nameservice/app/Main.hs b/hs-abci-examples/nameservice/app/Main.hs index e93b02fa..8f844fe1 100644 --- a/hs-abci-examples/nameservice/app/Main.hs +++ b/hs-abci-examples/nameservice/app/Main.hs @@ -5,15 +5,17 @@ import Data.Text (pack) import qualified Database.V5.Bloodhound as BH import qualified Katip as K import qualified Katip.Scribes.ElasticSearch as ES -import Nameservice.Application (makeAppConfig) +import Nameservice.Application (AppConfig (..), + addScribesToLogEnv, + makeAppConfig) import Nameservice.Server (makeAndServeApplication) import qualified Network.HTTP.Client as Client import System.Environment (lookupEnv) import System.IO (stdout) -import Tendermint.SDK.BaseApp.Logger.Katip (LogConfig (..), - mkLogConfig) -import Tendermint.SDK.BaseApp.Metrics.Prometheus (MetricsConfig (..), - mkMetricsConfig) +import qualified Tendermint.SDK.BaseApp as BaseApp +import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL +import Tendermint.SDK.BaseApp.Metrics.Prometheus (PrometheusConfig (..), + mkPrometheusConfig) import qualified Text.Read as T main :: IO () @@ -22,13 +24,15 @@ main = do mPrometheusPort <- lookupEnv "STATS_PORT" -- Cfgs metCfg <- mkPrometheusConfig - logCfg <- mkLogConfig "dev" "nameservice" + -- logCfg <- mkLogConfig "dev" "nameservice" -- Log Environment bracket mkLogEnv K.closeScribes $ \le -> do leWithScribes <- addScribesToLogEnv le - cfg <- makeAppConfig - metCfg { metricsAPIKey = pack <$> mApiKey - , metricsPort = T.read <$> mMetricsPort - } - logCfg { _logEnv = leWithScribes } + cfg@AppConfig{..} <- makeAppConfig + metCfg { metricsPort = T.read <$> mPrometheusPort } + -- logCfg { _logEnv = leWithScribes } + let BaseApp.Context{..} = baseAppContext + logCfg = contextLogConfig { KL._logEnv = le } + newBAContext = baseAppContext { BaseApp.contextLogConfig = logCfg } + newCfg = cfg { baseAppContext = newBAContext } makeAndServeApplication cfg diff --git a/hs-abci-examples/nameservice/src/Nameservice/Application.hs b/hs-abci-examples/nameservice/src/Nameservice/Application.hs index f0054773..c4799855 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Application.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Application.hs @@ -7,40 +7,41 @@ module Nameservice.Application , addScribesToLogEnv ) where -import Control.Error (MaybeT(..), runMaybeT) +import Control.Arrow (Kleisli (..), + returnA, (>>>)) +import Control.Concurrent.MVar (MVar, newMVar) +import Control.Error (MaybeT (..), + runMaybeT) +import Data.Map.Strict (Map, empty) +import Data.Maybe (fromMaybe) import Data.Proxy -import qualified Nameservice.Modules.Nameservice as N -import qualified Nameservice.Modules.Token as T -import Tendermint.SDK.Application (HandlersContext (..), - Modules (..)) -import Tendermint.SDK.BaseApp ((:&)) -import qualified Tendermint.SDK.BaseApp as BaseApp -import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL -import qualified Tendermint.SDK.BaseApp.Metrics.Prometheus as Prometheus -import Tendermint.SDK.Crypto (Secp256k1) -import qualified Tendermint.SDK.Modules.Auth as A -import qualified Database.V5.Bloodhound as BH -import qualified Katip as K -import qualified Katip.Scribes.ElasticSearch as ES -import qualified Network.HTTP.Client as Client -import qualified Katip.Scribes.Datadog.TCP as DD -import Data.Text (Text) -import System.Environment -import System.IO (stdout) -import Data.String.Conversions (cs) -import Data.Maybe (fromMaybe) -import Control.Arrow (Kleisli(..), (>>>), returnA) -import Control.Concurrent.MVar (MVar, newMVar) -import Data.Map.Strict (Map, empty) -import Network.ABCI.Server.Middleware.MetricsLogger (OrderedMessageType) +import Data.String.Conversions (cs) +import Data.Text (Text, pack) +import qualified Database.V5.Bloodhound as BH +import qualified Katip as K +import qualified Katip.Scribes.Datadog.TCP as DD +import qualified Katip.Scribes.ElasticSearch as ES +import qualified Nameservice.Modules.Nameservice as N +import qualified Nameservice.Modules.Token as T +import Network.ABCI.Server.Middleware.MetricsLogger (OrderedMessageType) +import qualified Network.HTTP.Client as Client +import System.Environment +import System.IO (stdout) +import Tendermint.SDK.Application (HandlersContext (..), + Modules (..)) +import Tendermint.SDK.BaseApp ((:&)) +import qualified Tendermint.SDK.BaseApp as BaseApp +import qualified Tendermint.SDK.BaseApp.Metrics.Prometheus as Prometheus +import Tendermint.SDK.Crypto (Secp256k1) +import qualified Tendermint.SDK.Modules.Auth as A -data KatipConfig = ES {host :: String, port :: String} | Console +data KatipConfig = ES {host :: String, port :: String} | Console makeConsoleLoggingConfig :: IO KatipConfig makeConsoleLoggingConfig = do mEsConfig <- runMaybeT $ - ES <$> (MaybeT $ lookupEnv "ES_HOST") <*> (MaybeT $ lookupEnv "ES_PORT") + ES <$> (MaybeT $ lookupEnv "ES_HOST") <*> (MaybeT $ lookupEnv "ES_PORT") pure $ fromMaybe Console mEsConfig -- makes a log environment for console logs / ES logs @@ -67,26 +68,28 @@ makeMetricsScribe key = Kleisli $ \le -> do addScribesToLogEnv :: AppConfig -> K.LogEnv -> IO K.LogEnv addScribesToLogEnv AppConfig{..} initialLogEnv = do - let addScribes = runKleisli $ + consoleCfg <- makeConsoleLoggingConfig + let addScribes = runKleisli $ makeKatipScribe consoleCfg >>> maybe returnA makeMetricsScribe datadogApiKey addScribes initialLogEnv - + data AppConfig = AppConfig - { baseAppContext :: BaseApp.Context + { baseAppContext :: BaseApp.Context , serverMetricsMap :: MVar (Map OrderedMessageType Integer) - , datadogApiKey :: Maybe Text + , datadogApiKey :: Maybe Text , consoleLogConfig :: KatipConfig } -makeAppConfig :: Prometheus.MetricsConfig -> KL.LogConfig -> IO AppConfig -makeAppConfig metCfg logCfg = do - c <- BaseApp.makeContext (Just metCfg) logCfg +makeAppConfig :: Prometheus.PrometheusConfig -> IO AppConfig +makeAppConfig metCfg = do + ddApiKey <- fmap pack <$> lookupEnv "DD_API_KEY" serverMetricsMap <- newMVar empty - ddApiKey <- fmap cs <$> lookupEnv "DD_API_KEY" consoleCfg <- makeConsoleLoggingConfig + let withApiKeyMetCfg = metCfg { Prometheus.metricsAPIKey = ddApiKey } + c <- BaseApp.makeContext ("dev", "nameservice") (Just withApiKeyMetCfg) pure $ AppConfig { baseAppContext = c - , serverMetricsMap = serverMetricsMap + , serverMetricsMap = serverMetricsMap , datadogApiKey = ddApiKey , consoleLogConfig = consoleCfg } diff --git a/hs-abci-examples/nameservice/src/Nameservice/Server.hs b/hs-abci-examples/nameservice/src/Nameservice/Server.hs index ec3022cf..1b13d237 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Server.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Server.hs @@ -1,7 +1,7 @@ module Nameservice.Server (makeAndServeApplication) where -import Data.Monoid (Endo(..)) -import Data.Foldable (fold) +import Data.Foldable (fold) +import Data.Monoid (Endo (..)) import Nameservice.Application (AppConfig (..), handlersContext) import Network.ABCI.Server (serveApp) diff --git a/hs-abci-examples/simple-storage/app/Main.hs b/hs-abci-examples/simple-storage/app/Main.hs index 4ef4fd0e..a41040fa 100644 --- a/hs-abci-examples/simple-storage/app/Main.hs +++ b/hs-abci-examples/simple-storage/app/Main.hs @@ -1,16 +1,14 @@ module Main where -import Control.Exception (bracket) -import qualified Katip as K -import SimpleStorage.Application (makeAppConfig) -import SimpleStorage.Server (makeAndServeApplication) -import System.IO (stdout) -import Tendermint.SDK.BaseApp.Logger.Katip (LogConfig (..), - mkLogConfig) +import Control.Exception (bracket) +import qualified Katip as K +import SimpleStorage.Application (makeAppConfig) +import SimpleStorage.Server (makeAndServeApplication) +import System.IO (stdout) + main :: IO () main = do - logCfg <- mkLogConfig "dev" "simple-storage" handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 let mkLogEnv = K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) bracket mkLogEnv K.closeScribes $ \le -> do diff --git a/hs-abci-examples/simple-storage/src/SimpleStorage/Application.hs b/hs-abci-examples/simple-storage/src/SimpleStorage/Application.hs index 86fcfd1c..f34a0916 100644 --- a/hs-abci-examples/simple-storage/src/SimpleStorage/Application.hs +++ b/hs-abci-examples/simple-storage/src/SimpleStorage/Application.hs @@ -11,7 +11,6 @@ import Tendermint.SDK.Application (HandlersContext (..), Modules (..)) import Tendermint.SDK.BaseApp ((:&)) import qualified Tendermint.SDK.BaseApp as BaseApp -import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL import Tendermint.SDK.Crypto (Secp256k1) import qualified Tendermint.SDK.Modules.Auth as A @@ -19,9 +18,9 @@ data AppConfig = AppConfig { baseAppContext :: BaseApp.Context } -makeAppConfig :: KL.LogConfig -> IO AppConfig -makeAppConfig logCfg = do - c <- BaseApp.makeContext Nothing logCfg +makeAppConfig :: IO AppConfig +makeAppConfig = do + c <- BaseApp.makeContext ("dev", "simple-storage") Nothing pure $ AppConfig { baseAppContext = c } diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs index f120f1f5..1cdd2386 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/CoreEff.hs @@ -8,8 +8,8 @@ module Tendermint.SDK.BaseApp.CoreEff , runCoreEffs ) where -import Data.Text (Text) import Control.Lens (over, view) +import Data.Text (Text) import qualified Katip as K import Polysemy (Embed, Members, Sem, runM) @@ -18,7 +18,6 @@ import Polysemy.Reader (Reader, asks, import Tendermint.SDK.BaseApp.Events (EventBuffer, newEventBuffer) import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL -import Katip as K import qualified Tendermint.SDK.BaseApp.Metrics.Prometheus as Prometheus import Tendermint.SDK.BaseApp.Store (MergeScopes, ResolveScope (..)) @@ -30,7 +29,7 @@ type CoreEffs = '[ Reader EventBuffer , MergeScopes , Reader KL.LogConfig - , Reader (Maybe Prometheus.MetricsConfig) + , Reader (Maybe Prometheus.PrometheusConfig) , Reader AT.AuthTreeState , Embed IO ] @@ -48,12 +47,12 @@ instance (Members CoreEffs r) => K.KatipContext (Sem r) where -- | 'Context' is the environment required to run 'CoreEffs' to 'IO' data Context = Context { contextLogConfig :: KL.LogConfig - , contextMetricsConfig :: Maybe Prometheus.MetricsConfig + , contextMetricsConfig :: Maybe Prometheus.PrometheusConfig , contextEventBuffer :: EventBuffer , contextAuthTree :: AT.AuthTreeState } -makeContext :: (Text, Text) -> Maybe Prometheus.MetricsConfig -> IO Context +makeContext :: (Text, Text) -> Maybe Prometheus.PrometheusConfig -> IO Context makeContext (environment, processName) metCfg = do authTreeState <- AT.initAuthTreeState eb <- newEventBuffer @@ -66,10 +65,10 @@ makeContext (environment, processName) metCfg = do } where mkLogConfig :: Text -> Text -> IO KL.LogConfig - mkLogConfig environment processName = do - let mkLogEnv = K.initLogEnv (K.Namespace [processName]) (K.Environment environment) + mkLogConfig env pName = do + let mkLogEnv = K.initLogEnv (K.Namespace [pName]) (K.Environment env) le <- mkLogEnv - return $ LogConfig + return $ KL.LogConfig { _logNamespace = mempty , _logContext = mempty , _logEnv = le diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Metrics/Prometheus.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Metrics/Prometheus.hs index 09e3cc13..51c3c596 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Metrics/Prometheus.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Metrics/Prometheus.hs @@ -34,7 +34,7 @@ import Tendermint.SDK.BaseApp.Metrics (CountName (..), evalWithMetrics :: Member (Embed IO) r - => Member (Reader (Maybe MetricsConfig)) r + => Member (Reader (Maybe PrometheusConfig)) r => Sem (Metrics ': r) a -> Sem r a evalWithMetrics action = do @@ -154,7 +154,7 @@ data MetricsState = MetricsState -- | Core metrics config type Port = Int -data MetricsConfig = MetricsConfig +data PrometheusConfig = PrometheusConfig { metricsState :: MetricsState , metricsPort :: Maybe Port , metricsAPIKey :: Maybe Text @@ -181,20 +181,20 @@ emptyState = do registry <- Registry.new return $ MetricsState registry counters histos -mkMetricsConfig :: IO MetricsConfig -mkMetricsConfig = do +mkPrometheusConfig :: IO PrometheusConfig +mkPrometheusConfig = do state <- emptyState - return $ MetricsConfig state Nothing Nothing + return $ PrometheusConfig state Nothing Nothing runMetricsServer :: MonadIO m - => Maybe MetricsConfig + => Maybe PrometheusConfig -> m () runMetricsServer mMetCfg = liftIO $ do case mMetCfg of Nothing -> return () Just metCfg -> do - let MetricsConfig{..} = metCfg + let PrometheusConfig{..} = metCfg MetricsState{..} = metricsState case metricsPort of Nothing -> return () From b29682efe1360302c61615fb0e108ac2106f4ac6 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 13:56:04 -0500 Subject: [PATCH 09/35] builds --- hs-abci-examples/nameservice/app/Main.hs | 22 ++++++------------ hs-abci-examples/simple-storage/app/Main.hs | 25 +++++++++++++-------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/hs-abci-examples/nameservice/app/Main.hs b/hs-abci-examples/nameservice/app/Main.hs index 8f844fe1..fed8741e 100644 --- a/hs-abci-examples/nameservice/app/Main.hs +++ b/hs-abci-examples/nameservice/app/Main.hs @@ -1,17 +1,12 @@ module Main where import Control.Exception (bracket) -import Data.Text (pack) -import qualified Database.V5.Bloodhound as BH import qualified Katip as K -import qualified Katip.Scribes.ElasticSearch as ES import Nameservice.Application (AppConfig (..), addScribesToLogEnv, makeAppConfig) import Nameservice.Server (makeAndServeApplication) -import qualified Network.HTTP.Client as Client import System.Environment (lookupEnv) -import System.IO (stdout) import qualified Tendermint.SDK.BaseApp as BaseApp import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL import Tendermint.SDK.BaseApp.Metrics.Prometheus (PrometheusConfig (..), @@ -20,19 +15,16 @@ import qualified Text.Read as T main :: IO () main = do - -- Env vars mPrometheusPort <- lookupEnv "STATS_PORT" - -- Cfgs metCfg <- mkPrometheusConfig - -- logCfg <- mkLogConfig "dev" "nameservice" -- Log Environment + cfg@AppConfig{..} <- makeAppConfig + metCfg { metricsPort = T.read <$> mPrometheusPort } + let BaseApp.Context{..} = baseAppContext + mkLogEnv = return . KL._logEnv $ contextLogConfig bracket mkLogEnv K.closeScribes $ \le -> do - leWithScribes <- addScribesToLogEnv le - cfg@AppConfig{..} <- makeAppConfig - metCfg { metricsPort = T.read <$> mPrometheusPort } - -- logCfg { _logEnv = leWithScribes } - let BaseApp.Context{..} = baseAppContext - logCfg = contextLogConfig { KL._logEnv = le } + leWithScribes <- addScribesToLogEnv cfg le + let logCfg = contextLogConfig { KL._logEnv = leWithScribes } newBAContext = baseAppContext { BaseApp.contextLogConfig = logCfg } newCfg = cfg { baseAppContext = newBAContext } - makeAndServeApplication cfg + makeAndServeApplication newCfg diff --git a/hs-abci-examples/simple-storage/app/Main.hs b/hs-abci-examples/simple-storage/app/Main.hs index a41040fa..bed25f56 100644 --- a/hs-abci-examples/simple-storage/app/Main.hs +++ b/hs-abci-examples/simple-storage/app/Main.hs @@ -1,16 +1,23 @@ module Main where -import Control.Exception (bracket) -import qualified Katip as K -import SimpleStorage.Application (makeAppConfig) -import SimpleStorage.Server (makeAndServeApplication) -import System.IO (stdout) - +import Control.Exception (bracket) +import qualified Katip as K +import SimpleStorage.Application (AppConfig (..), + makeAppConfig) +import SimpleStorage.Server (makeAndServeApplication) +import System.IO (stdout) +import qualified Tendermint.SDK.BaseApp as BaseApp +import qualified Tendermint.SDK.BaseApp.Logger.Katip as KL main :: IO () main = do + cfg@AppConfig{..} <- makeAppConfig -- logCfg {_logEnv = le} handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 - let mkLogEnv = K.registerScribe "stdout" handleScribe K.defaultScribeSettings (_logEnv logCfg) + let BaseApp.Context{..} = baseAppContext + mkLogEnv = K.registerScribe "stdout" handleScribe K.defaultScribeSettings + (KL._logEnv contextLogConfig) bracket mkLogEnv K.closeScribes $ \le -> do - cfg <- makeAppConfig logCfg {_logEnv = le} - makeAndServeApplication cfg + let newLogConfig = contextLogConfig { KL._logEnv = le } + newContext = baseAppContext { BaseApp.contextLogConfig = newLogConfig } + newCfg = cfg { baseAppContext = newContext } + makeAndServeApplication newCfg From 1623d9bb0e9796a4d2922c8a1c493ceaa176dd2b Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 14:35:30 -0500 Subject: [PATCH 10/35] config verbosity levels --- .../src/Nameservice/Application.hs | 24 ++++++++++--------- .../ABCI/Server/Middleware/MetricsLogger.hs | 3 ++- .../ABCI/Server/Middleware/RequestLogger.hs | 5 ++-- .../ABCI/Server/Middleware/ResponseLogger.hs | 4 ++-- .../Tendermint/SDK/BaseApp/Logger/Katip.hs | 4 +++- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Application.hs b/hs-abci-examples/nameservice/src/Nameservice/Application.hs index c4799855..3c4a4378 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Application.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Application.hs @@ -46,17 +46,19 @@ makeConsoleLoggingConfig = do -- makes a log environment for console logs / ES logs makeKatipScribe :: KatipConfig -> Kleisli IO K.LogEnv K.LogEnv -makeKatipScribe kcfg = Kleisli $ \le -> case kcfg of - Console -> do - handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) K.V2 - K.registerScribe "stdout" handleScribe K.defaultScribeSettings le - ES {host, port} -> do - mgr <- Client.newManager Client.defaultManagerSettings - let serverAddress = "http://" <> host <> port - bloodhoundEnv = BH.mkBHEnv (BH.Server $ cs serverAddress) mgr - esScribe <- ES.mkEsScribe ES.defaultEsScribeCfgV5 bloodhoundEnv (BH.IndexName "nameservice") - (BH.MappingName "application-logs") (K.permitItem K.InfoS) K.V3 - K.registerScribe "es" esScribe K.defaultScribeSettings le +makeKatipScribe kcfg = Kleisli $ \le -> + let verbosity = K.V0 + in case kcfg of + Console -> do + handleScribe <- K.mkHandleScribe K.ColorIfTerminal stdout (K.permitItem K.DebugS) verbosity + K.registerScribe "stdout" handleScribe K.defaultScribeSettings le + ES {host, port} -> do + mgr <- Client.newManager Client.defaultManagerSettings + let serverAddress = "http://" <> host <> ":" <> port + bloodhoundEnv = BH.mkBHEnv (BH.Server $ cs serverAddress) mgr + esScribe <- ES.mkEsScribe ES.defaultEsScribeCfgV5 bloodhoundEnv (BH.IndexName "nameservice") + (BH.MappingName "application-logs") (K.permitItem K.DebugS) verbosity + K.registerScribe "es" esScribe K.defaultScribeSettings le -- makes a log environment for metrics logs makeMetricsScribe :: Text -> Kleisli IO K.LogEnv K.LogEnv diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs index cf1d5317..30457a28 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/MetricsLogger.hs @@ -104,7 +104,8 @@ mkMetricsLoggerM mvarMap (App app) = App $ \ req -> do metrics = Metrics mt count (diffUTCTime endTime startTime) newMetMap = Map.insert mt count metMap in pure (newMetMap, metrics) - logMetrics metrics + localKatipNamespace (<> "server") $ + logMetrics metrics pure res --------------------------------------------------------------------------- diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index c46edc5e..284abc48 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -26,8 +26,9 @@ instance ToObject (Loggable (Request (t :: MessageType))) where _ -> error "Contract violation: `toJSON` of any `Request t` must result with json object" instance LogItem (Loggable (Request (t :: MessageType))) where - payloadKeys V0 _ = SomeKeys ["type"] - payloadKeys _ _ = AllKeys + payloadKeys V3 _ = AllKeys + payloadKeys _ _ = SomeKeys ["type"] + --------------------------------------------------------------------------- -- mkLogStdout diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 79603478..8176ab9a 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -25,8 +25,8 @@ instance ToObject (Loggable (Response (t :: MessageType))) where _ -> error "Contract violation: `toJSON` of any `Response t` must result with json object" instance LogItem (Loggable (Response (t :: MessageType))) where - payloadKeys V0 _ = SomeKeys ["type"] - payloadKeys _ _ = AllKeys + payloadKeys V3 _ = AllKeys + payloadKeys _ _ = SomeKeys ["type"] --------------------------------------------------------------------------- -- mkLogStdout diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs index dd972167..01fded94 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs @@ -22,7 +22,9 @@ evalKatip -> Sem r a evalKatip = do interpret (\case - Log severity msg -> K.logFM (coerceSeverity severity) (fromString . cs $ msg) + Log severity msg -> + K.localKatipNamespace (<> "application") $ + K.logFM (coerceSeverity severity) (fromString . cs $ msg) ) where coerceSeverity :: Severity -> K.Severity From 1ba4a35608913bfdcfae98bcbcbaaec9dfabb264 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 16:16:16 -0500 Subject: [PATCH 11/35] add addContext summand --- .../src/Tendermint/SDK/BaseApp/Logger.hs | 16 ++++++-- .../Tendermint/SDK/BaseApp/Logger/Katip.hs | 38 ++++++++++++++++--- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index 5c14d96b..23c5e93d 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -3,17 +3,27 @@ module Tendermint.SDK.BaseApp.Logger ( Logger(..) , Tendermint.SDK.BaseApp.Logger.log + , addContext + , LogSelect(..) + , Select(..) , Severity(..) + , Verbosity(..) ) where -import Data.Text (Text) -import Polysemy (makeSem) +import Data.Aeson (ToJSON) +import Data.Text (Text) +import Polysemy (makeSem) data Severity = Debug | Info | Warning | Error | Exception deriving (Eq, Ord) +data LogSelect = All | Some [Text] +data Verbosity = V0 | V1 | V2 | V3 + +class Select a where + select :: Verbosity -> a -> LogSelect -- | Effect allowing for console logging. data Logger m a where Log :: Severity -> Text -> Logger m () - -- AddContext :: Object -> m a -> Logger m a + AddContext :: (Select x, ToJSON x) => x -> m a -> Logger m a makeSem ''Logger diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs index 01fded94..d85b750f 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs @@ -5,8 +5,32 @@ import Control.Lens.TH (makeLenses) import Data.String (fromString) import Data.String.Conversions (cs) import qualified Katip as K -import Polysemy (Sem, interpret) -import Tendermint.SDK.BaseApp.Logger (Logger (..), Severity (..)) +import Polysemy (Sem, interpretH, pureT, runT, raise) +import Tendermint.SDK.BaseApp.Logger +import qualified Data.Aeson as A + +newtype Object a = Object a + +instance Select a => Select (Object a) where + select v (Object x) = select v x + +instance A.ToJSON a => K.ToObject (Object a) where + toObject (Object a) = case A.toJSON a of + A.Object o -> o + _ -> error "some error relating to objects" + +instance (A.ToJSON a, Select a) => K.LogItem (Object a) where + payloadKeys = interpretFromSelect + where + interpretFromSelect kVerbosity obj = + let selectRes = select (kVerbToVerb kVerbosity) obj + in case selectRes of + All -> K.AllKeys + Some ts -> K.SomeKeys ts + kVerbToVerb K.V0 = V0 + kVerbToVerb K.V1 = V1 + kVerbToVerb K.V2 = V2 + kVerbToVerb K.V3 = V3 data LogConfig = LogConfig { _logNamespace :: K.Namespace @@ -21,10 +45,14 @@ evalKatip => Sem (Logger ': r) a -> Sem r a evalKatip = do - interpret (\case - Log severity msg -> - K.localKatipNamespace (<> "application") $ + interpretH (\case + Log severity msg -> do + raise $ K.localKatipNamespace (<> "application") $ K.logFM (coerceSeverity severity) (fromString . cs $ msg) + pureT () + AddContext obj action -> do + a <- runT action + raise $ K.katipAddContext (Object obj) (evalKatip a) ) where coerceSeverity :: Severity -> K.Severity From 7297235a0124349a8dcb8e4e81e54188f3bc3a11 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 16:17:47 -0500 Subject: [PATCH 12/35] stylish --- hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs index d85b750f..dd1bb810 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs @@ -2,12 +2,13 @@ module Tendermint.SDK.BaseApp.Logger.Katip where import Control.Lens.TH (makeLenses) +import qualified Data.Aeson as A import Data.String (fromString) import Data.String.Conversions (cs) import qualified Katip as K -import Polysemy (Sem, interpretH, pureT, runT, raise) +import Polysemy (Sem, interpretH, pureT, raise, + runT) import Tendermint.SDK.BaseApp.Logger -import qualified Data.Aeson as A newtype Object a = Object a @@ -25,7 +26,7 @@ instance (A.ToJSON a, Select a) => K.LogItem (Object a) where interpretFromSelect kVerbosity obj = let selectRes = select (kVerbToVerb kVerbosity) obj in case selectRes of - All -> K.AllKeys + All -> K.AllKeys Some ts -> K.SomeKeys ts kVerbToVerb K.V0 = V0 kVerbToVerb K.V1 = V1 From 2d4cfaaa3e503d22116b8894c9beab1a41190316 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 19 Dec 2019 17:18:55 -0500 Subject: [PATCH 13/35] use addContext in nameservice --- .../Nameservice/Modules/Nameservice/Keeper.hs | 65 +++++++++++-------- .../Nameservice/Modules/Nameservice/Types.hs | 6 ++ .../ABCI/Server/Middleware/RequestLogger.hs | 3 +- .../ABCI/Server/Middleware/ResponseLogger.hs | 3 +- hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs | 4 ++ .../Tendermint/SDK/BaseApp/Logger/Katip.hs | 2 +- 6 files changed, 54 insertions(+), 29 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs index df9ad693..6bd75887 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs @@ -9,7 +9,7 @@ import Nameservice.Modules.Nameservice.Messages import Nameservice.Modules.Nameservice.Types import Nameservice.Modules.Token (Token, TokenEffs, burn, mint, transfer) -import Polysemy (Member, Members, Sem, +import Polysemy (Members, Sem, interpret, makeSem) import Polysemy.Error (Error, mapError, throw) @@ -50,7 +50,7 @@ eval = mapError BaseApp.makeAppError . evalNameservice -------------------------------------------------------------------------------- setName - :: Member (Output BaseApp.Event) r + :: Members [BaseApp.Logger, Output BaseApp.Event] r => Members NameserviceEffs r => SetName -> Sem r () @@ -63,14 +63,17 @@ setName SetName{..} = do then throw $ UnauthorizedSet "Setter must be the owner of the Name." else do putWhois setNameName currentWhois {whoisValue = setNameValue} - BaseApp.emit NameRemapped - { nameRemappedName = setNameName - , nameRemappedNewValue = setNameValue - , nameRemappedOldValue = whoisValue - } + let event = NameRemapped + { nameRemappedName = setNameName + , nameRemappedNewValue = setNameValue + , nameRemappedOldValue = whoisValue + } + BaseApp.emit event + BaseApp.addContext event $ + BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameRemapped)) deleteName - :: Members [Token, Output BaseApp.Event] r + :: Members [BaseApp.Logger, Token, Output BaseApp.Event] r => Members NameserviceEffs r => DeleteName -> Sem r () @@ -84,13 +87,16 @@ deleteName DeleteName{..} = do else do mint deleteNameOwner whoisPrice deleteWhois deleteNameName - BaseApp.emit NameDeleted - { nameDeletedName = deleteNameName - } + let event = NameDeleted + { nameDeletedName = deleteNameName + } + BaseApp.emit event + BaseApp.addContext event $ + BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameDeleted)) buyName - :: Member (Output BaseApp.Event) r + :: Members [BaseApp.Logger, Output BaseApp.Event] r => Members TokenEffs r => Members NameserviceEffs r => BuyName @@ -108,7 +114,7 @@ buyName msg = do Just whois -> buyClaimedName msg whois where buyUnclaimedName - :: Member (Output BaseApp.Event) r + :: Members [BaseApp.Logger, Output BaseApp.Event] r => Members TokenEffs r => Members NameserviceEffs r => BuyName @@ -121,17 +127,21 @@ buyName msg = do , whoisPrice = buyNameBid } putWhois buyNameName whois - BaseApp.emit NameClaimed - { nameClaimedOwner = buyNameBuyer - , nameClaimedName = buyNameName - , nameClaimedValue = buyNameValue - , nameClaimedBid = buyNameBid - } + let event = NameClaimed + { nameClaimedOwner = buyNameBuyer + , nameClaimedName = buyNameName + , nameClaimedValue = buyNameValue + , nameClaimedBid = buyNameBid + } + BaseApp.emit event + BaseApp.addContext event $ + BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) + buyClaimedName :: Members NameserviceEffs r => Members TokenEffs r - => Member (Output BaseApp.Event) r + => Members [BaseApp.Logger, Output BaseApp.Event] r => BuyName -> Whois -> Sem r () @@ -145,11 +155,14 @@ buyName msg = do , whoisPrice = buyNameBid , whoisValue = buyNameValue } - BaseApp.emit NameClaimed - { nameClaimedOwner = buyNameBuyer - , nameClaimedName = buyNameName - , nameClaimedValue = buyNameValue - , nameClaimedBid = buyNameBid - } + let event = NameClaimed + { nameClaimedOwner = buyNameBuyer + , nameClaimedName = buyNameName + , nameClaimedValue = buyNameValue + , nameClaimedBid = buyNameBid + } + BaseApp.emit event + BaseApp.addContext event $ + BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) else throw (InsufficientBid "Bid must exceed the price.") diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs index b8c9d3ea..9ebfc2ed 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs @@ -107,6 +107,8 @@ instance FromJSON NameClaimed where instance BaseApp.ToEvent NameClaimed where makeEventType _ = "NameClaimed" instance BaseApp.FromEvent NameClaimed +instance BaseApp.Select NameClaimed where + select _ _ = BaseApp.All data NameRemapped = NameRemapped { nameRemappedName :: Name @@ -124,6 +126,8 @@ instance FromJSON NameRemapped where instance BaseApp.ToEvent NameRemapped where makeEventType _ = "NameRemapped" instance BaseApp.FromEvent NameRemapped +instance BaseApp.Select NameRemapped where + select _ _ = BaseApp.All data NameDeleted = NameDeleted { nameDeletedName :: Name @@ -139,3 +143,5 @@ instance FromJSON NameDeleted where instance BaseApp.ToEvent NameDeleted where makeEventType _ = "NameDeleted" instance BaseApp.FromEvent NameDeleted +instance BaseApp.Select NameDeleted where + select _ _ = BaseApp.All diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index 284abc48..6fd1572e 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -80,4 +80,5 @@ mkRequestLoggerM (App app) = App $ \ req -> logRequest req >> app req --------------------------------------------------------------------------- -- | Request logger function. logRequest :: (KatipContext m) => Request t -> m () -logRequest req = katipAddContext (Loggable req) $ logFM InfoS "Request Received" +logRequest req = katipAddNamespace "server" $ + katipAddContext (Loggable req) $ logFM InfoS "Request Received" diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 8176ab9a..5879c8c3 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -82,4 +82,5 @@ mkResponseLoggerM (App app) = App $ \ req -> do --------------------------------------------------------------------------- -- | Response logger function. logResponse :: (KatipContext m) => Response t -> m () -logResponse req = katipAddContext (Loggable req) $ logFM InfoS "Response Received" +logResponse req = katipAddNamespace "server" $ + katipAddContext (Loggable req) $ logFM InfoS "Response Received" diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs index e0ecd314..1eab74c1 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs @@ -40,7 +40,11 @@ module Tendermint.SDK.BaseApp -- * Logger , Logger , Tendermint.SDK.BaseApp.Logger.log + , addContext + , LogSelect(..) , Severity(..) + , Select(..) + , Verbosity(..) -- * Metrics , Metrics diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs index dd1bb810..484a7bf3 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger/Katip.hs @@ -18,7 +18,7 @@ instance Select a => Select (Object a) where instance A.ToJSON a => K.ToObject (Object a) where toObject (Object a) = case A.toJSON a of A.Object o -> o - _ -> error "some error relating to objects" + _ -> mempty instance (A.ToJSON a, Select a) => K.LogItem (Object a) where payloadKeys = interpretFromSelect From 572d06781c9ce54b7f2f395100c14b42367e7124 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 11:43:57 -0500 Subject: [PATCH 14/35] add datadog logs and elk installation instructions --- hs-abci-examples/nameservice/README.md | 114 ++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 2 deletions(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 363571ab..962e959d 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -1,6 +1,6 @@ # nameservice -## Metrics +## Metrics via Prometheus Run `nameservice` via the `Makefile`: @@ -8,7 +8,7 @@ Run `nameservice` via the `Makefile`: make deploy-nameservice-local ``` -Along with running `nameservice`, this also starts a Prometheus] metrics server. +Along with running `nameservice`, this also starts a Prometheus metrics server. By default, the metrics server runs on `localhost:9200`. To use a different port, set the `STATS_PORT` environment variable to the desired port value. @@ -16,8 +16,118 @@ To see these metrics in Datadog, follow the [Prometheus host config instructions](https://docs.datadoghq.com/getting_started/integrations/prometheus/?tab=host#pagetitle) to configure a local Datadog agent to scrape the endpoint. +At minimum, to scrape all `nameservice` prometheus metrics, the appropriate `conf.yaml` (described above) +should be use the following settings: + +```yaml +init_config: + +instances: + + - prometheus_url: http://localhost:9200/metrics + ## namespace option prefixes all metric names in datadog + namespace: nameservice + ## metrics names used in the nameservice app + metrics: + - count_buy + - count_set + - count_delete + - histogram_buy* + - histogram_set* + - histogram_delete* +``` + Alternatively, use the `docker-compose` command: ``` make deploy-nameservice-docker ``` + +Once the `nameservice` server is running, start a Tendermint node: + +```bash +> tendermint init +> tendermint node +``` + +Then run the `nameservice` tests: + +```bash +make test-nameservice +``` + +Once the test run is completed, you should now be able to view metrics +on [Datadog's metrics explorer](https://app.datadoghq.com/metric/explorer). +Firstly, ensure that the prometheus server is populated with metrics by +visiting `localhost:9200` in a browser. You should see something like this: + +``` +# TYPE count_buy counter +count_buy 4 +# TYPE count_delete counter +count_delete 1 +# TYPE count_set counter +count_set 2 +# TYPE histogram_buy histogram +histogram_buy_bucket{le="1.0e-4"} 0.0 +... +# TYPE histogram_delete histogram +histogram_delete_bucket{le="1.0e-4"} 0.0 +... +# TYPE histogram_set histogram +histogram_set_bucket{le="1.0e-4"} 0.0 +... +``` + +In Datadog's metrics explorer, you should be able to search for metrics +prefixed with the `namespace` value set in your agent's config. + +## Alternative Logging + +In addition to Prometheus metrics, the `nameservice` app includes options for +logging to Elasticsearch (ES) and direct to Datadog metrics logging. By default, the app +logs to the console via Katip's context logger: + +``` +[2019-12-20 16:19:27][nameservice.server][Info][local][PID 89617][ThreadId 21][type:info] Request Received +[2019-12-20 16:19:27][nameservice.server][Info][local][PID 89617][ThreadId 21][message_type:info][response_time:2.6e-5][message_count:1] +``` + +These logs include request/response info and as well some metric logging. + +Alternatively, the app is set up to log the same information to Elastic search +and Datadog by setting the following environment variables: + +```bash +DD_API_KEY ## Datadog API key +ES_HOST ## Elasticsearch server host +ES_PORT ## Elasticsearch server port +``` + +We recommend using the [ELK (v683) docker image](https://hub.docker.com/r/sebp/elk/tags) +to run an ES server and Kibana to search and filter incoming logs. + +```bash +> docker pull sebp/elk:683 +> docker run -p 5601:5601 -p 9201:9200 -p 5044:5044 -it --name elk sebp/elk:683 +``` + +This command remaps the `ES_PORT` value from `9200` to `9201` to avoid collision with +the Prometheus server that `nameservice` runs by default. Kibana runs on port `5601`. + +After both Kibana and ES are running, start `nameservice` and a Tendermint node +via the commands: + +```bash +> DD_API_KEY= ES_HOST=localhost ES_PORT=9201 make deploy-nameservice +> tendermint init +> tendermint node +``` + +You should no longer see logs on the console. Instead, you should be able to see metrics +logs on [Datadog's log explorer](https://app.datadoghq.com/logs). On Kibana, go to +`Management > Kibana > Index Patterns` and create an index pattern for `nameservice` by +simply typing its name. To view the logs in this index, you should be able to go to +`Machine Learnine > Data Visualization` and select the `nameservice` index pattern you +just created. You should now see both metrics and some stats on specific `nameservice` +log fields. From 70cd67a405b22c7b86d4a6aaf1cafeab97568c44 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 13:21:37 -0500 Subject: [PATCH 15/35] es --- hs-abci-examples/nameservice/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 962e959d..fa45e85e 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -95,7 +95,7 @@ logs to the console via Katip's context logger: These logs include request/response info and as well some metric logging. -Alternatively, the app is set up to log the same information to Elastic search +Alternatively, the app is set up to log the same information to ES and Datadog by setting the following environment variables: ```bash From e0f139a79bd0e0d874045812c4e4d4b28a4584c7 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 13:21:50 -0500 Subject: [PATCH 16/35] add contextevent type to add event type field for logs --- .../src/Nameservice/Modules/Nameservice/Keeper.hs | 8 ++++---- .../src/Nameservice/Modules/Nameservice/Types.hs | 13 +++++++++++++ .../Network/ABCI/Server/Middleware/RequestLogger.hs | 2 +- .../ABCI/Server/Middleware/ResponseLogger.hs | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs index 6bd75887..7e5b21fa 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs @@ -69,7 +69,7 @@ setName SetName{..} = do , nameRemappedOldValue = whoisValue } BaseApp.emit event - BaseApp.addContext event $ + BaseApp.addContext (ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameRemapped)) deleteName @@ -91,7 +91,7 @@ deleteName DeleteName{..} = do { nameDeletedName = deleteNameName } BaseApp.emit event - BaseApp.addContext event $ + BaseApp.addContext (ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameDeleted)) @@ -134,7 +134,7 @@ buyName msg = do , nameClaimedBid = buyNameBid } BaseApp.emit event - BaseApp.addContext event $ + BaseApp.addContext (ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) @@ -162,7 +162,7 @@ buyName msg = do , nameClaimedBid = buyNameBid } BaseApp.emit event - BaseApp.addContext event $ + BaseApp.addContext (ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) else throw (InsufficientBid "Bid must exceed the price.") diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs index 9ebfc2ed..2580d2b8 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs @@ -3,6 +3,7 @@ module Nameservice.Modules.Nameservice.Types where import Control.Lens (iso) import Data.Aeson as A import Data.Bifunctor (first) +import Data.Proxy import Data.String.Conversions (cs) import Data.Text (Text) import qualified Data.Text.Lazy as TL @@ -145,3 +146,15 @@ instance BaseApp.ToEvent NameDeleted where instance BaseApp.FromEvent NameDeleted instance BaseApp.Select NameDeleted where select _ _ = BaseApp.All + +newtype ContextEvent t = ContextEvent t + +instance (ToJSON a, BaseApp.ToEvent a) => ToJSON (ContextEvent a) where + toJSON (ContextEvent a) = + let eventJson = toJSON a + eventName = BaseApp.makeEventType (Proxy :: Proxy a) + in A.object [ "event_type" A..= eventName, "event" A..= eventJson ] +instance FromJSON a => FromJSON (ContextEvent a) where + parseJSON = undefined +instance BaseApp.Select a => BaseApp.Select (ContextEvent a) where + select v (ContextEvent a) = BaseApp.select v a diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index 6fd1572e..01fb705c 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -27,7 +27,7 @@ instance ToObject (Loggable (Request (t :: MessageType))) where instance LogItem (Loggable (Request (t :: MessageType))) where payloadKeys V3 _ = AllKeys - payloadKeys _ _ = SomeKeys ["type"] + payloadKeys _ _ = SomeKeys ["type", "event_type"] --------------------------------------------------------------------------- diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 5879c8c3..8e191cdc 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -26,7 +26,7 @@ instance ToObject (Loggable (Response (t :: MessageType))) where instance LogItem (Loggable (Response (t :: MessageType))) where payloadKeys V3 _ = AllKeys - payloadKeys _ _ = SomeKeys ["type"] + payloadKeys _ _ = SomeKeys ["type", "event_type"] --------------------------------------------------------------------------- -- mkLogStdout From 107659abeec85c2d340634eceffe503a63927676 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 15:18:04 -0500 Subject: [PATCH 17/35] use local namespace in res/req middleware --- .../src/Network/ABCI/Server/Middleware/RequestLogger.hs | 2 +- .../src/Network/ABCI/Server/Middleware/ResponseLogger.hs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index 01fb705c..e9754ab8 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -80,5 +80,5 @@ mkRequestLoggerM (App app) = App $ \ req -> logRequest req >> app req --------------------------------------------------------------------------- -- | Request logger function. logRequest :: (KatipContext m) => Request t -> m () -logRequest req = katipAddNamespace "server" $ +logRequest req = localKatipNamespace (<> "server") $ katipAddContext (Loggable req) $ logFM InfoS "Request Received" diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 8e191cdc..21099a87 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -82,5 +82,5 @@ mkResponseLoggerM (App app) = App $ \ req -> do --------------------------------------------------------------------------- -- | Response logger function. logResponse :: (KatipContext m) => Response t -> m () -logResponse req = katipAddNamespace "server" $ +logResponse req = localKatipNamespace (<> "server") $ katipAddContext (Loggable req) $ logFM InfoS "Response Received" From 5f3f2326818b9d7f7efab4c1b49f40bb7d2ad03a Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 16:04:44 -0500 Subject: [PATCH 18/35] test image --- hs-abci-examples/nameservice/README.md | 16 ++++++++-------- .../nameservice/images/create-index.png | Bin 0 -> 152455 bytes .../nameservice/images/kibana-discover.png | Bin 0 -> 68569 bytes .../nameservice/images/kibana-management.png | Bin 0 -> 69017 bytes .../nameservice/images/logs-tab.png | Bin 0 -> 49792 bytes .../nameservice/images/prometheus-metrics.png | Bin 0 -> 74945 bytes 6 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 hs-abci-examples/nameservice/images/create-index.png create mode 100644 hs-abci-examples/nameservice/images/kibana-discover.png create mode 100644 hs-abci-examples/nameservice/images/kibana-management.png create mode 100644 hs-abci-examples/nameservice/images/logs-tab.png create mode 100644 hs-abci-examples/nameservice/images/prometheus-metrics.png diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index fa45e85e..f718032f 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -26,7 +26,7 @@ instances: - prometheus_url: http://localhost:9200/metrics ## namespace option prefixes all metric names in datadog - namespace: nameservice + namespace: prometheus ## metrics names used in the nameservice app metrics: - count_buy @@ -80,7 +80,9 @@ histogram_set_bucket{le="1.0e-4"} 0.0 ``` In Datadog's metrics explorer, you should be able to search for metrics -prefixed with the `namespace` value set in your agent's config. +prefixed with the `prometheus` value set in your agent's config. + + ## Alternative Logging @@ -125,9 +127,7 @@ via the commands: ``` You should no longer see logs on the console. Instead, you should be able to see metrics -logs on [Datadog's log explorer](https://app.datadoghq.com/logs). On Kibana, go to -`Management > Kibana > Index Patterns` and create an index pattern for `nameservice` by -simply typing its name. To view the logs in this index, you should be able to go to -`Machine Learnine > Data Visualization` and select the `nameservice` index pattern you -just created. You should now see both metrics and some stats on specific `nameservice` -log fields. +logs on [Datadog's log explorer](https://app.datadoghq.com/logs). + +On Kibana, go to `Management` and create an index pattern for `nameservice`: + diff --git a/hs-abci-examples/nameservice/images/create-index.png b/hs-abci-examples/nameservice/images/create-index.png new file mode 100644 index 0000000000000000000000000000000000000000..399e4739760af5848a691861e433f98ab514d8d1 GIT binary patch literal 152455 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 e7P*=A&1bJM65}+_`)mULUAtmKvY3~30$dE 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�Qo^zF?erK3@flQXZaQ?UP}P!?7` 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 literal 0 HcmV?d00001 diff --git a/hs-abci-examples/nameservice/images/kibana-management.png b/hs-abci-examples/nameservice/images/kibana-management.png new file mode 100644 index 0000000000000000000000000000000000000000..584558de21cc93b4242b0fd75c923c574fd774bd GIT binary patch literal 69017 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 literal 0 HcmV?d00001 diff --git a/hs-abci-examples/nameservice/images/logs-tab.png b/hs-abci-examples/nameservice/images/logs-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..58e8376f1657d57c84ff0be4ac565c4fea7072c3 GIT binary patch literal 49792 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 bz!!Ieeq`ueu0&-Iz>ln?l0?Zn1Ni>|P7;~| literal 0 HcmV?d00001 diff --git a/hs-abci-examples/nameservice/images/prometheus-metrics.png b/hs-abci-examples/nameservice/images/prometheus-metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..eeecdae00ace84f1ee8558249f4bfa05bb58ce14 GIT binary patch literal 74945 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 F{{YcBpF98n literal 0 HcmV?d00001 From 9cb37c7f7541fe9d7f80b48aa4aa687e58ce846f Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 16:12:25 -0500 Subject: [PATCH 19/35] update readme --- hs-abci-examples/nameservice/README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index f718032f..80b21ef3 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -82,7 +82,7 @@ histogram_set_bucket{le="1.0e-4"} 0.0 In Datadog's metrics explorer, you should be able to search for metrics prefixed with the `prometheus` value set in your agent's config. - + ## Alternative Logging @@ -129,5 +129,14 @@ via the commands: You should no longer see logs on the console. Instead, you should be able to see metrics logs on [Datadog's log explorer](https://app.datadoghq.com/logs). -On Kibana, go to `Management` and create an index pattern for `nameservice`: + +On Kibana, go to `Management` and create a Kibana index pattern for `nameservice`: + + + + + +Finally, under the `Discover`, you should be able to add filters to view specific logs: + + From c0c28e620f00eab669fc3eef732aaa5721b1e68d Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 16:14:04 -0500 Subject: [PATCH 20/35] adjust vertical screenshots --- hs-abci-examples/nameservice/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 80b21ef3..0a274e5f 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -129,14 +129,14 @@ via the commands: You should no longer see logs on the console. Instead, you should be able to see metrics logs on [Datadog's log explorer](https://app.datadoghq.com/logs). - + On Kibana, go to `Management` and create a Kibana index pattern for `nameservice`: - + Finally, under the `Discover`, you should be able to add filters to view specific logs: - + From 32187a16b6d888c5e263bee947f8271e1ead98f0 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 16:16:56 -0500 Subject: [PATCH 21/35] use different images --- hs-abci-examples/nameservice/README.md | 6 +++--- .../nameservice/images/kibana-discover.png | Bin 68569 -> 6361 bytes .../nameservice/images/kibana-management.png | Bin 69017 -> 7203 bytes .../nameservice/images/logs-tab.png | Bin 49792 -> 4793 bytes 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 0a274e5f..80b21ef3 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -129,14 +129,14 @@ via the commands: You should no longer see logs on the console. Instead, you should be able to see metrics logs on [Datadog's log explorer](https://app.datadoghq.com/logs). - + On Kibana, go to `Management` and create a Kibana index pattern for `nameservice`: - + Finally, under the `Discover`, you should be able to add filters to view specific logs: - + diff --git a/hs-abci-examples/nameservice/images/kibana-discover.png b/hs-abci-examples/nameservice/images/kibana-discover.png index e5f3b4279492ad64a13bf9280899c72a31214186..3fd5011eace668c6060cb889300282ae7a0fd215 100644 GIT binary patch delta 5609 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 WU$zRLMDcStfu^dS$`>WO=>Gr_(b`x5 literal 68569 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�Qo^zF?erK3@flQXZaQ?UP}P!?7` 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 diff --git a/hs-abci-examples/nameservice/images/kibana-management.png b/hs-abci-examples/nameservice/images/kibana-management.png index 584558de21cc93b4242b0fd75c923c574fd774bd..c2d6292001268f90d799b64707c64d3745e12bcb 100644 GIT binary patch delta 6457 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 diff --git a/hs-abci-examples/nameservice/images/logs-tab.png b/hs-abci-examples/nameservice/images/logs-tab.png index 58e8376f1657d57c84ff0be4ac565c4fea7072c3..5b6e7c040e3eb916b25464ecbbbc9f21ea8621b1 100644 GIT binary patch delta 4027 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 literal 49792 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 bz!!Ieeq`ueu0&-Iz>ln?l0?Zn1Ni>|P7;~| From 2de83c477cc0e82814a4400dc68ff22a9f520723 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 16:20:49 -0500 Subject: [PATCH 22/35] change image links to master branch these images will now only show after this branch is merged --- hs-abci-examples/nameservice/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 80b21ef3..6d8b5625 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -82,7 +82,7 @@ histogram_set_bucket{le="1.0e-4"} 0.0 In Datadog's metrics explorer, you should be able to search for metrics prefixed with the `prometheus` value set in your agent's config. - + ## Alternative Logging @@ -129,14 +129,14 @@ via the commands: You should no longer see logs on the console. Instead, you should be able to see metrics logs on [Datadog's log explorer](https://app.datadoghq.com/logs). - + On Kibana, go to `Management` and create a Kibana index pattern for `nameservice`: - + - + Finally, under the `Discover`, you should be able to add filters to view specific logs: - + From 8d1212519e1c6c30932674eb0d72ecf175d67a78 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 20 Dec 2019 17:24:43 -0500 Subject: [PATCH 23/35] add image for creating a filter in kibana discovery --- hs-abci-examples/nameservice/README.md | 13 +++++++++---- .../nameservice/images/create-filter.png | Bin 0 -> 73861 bytes 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 hs-abci-examples/nameservice/images/create-filter.png diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 6d8b5625..2b26402d 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -129,14 +129,19 @@ via the commands: You should no longer see logs on the console. Instead, you should be able to see metrics logs on [Datadog's log explorer](https://app.datadoghq.com/logs). - + On Kibana, go to `Management` and create a Kibana index pattern for `nameservice`: - + - + Finally, under the `Discover`, you should be able to add filters to view specific logs: - + + +For example, after running `nameservice` tests, you should be able to add a filter to see +event logs for `NameClaimed`, `NameRemapped` and `NameDeleted`: + + diff --git a/hs-abci-examples/nameservice/images/create-filter.png b/hs-abci-examples/nameservice/images/create-filter.png new file mode 100644 index 0000000000000000000000000000000000000000..3e541b56c1d25eca0bf4eeb963da40ce32df63a4 GIT binary patch literal 73861 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 aC`VF4HO{8wQqm8AA1w|2tHqb^g#9m Date: Fri, 20 Dec 2019 17:39:43 -0500 Subject: [PATCH 24/35] use third person --- hs-abci-examples/nameservice/README.md | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/hs-abci-examples/nameservice/README.md b/hs-abci-examples/nameservice/README.md index 2b26402d..31a14f99 100644 --- a/hs-abci-examples/nameservice/README.md +++ b/hs-abci-examples/nameservice/README.md @@ -8,16 +8,15 @@ Run `nameservice` via the `Makefile`: make deploy-nameservice-local ``` -Along with running `nameservice`, this also starts a Prometheus metrics server. +Along with running `nameservice`, this command also starts a Prometheus metrics server. By default, the metrics server runs on `localhost:9200`. To use a different port, set the `STATS_PORT` environment variable to the desired port value. To see these metrics in Datadog, follow the [Prometheus host config instructions](https://docs.datadoghq.com/getting_started/integrations/prometheus/?tab=host#pagetitle) -to configure a local Datadog agent to scrape the endpoint. - -At minimum, to scrape all `nameservice` prometheus metrics, the appropriate `conf.yaml` (described above) -should be use the following settings: +to configure a local Datadog agent to scrape the endpoint. At minimum, to scrape all +`nameservice` prometheus metrics, the appropriate `conf.yaml` (described above) should +contain the following settings: ```yaml init_config: @@ -59,7 +58,7 @@ make test-nameservice Once the test run is completed, you should now be able to view metrics on [Datadog's metrics explorer](https://app.datadoghq.com/metric/explorer). Firstly, ensure that the prometheus server is populated with metrics by -visiting `localhost:9200` in a browser. You should see something like this: +visiting `localhost:9200/metrics` in a browser. It should look something like this: ``` # TYPE count_buy counter @@ -79,23 +78,23 @@ histogram_set_bucket{le="1.0e-4"} 0.0 ... ``` -In Datadog's metrics explorer, you should be able to search for metrics -prefixed with the `prometheus` value set in your agent's config. +Now, in Datadog's metrics explorer, we can search for metrics +prefixed with the `namespace` value (i.e., `prometheus`) set above: ## Alternative Logging In addition to Prometheus metrics, the `nameservice` app includes options for -logging to Elasticsearch (ES) and direct to Datadog metrics logging. By default, the app -logs to the console via Katip's context logger: +logging to Elasticsearch (ES) and Datadog metrics logging. By default, the app +logs everything to the console: ``` [2019-12-20 16:19:27][nameservice.server][Info][local][PID 89617][ThreadId 21][type:info] Request Received [2019-12-20 16:19:27][nameservice.server][Info][local][PID 89617][ThreadId 21][message_type:info][response_time:2.6e-5][message_count:1] ``` -These logs include request/response info and as well some metric logging. +These logs include request/response info and some event and metric logging. Alternatively, the app is set up to log the same information to ES and Datadog by setting the following environment variables: @@ -107,15 +106,15 @@ ES_PORT ## Elasticsearch server port ``` We recommend using the [ELK (v683) docker image](https://hub.docker.com/r/sebp/elk/tags) -to run an ES server and Kibana to search and filter incoming logs. +to run an ES server alongside a Kibana instance to search and filter incoming logs. ```bash > docker pull sebp/elk:683 > docker run -p 5601:5601 -p 9201:9200 -p 5044:5044 -it --name elk sebp/elk:683 ``` -This command remaps the `ES_PORT` value from `9200` to `9201` to avoid collision with -the Prometheus server that `nameservice` runs by default. Kibana runs on port `5601`. +**NOTE:** This command remaps the `ES_PORT` value from `9200` to `9201` to avoid collision with +the Prometheus server that `nameservice` runs by default. The Kibana instance runs on port `5601`. After both Kibana and ES are running, start `nameservice` and a Tendermint node via the commands: @@ -126,22 +125,23 @@ via the commands: > tendermint node ``` -You should no longer see logs on the console. Instead, you should be able to see metrics -logs on [Datadog's log explorer](https://app.datadoghq.com/logs). +At this point, there should be no logs printed on the console. If a valid +Datadog API Key is provided, metrics logs are available on +[Datadog's log explorer](https://app.datadoghq.com/logs). -On Kibana, go to `Management` and create a Kibana index pattern for `nameservice`: +To view ES logs on Kibana, go to `Management` on the sidebar and create a Kibana index pattern for `nameservice`: -Finally, under the `Discover`, you should be able to add filters to view specific logs: +Finally, under `Discover`, we can add filters to view specific logs: -For example, after running `nameservice` tests, you should be able to add a filter to see +For example, after running `nameservice` tests, we can add a filter to see event logs for `NameClaimed`, `NameRemapped` and `NameDeleted`: From 69a2d3dd909b9d797a534a6275426adcc53c6e77 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Mon, 23 Dec 2019 11:25:21 -0500 Subject: [PATCH 25/35] add default select method --- .../src/Nameservice/Modules/Nameservice/Types.hs | 9 +++------ hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs | 2 ++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs index 0e22563c..31e915cd 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs @@ -108,8 +108,7 @@ instance FromJSON NameClaimed where instance BaseApp.ToEvent NameClaimed where makeEventType _ = "NameClaimed" instance BaseApp.FromEvent NameClaimed -instance BaseApp.Select NameClaimed where - select _ _ = BaseApp.All +instance BaseApp.Select NameClaimed data NameRemapped = NameRemapped { nameRemappedName :: Name @@ -127,8 +126,7 @@ instance FromJSON NameRemapped where instance BaseApp.ToEvent NameRemapped where makeEventType _ = "NameRemapped" instance BaseApp.FromEvent NameRemapped -instance BaseApp.Select NameRemapped where - select _ _ = BaseApp.All +instance BaseApp.Select NameRemapped data NameDeleted = NameDeleted { nameDeletedName :: Name @@ -144,8 +142,7 @@ instance FromJSON NameDeleted where instance BaseApp.ToEvent NameDeleted where makeEventType _ = "NameDeleted" instance BaseApp.FromEvent NameDeleted -instance BaseApp.Select NameDeleted where - select _ _ = BaseApp.All +instance BaseApp.Select NameDeleted newtype ContextEvent t = ContextEvent t diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index 23c5e93d..1302b24f 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -20,6 +20,8 @@ data Verbosity = V0 | V1 | V2 | V3 class Select a where select :: Verbosity -> a -> LogSelect + default select :: Verbosity -> a -> LogSelect + select _ _ = All -- | Effect allowing for console logging. data Logger m a where From 69aefaeaaeb48a2fd0df295c2688961384468fd6 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Mon, 23 Dec 2019 11:39:35 -0500 Subject: [PATCH 26/35] rm unused imports --- .../src/Network/ABCI/Server/Middleware/ResponseLogger.hs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 7cb956a2..3786980f 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -3,12 +3,11 @@ module Network.ABCI.Server.Middleware.ResponseLogger mkResponseLogger , mkResponseLoggerM ) where -import Control.Monad.IO.Class (MonadIO, liftIO) +import Control.Monad.IO.Class (MonadIO) import qualified Data.Aeson as A import Katip import Network.ABCI.Server.App (App (..), MessageType, Middleware, Response (..)) -import System.IO (stdout) --------------------------------------------------------------------------- -- Types From 93d9cd7ac05336f8b1ea292159e86e79126eced5 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Mon, 23 Dec 2019 11:54:43 -0500 Subject: [PATCH 27/35] use ContextEvent in token and nameservice modules --- .../Nameservice/Modules/Nameservice/Keeper.hs | 8 ++--- .../Nameservice/Modules/Nameservice/Types.hs | 13 ------- .../src/Nameservice/Modules/Token/Keeper.hs | 34 ++++++++++++------- .../src/Nameservice/Modules/Token/Router.hs | 7 ++-- .../src/Nameservice/Modules/Token/Types.hs | 5 ++- hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs | 1 + .../src/Tendermint/SDK/BaseApp/Logger.hs | 20 +++++++++-- 7 files changed, 49 insertions(+), 39 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs index 666bab76..77ecc8f3 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs @@ -69,7 +69,7 @@ setName SetName{..} = do , nameRemappedOldValue = whoisValue } BaseApp.emit event - BaseApp.addContext (ContextEvent event) $ + BaseApp.addContext (BaseApp.ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameRemapped)) deleteName @@ -91,7 +91,7 @@ deleteName DeleteName{..} = do { nameDeletedName = deleteNameName } BaseApp.emit event - BaseApp.addContext (ContextEvent event) $ + BaseApp.addContext (BaseApp.ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameDeleted)) @@ -134,7 +134,7 @@ buyName msg = do , nameClaimedBid = buyNameBid } BaseApp.emit event - BaseApp.addContext (ContextEvent event) $ + BaseApp.addContext (BaseApp.ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) @@ -162,7 +162,7 @@ buyName msg = do , nameClaimedBid = buyNameBid } BaseApp.emit event - BaseApp.addContext (ContextEvent event) $ + BaseApp.addContext (BaseApp.ContextEvent event) $ BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) else throw (InsufficientBid "Bid must exceed the price.") diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs index 31e915cd..8e280493 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Types.hs @@ -3,7 +3,6 @@ module Nameservice.Modules.Nameservice.Types where import Control.Lens (iso) import Data.Aeson as A import Data.Bifunctor (first) -import Data.Proxy import Data.String.Conversions (cs) import Data.Text (Text) import qualified Data.Text.Lazy as TL @@ -143,15 +142,3 @@ instance BaseApp.ToEvent NameDeleted where makeEventType _ = "NameDeleted" instance BaseApp.FromEvent NameDeleted instance BaseApp.Select NameDeleted - -newtype ContextEvent t = ContextEvent t - -instance (ToJSON a, BaseApp.ToEvent a) => ToJSON (ContextEvent a) where - toJSON (ContextEvent a) = - let eventJson = toJSON a - eventName = BaseApp.makeEventType (Proxy :: Proxy a) - in A.object [ "event_type" A..= eventName, "event" A..= eventJson ] -instance FromJSON a => FromJSON (ContextEvent a) where - parseJSON = undefined -instance BaseApp.Select a => BaseApp.Select (ContextEvent a) where - select v (ContextEvent a) = BaseApp.select v a diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs index 65d498e7..271e1a4d 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs @@ -3,6 +3,8 @@ module Nameservice.Modules.Token.Keeper where import Data.Maybe (fromMaybe) +import Data.Proxy +import Data.String.Conversions (cs) import Nameservice.Modules.Token.Messages (FaucetAccount (..)) import Nameservice.Modules.Token.Types (Amount (..), Faucetted (..), @@ -45,15 +47,19 @@ eval = mapError BaseApp.makeAppError . evalToken -------------------------------------------------------------------------------- faucetAccount - :: Members [Error TokenError, Output BaseApp.Event, Token] r + :: Members [BaseApp.Logger, Output BaseApp.Event] r + => Members TokenEffs r => FaucetAccount -> Sem r () faucetAccount FaucetAccount{..} = do mint faucetAccountTo faucetAccountAmount - BaseApp.emit Faucetted - { faucettedAccount = faucetAccountTo - , faucettedAmount = faucetAccountAmount - } + let event = Faucetted + { faucettedAccount = faucetAccountTo + , faucettedAmount = faucetAccountAmount + } + BaseApp.emit event + BaseApp.addContext (BaseApp.ContextEvent event) $ + BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy Faucetted)) getBalance :: Member Token r @@ -63,7 +69,8 @@ getBalance address = fromMaybe (Amount 0) <$> getBalance' address transfer - :: Members [Error TokenError, Output BaseApp.Event, Token] r + :: Members [BaseApp.Logger, Output BaseApp.Event] r + => Members TokenEffs r => Address -> Amount -> Address @@ -79,15 +86,18 @@ transfer addr1 amount addr2 = do -- update both balances putBalance addr1 newBalance1 putBalance addr2 newBalance2 - BaseApp.emit $ TransferEvent - { transferEventAmount = amount - , transferEventTo = addr2 - , transferEventFrom = addr1 - } + let event = TransferEvent + { transferEventAmount = amount + , transferEventTo = addr2 + , transferEventFrom = addr1 + } + BaseApp.emit event + BaseApp.addContext (BaseApp.ContextEvent event) $ + BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy TransferEvent)) else throw (InsufficientFunds "Insufficient funds for transfer.") burn - :: Members [Error TokenError, Token] r + :: Members TokenEffs r => Address -> Amount -> Sem r () diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs index 38e8db31..33057509 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs @@ -5,15 +5,14 @@ import Nameservice.Modules.Token.Keeper (TokenEffs, burn, import Nameservice.Modules.Token.Messages (Burn (..), TokenMessage (..), Transfer (..)) -import Polysemy (Member, Members, Sem) -import Polysemy.Output (Output) -import Tendermint.SDK.BaseApp (Event) +import Polysemy (Members, Sem) +import Tendermint.SDK.BaseApp (BaseAppEffs) import Tendermint.SDK.Types.Message (Msg (..)) import Tendermint.SDK.Types.Transaction (RoutedTx (..), Tx (..)) router :: Members TokenEffs r - => Member (Output Event) r + => Members BaseAppEffs r => RoutedTx TokenMessage -> Sem r () router (RoutedTx Tx{txMsg}) = diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Types.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Types.hs index a575cb5a..48cef509 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Types.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Types.hs @@ -97,6 +97,7 @@ instance FromJSON Faucetted where instance BaseApp.ToEvent Faucetted where makeEventType _ = "Faucetted" instance BaseApp.FromEvent Faucetted +instance BaseApp.Select Faucetted data TransferEvent = TransferEvent { transferEventAmount :: Amount @@ -109,11 +110,9 @@ transferEventAesonOptions = defaultNameserviceOptions "transferEvent" instance A.ToJSON TransferEvent where toJSON = A.genericToJSON transferEventAesonOptions - instance A.FromJSON TransferEvent where parseJSON = A.genericParseJSON transferEventAesonOptions - instance BaseApp.ToEvent TransferEvent where makeEventType _ = "TransferEvent" - instance BaseApp.FromEvent TransferEvent +instance BaseApp.Select TransferEvent diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs index 8d0f62fa..73f1bd1f 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs @@ -45,6 +45,7 @@ module Tendermint.SDK.BaseApp , Logger , Tendermint.SDK.BaseApp.Logger.log , addContext + , ContextEvent(..) , LogSelect(..) , Severity(..) , Select(..) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index 1302b24f..b7c0d8e2 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -4,25 +4,39 @@ module Tendermint.SDK.BaseApp.Logger ( Logger(..) , Tendermint.SDK.BaseApp.Logger.log , addContext + , ContextEvent(..) , LogSelect(..) , Select(..) , Severity(..) , Verbosity(..) ) where -import Data.Aeson (ToJSON) -import Data.Text (Text) -import Polysemy (makeSem) +import Data.Aeson (ToJSON (..), object, (.=)) +import Data.Proxy +import Data.Text (Text) +import Polysemy (makeSem) +import Tendermint.SDK.BaseApp.Events (ToEvent (..)) data Severity = Debug | Info | Warning | Error | Exception deriving (Eq, Ord) data LogSelect = All | Some [Text] data Verbosity = V0 | V1 | V2 | V3 +-- | Class for selecting object keys for contextual logging class Select a where select :: Verbosity -> a -> LogSelect default select :: Verbosity -> a -> LogSelect select _ _ = All +-- | Special event wrapper to add contextual event_type info +newtype ContextEvent t = ContextEvent t +instance (ToJSON a, ToEvent a) => ToJSON (ContextEvent a) where + toJSON (ContextEvent a) = + object [ "event_type" .= makeEventType (Proxy :: Proxy a) + , "event" .= toJSON a + ] +instance Select a => Select (ContextEvent a) where + select v (ContextEvent a) = select v a + -- | Effect allowing for console logging. data Logger m a where Log :: Severity -> Text -> Logger m () From ec0add4c6a66932ae6fd06a64a7940c762aeb29d Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Tue, 24 Dec 2019 16:21:28 -0500 Subject: [PATCH 28/35] move context event to events --- hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs | 2 +- hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs | 13 +++++++++++++ hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs | 15 +-------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs index 73f1bd1f..bf9300c6 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs @@ -36,6 +36,7 @@ module Tendermint.SDK.BaseApp , Event(..) , FromEvent(..) , ToEvent(..) + , ContextEvent(..) , emit -- * Gas @@ -45,7 +46,6 @@ module Tendermint.SDK.BaseApp , Logger , Tendermint.SDK.BaseApp.Logger.log , addContext - , ContextEvent(..) , LogSelect(..) , Severity(..) , Select(..) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index 956308c9..8c9b1fdb 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -2,6 +2,7 @@ module Tendermint.SDK.BaseApp.Events ( Event(..) , ToEvent(..) , FromEvent(..) + , ContextEvent(..) , emit , makeEvent , EventBuffer @@ -30,6 +31,7 @@ import Polysemy (Embed, Member, Sem, import Polysemy.Output (Output (..), output) import Polysemy.Reader (Reader (..), ask) import Polysemy.Resource (Resource, onException) +import Tendermint.SDK.BaseApp.Logger {- TODO : These JSON instances are fragile but convenient. We @@ -70,6 +72,17 @@ class ToEvent e => FromEvent e where kvPairs <- traverse fromKVPair eventAttributes A.eitherDecode . A.encode . A.Object . fromList $ kvPairs +-- | Special event wrapper to add contextual event_type info +newtype ContextEvent t = ContextEvent t +instance (A.ToJSON a, ToEvent a) => A.ToJSON (ContextEvent a) where + toJSON (ContextEvent a) = + A.object [ "event_type" A..= makeEventType (Proxy :: Proxy a) + , "event" A..= A.toJSON a + ] +instance Select a => Select (ContextEvent a) where + select v (ContextEvent a) = select v a + + -- This is the internal implementation of the interpreter for event -- logging. We allocate a buffer that can queue events as they are thrown, -- then flush the buffer at the end of transaction execution. It will diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index b7c0d8e2..e2144fcb 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -4,18 +4,15 @@ module Tendermint.SDK.BaseApp.Logger ( Logger(..) , Tendermint.SDK.BaseApp.Logger.log , addContext - , ContextEvent(..) , LogSelect(..) , Select(..) , Severity(..) , Verbosity(..) ) where -import Data.Aeson (ToJSON (..), object, (.=)) -import Data.Proxy +import Data.Aeson (ToJSON (..)) import Data.Text (Text) import Polysemy (makeSem) -import Tendermint.SDK.BaseApp.Events (ToEvent (..)) data Severity = Debug | Info | Warning | Error | Exception deriving (Eq, Ord) data LogSelect = All | Some [Text] @@ -27,16 +24,6 @@ class Select a where default select :: Verbosity -> a -> LogSelect select _ _ = All --- | Special event wrapper to add contextual event_type info -newtype ContextEvent t = ContextEvent t -instance (ToJSON a, ToEvent a) => ToJSON (ContextEvent a) where - toJSON (ContextEvent a) = - object [ "event_type" .= makeEventType (Proxy :: Proxy a) - , "event" .= toJSON a - ] -instance Select a => Select (ContextEvent a) where - select v (ContextEvent a) = select v a - -- | Effect allowing for console logging. data Logger m a where Log :: Severity -> Text -> Logger m () From 94c9dff1e4d87424ea773ccf8cccdf70ded2df44 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Tue, 24 Dec 2019 16:55:00 -0500 Subject: [PATCH 29/35] Add logEvent and emitAndLogEvent --- .../Nameservice/Modules/Nameservice/Keeper.hs | 20 ++------ .../src/Nameservice/Modules/Token/Keeper.hs | 10 +--- hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs | 2 + .../src/Tendermint/SDK/BaseApp/Events.hs | 48 +++++++++++++------ .../src/Tendermint/SDK/BaseApp/Logger.hs | 6 +-- 5 files changed, 46 insertions(+), 40 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs index 77ecc8f3..b857a7f0 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs @@ -26,7 +26,7 @@ makeSem ''NameserviceKeeper type NameserviceEffs = '[NameserviceKeeper, Error NameserviceError] storeKey :: BaseApp.StoreKey NameserviceModuleName -storeKey = BaseApp.StoreKey . cs . symbolVal $ Proxy @ NameserviceModuleName +storeKey = BaseApp.StoreKey . cs . symbolVal $ Proxy @NameserviceModuleName eval :: Members [BaseApp.RawStore, Error BaseApp.AppError] r @@ -68,9 +68,7 @@ setName SetName{..} = do , nameRemappedNewValue = setNameValue , nameRemappedOldValue = whoisValue } - BaseApp.emit event - BaseApp.addContext (BaseApp.ContextEvent event) $ - BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameRemapped)) + BaseApp.emitAndLogEvent event deleteName :: Members [BaseApp.Logger, Token, Output BaseApp.Event] r @@ -90,10 +88,7 @@ deleteName DeleteName{..} = do let event = NameDeleted { nameDeletedName = deleteNameName } - BaseApp.emit event - BaseApp.addContext (BaseApp.ContextEvent event) $ - BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameDeleted)) - + BaseApp.emitAndLogEvent event buyName :: Members [BaseApp.Logger, Output BaseApp.Event] r @@ -133,10 +128,7 @@ buyName msg = do , nameClaimedValue = buyNameValue , nameClaimedBid = buyNameBid } - BaseApp.emit event - BaseApp.addContext (BaseApp.ContextEvent event) $ - BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) - + BaseApp.emitAndLogEvent event buyClaimedName :: Members NameserviceEffs r @@ -161,8 +153,6 @@ buyName msg = do , nameClaimedValue = buyNameValue , nameClaimedBid = buyNameBid } - BaseApp.emit event - BaseApp.addContext (BaseApp.ContextEvent event) $ - BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy NameClaimed)) + BaseApp.emitAndLogEvent event else throw (InsufficientBid "Bid must exceed the price.") diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs index 271e1a4d..66d0ad5f 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs @@ -3,8 +3,6 @@ module Nameservice.Modules.Token.Keeper where import Data.Maybe (fromMaybe) -import Data.Proxy -import Data.String.Conversions (cs) import Nameservice.Modules.Token.Messages (FaucetAccount (..)) import Nameservice.Modules.Token.Types (Amount (..), Faucetted (..), @@ -57,9 +55,7 @@ faucetAccount FaucetAccount{..} = do { faucettedAccount = faucetAccountTo , faucettedAmount = faucetAccountAmount } - BaseApp.emit event - BaseApp.addContext (BaseApp.ContextEvent event) $ - BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy Faucetted)) + BaseApp.emitAndLogEvent event getBalance :: Member Token r @@ -91,9 +87,7 @@ transfer addr1 amount addr2 = do , transferEventTo = addr2 , transferEventFrom = addr1 } - BaseApp.emit event - BaseApp.addContext (BaseApp.ContextEvent event) $ - BaseApp.log BaseApp.Debug (cs $ BaseApp.makeEventType (Proxy :: Proxy TransferEvent)) + BaseApp.emitAndLogEvent event else throw (InsufficientFunds "Insufficient funds for transfer.") burn diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs index bf9300c6..59b16a6c 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs @@ -38,6 +38,8 @@ module Tendermint.SDK.BaseApp , ToEvent(..) , ContextEvent(..) , emit + , logEvent + , emitAndLogEvent -- * Gas , GasMeter diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index 8c9b1fdb..1ea1f54d 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -4,6 +4,8 @@ module Tendermint.SDK.BaseApp.Events , FromEvent(..) , ContextEvent(..) , emit + , logEvent + , emitAndLogEvent , makeEvent , EventBuffer , newEventBuffer @@ -26,12 +28,12 @@ import Data.Text (Text) import GHC.Exts (fromList, toList) import Network.ABCI.Types.Messages.FieldTypes (Event (..), KVPair (..)) -import Polysemy (Embed, Member, Sem, - interpret) +import Polysemy (Embed, Member, Members, + Sem, interpret) import Polysemy.Output (Output (..), output) import Polysemy.Reader (Reader (..), ask) import Polysemy.Resource (Resource, onException) -import Tendermint.SDK.BaseApp.Logger +import qualified Tendermint.SDK.BaseApp.Logger as Log {- TODO : These JSON instances are fragile but convenient. We @@ -72,17 +74,6 @@ class ToEvent e => FromEvent e where kvPairs <- traverse fromKVPair eventAttributes A.eitherDecode . A.encode . A.Object . fromList $ kvPairs --- | Special event wrapper to add contextual event_type info -newtype ContextEvent t = ContextEvent t -instance (A.ToJSON a, ToEvent a) => A.ToJSON (ContextEvent a) where - toJSON (ContextEvent a) = - A.object [ "event_type" A..= makeEventType (Proxy :: Proxy a) - , "event" A..= A.toJSON a - ] -instance Select a => Select (ContextEvent a) where - select v (ContextEvent a) = select v a - - -- This is the internal implementation of the interpreter for event -- logging. We allocate a buffer that can queue events as they are thrown, -- then flush the buffer at the end of transaction execution. It will @@ -134,6 +125,35 @@ emit -> Sem r () emit e = output $ makeEvent e +-- | Special event wrapper to add contextual event_type info +newtype ContextEvent t = ContextEvent t +instance (A.ToJSON a, ToEvent a) => A.ToJSON (ContextEvent a) where + toJSON (ContextEvent a) = + A.object [ "event_type" A..= makeEventType (Proxy :: Proxy a) + , "event" A..= A.toJSON a + ] +instance Log.Select a => Log.Select (ContextEvent a) where + select v (ContextEvent a) = Log.select v a + +logEvent + :: forall e r. + (A.ToJSON e, ToEvent e, Log.Select e) + => Member Log.Logger r + => e + -> Sem r () +logEvent event = Log.addContext (ContextEvent event) $ + Log.log Log.Debug (cs $ makeEventType (Proxy :: Proxy e)) + +emitAndLogEvent + :: forall e r. + (ToEvent e, A.ToJSON e, Log.Select e) + => Members [Log.Logger, Output Event] r + => e + -> Sem r () +emitAndLogEvent e = do + emit e + logEvent e + evalWithBuffer :: Member (Embed IO) r => Member (Reader EventBuffer) r diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs index e2144fcb..4155d415 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Logger.hs @@ -10,9 +10,9 @@ module Tendermint.SDK.BaseApp.Logger , Verbosity(..) ) where -import Data.Aeson (ToJSON (..)) -import Data.Text (Text) -import Polysemy (makeSem) +import Data.Aeson (ToJSON (..)) +import Data.Text (Text) +import Polysemy (makeSem) data Severity = Debug | Info | Warning | Error | Exception deriving (Eq, Ord) data LogSelect = All | Some [Text] From a1ae39965a39eb8082fb83dac04e834fde4238fa Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Tue, 24 Dec 2019 16:56:37 -0500 Subject: [PATCH 30/35] Switch logEvent to info --- hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index 1ea1f54d..f65e0019 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -142,7 +142,7 @@ logEvent => e -> Sem r () logEvent event = Log.addContext (ContextEvent event) $ - Log.log Log.Debug (cs $ makeEventType (Proxy :: Proxy e)) + Log.log Log.Info (cs $ makeEventType (Proxy :: Proxy e)) emitAndLogEvent :: forall e r. From 2900ca31389b038f76eaa0572494b2e1c37b4687 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Thu, 2 Jan 2020 10:39:16 -0500 Subject: [PATCH 31/35] Remove event_type logItem from resp/req loggers --- .../src/Network/ABCI/Server/Middleware/RequestLogger.hs | 2 +- .../src/Network/ABCI/Server/Middleware/ResponseLogger.hs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs index 808faec2..3d6905df 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/RequestLogger.hs @@ -23,7 +23,7 @@ instance ToObject (Loggable (Request (t :: MessageType))) where instance LogItem (Loggable (Request (t :: MessageType))) where payloadKeys V3 _ = AllKeys - payloadKeys _ _ = SomeKeys ["type", "event_type"] + payloadKeys _ _ = SomeKeys ["type"] --------------------------------------------------------------------------- -- mkRequestLogger diff --git a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs index 3786980f..5a1074e5 100644 --- a/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs +++ b/hs-abci-extra/src/Network/ABCI/Server/Middleware/ResponseLogger.hs @@ -22,7 +22,7 @@ instance ToObject (Loggable (Response (t :: MessageType))) where instance LogItem (Loggable (Response (t :: MessageType))) where payloadKeys V3 _ = AllKeys - payloadKeys _ _ = SomeKeys ["type", "event_type"] + payloadKeys _ _ = SomeKeys ["type"] --------------------------------------------------------------------------- -- mkResponseLogger From 6a12cbacab6a93fcad0cfb2066d9f819cc116479 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 3 Jan 2020 10:48:52 -0500 Subject: [PATCH 32/35] remove emitAndLogEvent --- .../src/Nameservice/Modules/Nameservice/Keeper.hs | 12 ++++++++---- .../src/Nameservice/Modules/Token/Keeper.hs | 6 ++++-- hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs | 1 - hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs | 13 +------------ 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs index b857a7f0..0292da47 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Nameservice/Keeper.hs @@ -68,7 +68,8 @@ setName SetName{..} = do , nameRemappedNewValue = setNameValue , nameRemappedOldValue = whoisValue } - BaseApp.emitAndLogEvent event + BaseApp.emit event + BaseApp.logEvent event deleteName :: Members [BaseApp.Logger, Token, Output BaseApp.Event] r @@ -88,7 +89,8 @@ deleteName DeleteName{..} = do let event = NameDeleted { nameDeletedName = deleteNameName } - BaseApp.emitAndLogEvent event + BaseApp.emit event + BaseApp.logEvent event buyName :: Members [BaseApp.Logger, Output BaseApp.Event] r @@ -128,7 +130,8 @@ buyName msg = do , nameClaimedValue = buyNameValue , nameClaimedBid = buyNameBid } - BaseApp.emitAndLogEvent event + BaseApp.emit event + BaseApp.logEvent event buyClaimedName :: Members NameserviceEffs r @@ -153,6 +156,7 @@ buyName msg = do , nameClaimedValue = buyNameValue , nameClaimedBid = buyNameBid } - BaseApp.emitAndLogEvent event + BaseApp.emit event + BaseApp.logEvent event else throw (InsufficientBid "Bid must exceed the price.") diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs index 66d0ad5f..258c2641 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Keeper.hs @@ -55,7 +55,8 @@ faucetAccount FaucetAccount{..} = do { faucettedAccount = faucetAccountTo , faucettedAmount = faucetAccountAmount } - BaseApp.emitAndLogEvent event + BaseApp.emit event + BaseApp.logEvent event getBalance :: Member Token r @@ -87,7 +88,8 @@ transfer addr1 amount addr2 = do , transferEventTo = addr2 , transferEventFrom = addr1 } - BaseApp.emitAndLogEvent event + BaseApp.emit event + BaseApp.logEvent event else throw (InsufficientFunds "Insufficient funds for transfer.") burn diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs index 59b16a6c..69032a3e 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp.hs @@ -39,7 +39,6 @@ module Tendermint.SDK.BaseApp , ContextEvent(..) , emit , logEvent - , emitAndLogEvent -- * Gas , GasMeter diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index f65e0019..8d776e3e 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -5,7 +5,6 @@ module Tendermint.SDK.BaseApp.Events , ContextEvent(..) , emit , logEvent - , emitAndLogEvent , makeEvent , EventBuffer , newEventBuffer @@ -28,7 +27,7 @@ import Data.Text (Text) import GHC.Exts (fromList, toList) import Network.ABCI.Types.Messages.FieldTypes (Event (..), KVPair (..)) -import Polysemy (Embed, Member, Members, +import Polysemy (Embed, Member, Sem, interpret) import Polysemy.Output (Output (..), output) import Polysemy.Reader (Reader (..), ask) @@ -144,16 +143,6 @@ logEvent logEvent event = Log.addContext (ContextEvent event) $ Log.log Log.Info (cs $ makeEventType (Proxy :: Proxy e)) -emitAndLogEvent - :: forall e r. - (ToEvent e, A.ToJSON e, Log.Select e) - => Members [Log.Logger, Output Event] r - => e - -> Sem r () -emitAndLogEvent e = do - emit e - logEvent e - evalWithBuffer :: Member (Embed IO) r => Member (Reader EventBuffer) r From 896b581e37a5a1fcacec3a7c6f2c8c79f57059fc Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 3 Jan 2020 13:14:51 -0500 Subject: [PATCH 33/35] stylish --- hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index 522db454..364667dd 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -24,8 +24,8 @@ import Data.String.Conversions (cs) import GHC.Exts (toList) import Network.ABCI.Types.Messages.FieldTypes (Event (..), KVPair (..)) -import Polysemy (Embed, Member, - Sem, interpret) +import Polysemy (Embed, Member, Sem, + interpret) import Polysemy.Output (Output (..), output) import Polysemy.Reader (Reader (..), ask) import Polysemy.Resource (Resource, onException) From 87bfcf17256e405742f7ff2e39b336979639b301 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 3 Jan 2020 15:55:57 -0500 Subject: [PATCH 34/35] stylish --- hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs index d03ec3cb..53ea9a08 100644 --- a/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs +++ b/hs-abci-sdk/src/Tendermint/SDK/BaseApp/Events.hs @@ -69,4 +69,4 @@ logEvent => e -> Sem r () logEvent event = Log.addContext (ContextEvent event) $ - Log.log Log.Info (cs $ makeEventType (Proxy :: Proxy e)) \ No newline at end of file + Log.log Log.Info (cs $ makeEventType (Proxy :: Proxy e)) From 1024c1c54ba9061fa689b6bffdaa9a0a1b3ee9b1 Mon Sep 17 00:00:00 2001 From: Carl Factora Date: Fri, 3 Jan 2020 17:12:57 -0500 Subject: [PATCH 35/35] Add TxEff constraint to token router --- .../nameservice/src/Nameservice/Modules/Token/Router.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs index 33057509..f78ed406 100644 --- a/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs +++ b/hs-abci-examples/nameservice/src/Nameservice/Modules/Token/Router.hs @@ -6,13 +6,14 @@ import Nameservice.Modules.Token.Messages (Burn (..), TokenMessage (..), Transfer (..)) import Polysemy (Members, Sem) -import Tendermint.SDK.BaseApp (BaseAppEffs) +import Tendermint.SDK.BaseApp (BaseAppEffs, TxEffs) import Tendermint.SDK.Types.Message (Msg (..)) import Tendermint.SDK.Types.Transaction (RoutedTx (..), Tx (..)) router :: Members TokenEffs r => Members BaseAppEffs r + => Members TxEffs r => RoutedTx TokenMessage -> Sem r () router (RoutedTx Tx{txMsg}) =