ethereum-analyzer-webui 1.3.0 → 2.0.0
raw patch · 6 files changed
+32/−28 lines, 6 files
Files
- ethereum-analyzer-webui.cabal +2/−2
- src/Ethereum/Analyzer/Web/API.hs +1/−1
- src/Ethereum/Analyzer/Web/Server.hs +12/−11
- src/Ethereum/Analyzer/Web/Server/Handlers.hs +2/−2
- src/Ethereum/Analyzer/Web/Server/Instrument.hs +6/−3
- src/Ethereum/Analyzer/Web/Server/Logging.hs +9/−9
ethereum-analyzer-webui.cabal view
@@ -1,5 +1,5 @@ name: ethereum-analyzer-webui-version: 1.3.0+version: 2.0.0 synopsis: A web frontend for ethereum-analyzer homepage: https://github.com/ethereumK/ethereum-analyzer license: Apache-2.0@@ -21,7 +21,7 @@ source-repository this type: git location: https://github.com/zchn/ethereum-analyzer- tag: v1.3.0+ tag: v2.0.0 subdir: ethereum-analyzer-webui library
src/Ethereum/Analyzer/Web/API.hs view
@@ -26,7 +26,7 @@ import Ethereum.Analyzer.Web.API.Internal (HTML) -- | ethereum-analyzer API definition.-type API = Get '[HTML] RootPage :<|> "users" :> Get '[JSON] Users :<|> "ea" :> "dotcfg" :> QueryParam "code" Text :> Get '[JSON] DotCfgResp :<|> "ea" :> "dotcfg2" :> QueryParam "code" Text :> Get '[JSON] DotCfgResp+type API = Get '[ HTML] RootPage :<|> "users" :> Get '[ JSON] Users :<|> "ea" :> "dotcfg" :> QueryParam "code" Text :> Get '[ JSON] DotCfgResp :<|> "ea" :> "dotcfg2" :> QueryParam "code" Text :> Get '[ JSON] DotCfgResp -- | Value-level representation of API. apiraw :: Proxy (API :<|> "web" :> Raw)
src/Ethereum/Analyzer/Web/Server.hs view
@@ -9,7 +9,7 @@ , startApp ) where -import Protolude+import Protolude hiding (show) import Control.Monad.Log (Severity(..)) import qualified Data.List as List@@ -63,7 +63,8 @@ [long "access-logs", help "How to log HTTP access", value Disabled]) <*> option (eitherReader- (maybe (throwError (toS invalidLogLevel)) pure . Log.fromKeyword . toS))+ (maybe (throwError (toS invalidLogLevel)) pure .+ Log.fromKeyword . toS)) (fold [ long "log-level" , help "Minimum severity for log messages"@@ -87,15 +88,15 @@ runApp :: Config -> IO () runApp config@Config {..} = do requests <- Prom.registerIO requestDuration- when enableGhcMetrics $- do statsEnabled <- getGCStatsEnabled- unless statsEnabled $- Log.withLogging logLevel $- Log.log- Warning- (text- "Exporting GHC metrics but GC stats not enabled. Re-run with +RTS -T.")- void $ Prom.register Prom.ghcMetrics+ when enableGhcMetrics $ do+ statsEnabled <- getGCStatsEnabled+ unless statsEnabled $+ Log.withLogging logLevel $+ Log.log+ Warning+ (text+ "Exporting GHC metrics but GC stats not enabled. Re-run with +RTS -T.")+ void $ Prom.register Prom.ghcMetrics runSettings settings (middleware requests) where settings = warpSettings config
src/Ethereum/Analyzer/Web/Server/Handlers.hs view
@@ -9,13 +9,13 @@ import Protolude +import Control.Monad.Except (ExceptT(..))+import Control.Monad.Log (Severity, logInfo) import Ethereum.Analyzer.Disasm import Ethereum.Analyzer.Util import Ethereum.Analyzer.Web.API (API, RootPage(..), User(..), Users(..), DotCfgResp(..)) import qualified Ethereum.Analyzer.Web.Server.Logging as Log-import Control.Monad.Except (ExceptT(..))-import Control.Monad.Log (Severity, logInfo) import Servant (ServantErr, Server, (:<|>)(..), (:>), (:~>)(..), enter, Raw) import Servant.Utils.StaticFiles (serveDirectory)
src/Ethereum/Analyzer/Web/Server/Instrument.hs view
@@ -46,7 +46,8 @@ requestDuration :: IO RequestDuration requestDuration =- Prom.vector ("handler", "method", "status_code") $ Prom.summary info Prom.defaultQuantiles+ Prom.vector ("handler", "method", "status_code") $+ Prom.summary info Prom.defaultQuantiles where info = Prom.Info@@ -84,7 +85,8 @@ -> Text -- ^ The label used to identify the app -> Wai.Middleware prometheus PrometheusSettings {..} duration appName app req respond =- if Wai.requestMethod req == HTTP.methodGet && Wai.pathInfo req == prometheusEndPoint+ if Wai.requestMethod req == HTTP.methodGet &&+ Wai.pathInfo req == prometheusEndPoint then case prometheusHandlerName of Nothing -> respondWithMetrics respond Just name ->@@ -96,7 +98,8 @@ metrics :: Wai.Application metrics = const respondWithMetrics -respondWithMetrics :: (Wai.Response -> IO Wai.ResponseReceived) -> IO Wai.ResponseReceived+respondWithMetrics :: (Wai.Response -> IO Wai.ResponseReceived)+ -> IO Wai.ResponseReceived respondWithMetrics respond = do content <- Prom.exportMetricsAsText respond $ Wai.responseBuilder HTTP.status200 headers $ byteString content
src/Ethereum/Analyzer/Web/Server/Logging.hs view
@@ -1,5 +1,5 @@-{-# LANGUAGE NoImplicitPrelude, OverloadedStrings, RecordWildCards,- FlexibleContexts #-}+{-# LANGUAGE NoImplicitPrelude, OverloadedStrings, FlexibleContexts+ #-} -- | Logging helpers for ethereum-analyzer. module Ethereum.Analyzer.Web.Server.Logging@@ -29,11 +29,10 @@ :: (MonadMask m, MonadIO m, Pretty msg) => Severity -> LogM msg m a -> m a withLogging severityThreshold body =- withFDHandler defaultBatchingOptions stdout 0.4 80 $- \stdoutHandler ->- runLoggingT- (withTimestamps body)- (printLogs severityThreshold stdoutHandler)+ withFDHandler defaultBatchingOptions stdout 0.4 80 $ \stdoutHandler ->+ runLoggingT+ (withTimestamps body)+ (printLogs severityThreshold stdoutHandler) withTimestamps :: (MonadIO m, MonadLog (WithTimestamp msg) m)@@ -72,7 +71,8 @@ => Severity -> Handler m Doc -> WithTimestamp (WithSeverity a) -> m () printLogs severityThreshold handler message = when (severityThreshold >= msgSeverity (discardTimestamp message)) $- handler . renderWithTimestamp timeFormatter (renderWithSeverity pretty) $ message+ handler . renderWithTimestamp timeFormatter (renderWithSeverity pretty) $+ message where timeFormatter = formatTime defaultTimeLocale timeFormat timeFormat = iso8601DateFormat (Just "%H:%M:%S.%q")@@ -81,4 +81,4 @@ log :: MonadLog (WithSeverity a) m => Severity -> a -> m ()-log severity msg = logMessage (WithSeverity severity msg)+log severity msg' = logMessage (WithSeverity severity msg')