-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Visualise an eventlog
--
-- eventlog2html is a library for visualising eventlogs. At the moment,
-- the intended use is to visualise eventlogs which have heap profiling
-- events, as a replacement to hp2ps and hp2pretty. eventlog2html creates
-- a static webpage which contains a collection of different interactive
-- charts for analysing heap usage. Trace events are displayed on the
-- chart and the charts can be zoomed, scrolled and filtered to give a
-- more exploratory feel to heap profile analysis.
@package eventlog2html
@version 0.11.0
module Eventlog.Args
args :: IO Option
argsInfo :: ParserInfo Option
data Args
Args :: Sort -> Bool -> Int -> Maybe Int -> Bool -> Bool -> Bool -> Bool -> Bool -> Text -> Maybe Int -> [Text] -> [Text] -> Maybe String -> [String] -> Args
[sorting] :: Args -> Sort
[reversing] :: Args -> Bool
[nBands] :: Args -> Int
[detailedLimit] :: Args -> Maybe Int
[heapProfile] :: Args -> Bool
[noIncludejs] :: Args -> Bool
[json] :: Args -> Bool
[noTraces] :: Args -> Bool
-- | By default, only traceMarkers are included. This option enables the
-- inclusion of traceEvents.
[traceEvents] :: Args -> Bool
[userColourScheme] :: Args -> Text
[fixedYAxis] :: Args -> Maybe Int
[includeStr] :: Args -> [Text]
[excludeStr] :: Args -> [Text]
[outputFile] :: Args -> Maybe String
[files] :: Args -> [String]
data Option
ShowVersion :: Option
Run :: Args -> Option
data Sort
Size :: Sort
StdDev :: Sort
Name :: Sort
Gradient :: Sort
Number :: Sort
defaultArgs :: FilePath -> IO Option
module Eventlog.AssetVersions
vegaVersion :: String
vegaURL :: String
vegaLiteVersion :: String
vegaLiteURL :: String
vegaEmbedVersion :: String
vegaEmbedURL :: String
jqueryVersion :: String
jqueryURL :: String
bootstrapVersion :: String
bootstrapURL :: String
sparklinesVersion :: String
sparklinesURL :: String
bootstrapCSSVersion :: String
bootstrapCSSURL :: String
fancyTableVersion :: String
fancyTableURL :: String
datatablesVersion :: String
datatablesURL :: String
datatablesCSSVersion :: String
datatablesCSSURL :: String
datatablesButtonsVersion :: String
datatablesButtonsURL :: String
datatablesButtonsCSSVersion :: String
datatablesButtonsCSSURL :: String
datatablesButtonsHTML5Version :: String
datatablesButtonsHTML5URL :: String
popperVersion :: String
popperURL :: String
module Eventlog.Javascript
vegaLite :: Text
vegaEmbed :: Text
vega :: Text
jquery :: Text
bootstrap :: Text
bootstrapCSS :: Text
fancytable :: Text
sparkline :: Text
datatables :: Text
datatablesHtml5 :: Text
datatablesButtons :: Text
datatablesEllipsis :: Text
datatablesCSS :: Text
datatablesButtonsCSS :: Text
imagesCSS :: Text
stylesheet :: Text
tablogic :: Text
treevega :: Text
popper :: Text
module Eventlog.Rendering.Types
data IncludeTraceData
TraceData :: IncludeTraceData
NoTraceData :: IncludeTraceData
-- | Tab IDs must be usable as HTML and Javascript identifiers, so we allow
-- a limited selection of characters. This is enforced only at runtime by
-- mkTabID and the IsString instance, but that seems good
-- enough for now.
newtype TabID
TabID :: Text -> TabID
mkTabID :: String -> TabID
tabIDToVizID :: TabID -> Text
tabIDToNavItemID :: TabID -> Text
tabIDToTabID :: TabID -> Text
tabIDToHref :: TabID -> Text
data TabGroup
ManyTabs :: String -> [Tab] -> TabGroup
SingleTab :: Tab -> TabGroup
data Tab
Tab :: String -> TabID -> Maybe Html -> Maybe Html -> Bool -> Bool -> Tab
[tabName] :: Tab -> String
[tabId] :: Tab -> TabID
[tabContent] :: Tab -> Maybe Html
[tabDocs] :: Tab -> Maybe Html
-- | Active by default?
[tabActive] :: Tab -> Bool
[tabDisabled] :: Tab -> Bool
mkTab :: String -> TabID -> Html -> Maybe Html -> Tab
mkUnavailableTab :: String -> TabID -> Html -> Tab
mkOptionalTab :: String -> TabID -> (a -> Html) -> Maybe Html -> Html -> Maybe a -> Tab
noDocs :: Maybe Html
instance Data.String.IsString Eventlog.Rendering.Types.TabID
module Eventlog.Rendering.Bootstrap
dataToggle :: AttributeValue -> Attribute
dataTarget :: AttributeValue -> Attribute
ariaControls :: AttributeValue -> Attribute
ariaExpanded :: AttributeValue -> Attribute
ariaLabel :: AttributeValue -> Attribute
navbar :: [TabGroup] -> Html
tabClasses :: Tab -> AttributeValue
module Eventlog.Types
data CostCentre
CC :: Word32 -> Text -> Text -> Text -> CostCentre
[cid] :: CostCentre -> Word32
[label] :: CostCentre -> Text
[modul] :: CostCentre -> Text
[loc] :: CostCentre -> Text
data Header
Header :: Text -> Text -> Maybe HeapProfBreakdown -> Text -> Text -> Text -> Int -> Maybe FilePath -> Header
[hJob] :: Header -> Text
[hDate] :: Header -> Text
[hHeapProfileType] :: Header -> Maybe HeapProfBreakdown
[hSamplingRate] :: Header -> Text
[hSampleUnit] :: Header -> Text
[hValueUnit] :: Header -> Text
[hCount] :: Header -> Int
[hProgPath] :: Header -> Maybe FilePath
newtype Bucket
Bucket :: Text -> Bucket
data Sample
Sample :: Bucket -> Double -> Sample
data EventlogType
EventlogType :: Header -> Maybe HeapProfileData -> Maybe TickyProfileData -> EventlogType
[eventlogHeader] :: EventlogType -> Header
[eventlogHeapProfile] :: EventlogType -> Maybe HeapProfileData
[eventlogTickyProfile] :: EventlogType -> Maybe TickyProfileData
data HeapProfileData
HeapProfileData :: Value -> Maybe Value -> Maybe Html -> HeapProfileData
data TickyProfileData
TickyProfileData :: Word64 -> Double -> Html -> TickyProfileData
data BucketInfo
BucketInfo :: Text -> Maybe [Word32] -> Double -> Double -> !Maybe (Double, Double, Double) -> BucketInfo
[shortDescription] :: BucketInfo -> Text
[longDescription] :: BucketInfo -> Maybe [Word32]
[bucketTotal] :: BucketInfo -> Double
[bucketStddev] :: BucketInfo -> Double
[bucketGradient] :: BucketInfo -> !Maybe (Double, Double, Double)
data HeapSample
HeapSample :: Double -> Word64 -> HeapSample
data Frame
Frame :: Double -> [Sample] -> Frame
-- | A trace we also want to show on the graph
data Trace
Trace :: Double -> Text -> Trace
data HeapInfo
HeapInfo :: [HeapSample] -> [HeapSample] -> [HeapSample] -> HeapInfo
[heapSizeSamples] :: HeapInfo -> [HeapSample]
[blocksSizeSamples] :: HeapInfo -> [HeapSample]
[liveBytesSamples] :: HeapInfo -> [HeapSample]
data ProfData
ProfData :: Header -> Map Bucket BucketInfo -> Map Word32 CostCentre -> [Frame] -> [Trace] -> HeapInfo -> Map InfoTablePtr InfoTableLoc -> Map TickyCounterId TickyCounter -> [TickySample] -> Word64 -> ProfData
[profHeader] :: ProfData -> Header
[profTotals] :: ProfData -> Map Bucket BucketInfo
[profCCMap] :: ProfData -> Map Word32 CostCentre
[profFrames] :: ProfData -> [Frame]
[profTraces] :: ProfData -> [Trace]
[profHeap] :: ProfData -> HeapInfo
[profItl] :: ProfData -> Map InfoTablePtr InfoTableLoc
[profTickyCounters] :: ProfData -> Map TickyCounterId TickyCounter
[profTickySamples] :: ProfData -> [TickySample]
[profTotalAllocations] :: ProfData -> Word64
data InfoTablePtr
InfoTablePtr :: Word64 -> InfoTablePtr
data InfoTableLoc
InfoTableLoc :: !Text -> !ClosureType -> !Text -> !Text -> !Text -> !Text -> InfoTableLoc
[itlName] :: InfoTableLoc -> !Text
[itlClosureDesc] :: InfoTableLoc -> !ClosureType
[itlTyDesc] :: InfoTableLoc -> !Text
[itlLbl] :: InfoTableLoc -> !Text
[itlModule] :: InfoTableLoc -> !Text
[itlSrcLoc] :: InfoTableLoc -> !Text
newtype TickyCounterId
TickyCounterId :: Word64 -> TickyCounterId
data TickyCounter
TickyCounter :: Word64 -> Word16 -> TickyCounterArgs -> Text -> InfoTablePtr -> TickyCounter
[tickyCtrId] :: TickyCounter -> Word64
[tickyCtrArity] :: TickyCounter -> Word16
[tickyCtrArgs] :: TickyCounter -> TickyCounterArgs
[tickyCtrName] :: TickyCounter -> Text
[tickyCtrInfo] :: TickyCounter -> InfoTablePtr
data TickySample
TickySample :: Word64 -> Double -> TickySample
[tickyCtrSampleId, tickyCtrEntries, tickyCtrAllocs, tickyCtrAllocd] :: TickySample -> Word64
[tickySampleTime] :: TickySample -> Double
data TickyCounterArgs
TickyCounterArgs :: Text -> [Char] -> [Char] -> TickyCounterArgs
[tickyCounterType] :: TickyCounterArgs -> Text
[tickyCounterFVs] :: TickyCounterArgs -> [Char]
[tickyCounterArgs] :: TickyCounterArgs -> [Char]
data InfoTableLocStatus
None :: InfoTableLocStatus
Missing :: InfoTableLocStatus
Here :: InfoTableLoc -> InfoTableLocStatus
toItblPointer :: Bucket -> InfoTablePtr
toItblPointer_either :: Bucket -> Either String InfoTablePtr
toItblPointer_maybe :: Bucket -> Maybe InfoTablePtr
mkMissing :: Maybe InfoTableLoc -> InfoTableLocStatus
mkClosureInfo :: (k -> a -> InfoTablePtr) -> Map k a -> Map InfoTablePtr InfoTableLoc -> Map k (InfoTableLocStatus, a)
-- | Sample break-down types in heap profiling
data () => HeapProfBreakdown
HeapProfBreakdownCostCentre :: HeapProfBreakdown
HeapProfBreakdownModule :: HeapProfBreakdown
HeapProfBreakdownClosureDescr :: HeapProfBreakdown
HeapProfBreakdownTypeDescr :: HeapProfBreakdown
HeapProfBreakdownRetainer :: HeapProfBreakdown
HeapProfBreakdownBiography :: HeapProfBreakdown
HeapProfBreakdownClosureType :: HeapProfBreakdown
HeapProfBreakdownInfoTable :: HeapProfBreakdown
data () => ClosureType
instance GHC.Show.Show Eventlog.Types.Header
instance Data.Hashable.Class.Hashable Eventlog.Types.Bucket
instance Data.Aeson.Types.ToJSON.ToJSON Eventlog.Types.Bucket
instance GHC.Classes.Eq Eventlog.Types.Bucket
instance GHC.Classes.Ord Eventlog.Types.Bucket
instance GHC.Show.Show Eventlog.Types.Bucket
instance GHC.Show.Show Eventlog.Types.BucketInfo
instance GHC.Show.Show Eventlog.Types.CostCentre
instance GHC.Show.Show Eventlog.Types.Sample
instance GHC.Show.Show Eventlog.Types.HeapSample
instance GHC.Show.Show Eventlog.Types.Frame
instance GHC.Show.Show Eventlog.Types.Trace
instance GHC.Show.Show Eventlog.Types.HeapInfo
instance GHC.Show.Show Eventlog.Types.TickyCounterId
instance GHC.Classes.Eq Eventlog.Types.TickyCounterId
instance GHC.Classes.Ord Eventlog.Types.TickyCounterId
instance GHC.Show.Show Eventlog.Types.TickyCounterArgs
instance GHC.Show.Show Eventlog.Types.TickySample
instance GHC.Show.Show Eventlog.Types.InfoTableLoc
instance GHC.Classes.Ord Eventlog.Types.InfoTablePtr
instance GHC.Classes.Eq Eventlog.Types.InfoTablePtr
instance GHC.Show.Show Eventlog.Types.TickyCounter
instance GHC.Show.Show Eventlog.Types.ProfData
instance GHC.Show.Show Eventlog.Types.InfoTablePtr
instance Data.Aeson.Types.FromJSON.FromJSON Eventlog.Types.TickyCounterArgs
module Eventlog.Trie
outputTree :: Map Word32 CostCentre -> [(Bucket, (Int, BucketInfo))] -> Value
outputTrie :: Map Word32 CostCentre -> TMap Word32 (Int, Text, Text) -> [Value]
newLabel :: Word32 -> State Int Text
outputTrieLoop :: Map Word32 CostCentre -> Text -> Map Word32 (TMap Word32 (Int, Text, Text)) -> State Int [Value]
mkNode :: Text -> Maybe Text -> Text -> Maybe (Int, Text, Text) -> Value
module Eventlog.Total
total :: [Frame] -> (Int, Map Bucket (Double, Double, Maybe (Double, Double, Double)))
module Eventlog.Ticky
tickyTab :: TickyProfileData -> Html
renderTicky :: Word64 -> Map TickyCounterId TickyCounter -> Map InfoTablePtr InfoTableLoc -> [TickySample] -> (Double, Html)
instance GHC.Show.Show Eventlog.Ticky.AccumStats
module Eventlog.Prune
pruneBands :: Args -> Map Bucket BucketInfo -> Map Bucket (Int, BucketInfo)
pruneDetailed :: Args -> Map Bucket BucketInfo -> Map Bucket (Int, BucketInfo)
module Eventlog.HeapProf
chunk :: FilePath -> IO ProfData
module Eventlog.Events
chunk :: Args -> FilePath -> IO ProfData
instance GHC.Show.Show Eventlog.Events.FrameEL
instance GHC.Show.Show Eventlog.Events.CCStack
instance GHC.Show.Show Eventlog.Events.CCSMap
instance GHC.Show.Show Eventlog.Events.EL
module Eventlog.Detailed
renderClosureInfo :: (UArray Int Double, UArray (Int, Int) Double) -> Maybe (Map InfoTablePtr InfoTableLoc) -> Map Bucket (Int, BucketInfo) -> Html
renderSpark :: [(Double, Double)] -> Html
initTable :: Text
getBandValues :: Int -> (UArray Int Double, UArray (Int, Int) Double) -> [(Double, Double)]
module Eventlog.Bands
bands :: Header -> Map Bucket Int -> [Frame] -> (UArray Int Double, UArray (Int, Int) Double)
series :: Set Bucket -> [Frame] -> [Series]
bandsToSeries :: Map Bucket Int -> (UArray Int Double, UArray (Int, Int) Double) -> [Series]
instance GHC.Generics.Generic Eventlog.Bands.Series
instance Data.Aeson.Types.ToJSON.ToJSON Eventlog.Bands.Series
instance GHC.Show.Show Eventlog.Bands.Series
module Eventlog.Vega
bandsToVega :: (BucketInfo -> Text) -> Map Bucket (Int, BucketInfo) -> (UArray Int Double, UArray (Int, Int) Double) -> [VegaEntry]
tracesToVega :: [Trace] -> [VegaTrace]
heapToVega :: HeapInfo -> [VegaHeap]
instance GHC.Generics.Generic Eventlog.Vega.VegaEntry
instance Data.Aeson.Types.ToJSON.ToJSON Eventlog.Vega.VegaEntry
instance GHC.Show.Show Eventlog.Vega.VegaEntry
instance GHC.Generics.Generic Eventlog.Vega.VegaTrace
instance Data.Aeson.Types.ToJSON.ToJSON Eventlog.Vega.VegaTrace
instance GHC.Show.Show Eventlog.Vega.VegaTrace
instance GHC.Generics.Generic Eventlog.Vega.VegaHeap
instance Data.Aeson.Types.ToJSON.ToJSON Eventlog.Vega.VegaHeap
instance GHC.Show.Show Eventlog.Vega.VegaHeap
module Eventlog.Data
generateJson :: FilePath -> Args -> IO EventlogType
generateJsonValidate :: (ProfData -> IO ()) -> FilePath -> Args -> IO EventlogType
generateJsonData :: Args -> ProfData -> HeapProfileData
data EventlogType
EventlogType :: Header -> Maybe HeapProfileData -> Maybe TickyProfileData -> EventlogType
[eventlogHeader] :: EventlogType -> Header
[eventlogHeapProfile] :: EventlogType -> Maybe HeapProfileData
[eventlogTickyProfile] :: EventlogType -> Maybe TickyProfileData
data HeapProfileData
HeapProfileData :: Value -> Maybe Value -> Maybe Html -> HeapProfileData
data TickyProfileData
TickyProfileData :: Word64 -> Double -> Html -> TickyProfileData
module Eventlog.VegaTemplate
data AreaChartType
Stacked :: AreaChartType
Normalized :: AreaChartType
StreamGraph :: AreaChartType
data ChartConfig
ChartConfig :: Double -> Double -> Bool -> Text -> Text -> ChartType -> Maybe Double -> ChartConfig
[cwidth] :: ChartConfig -> Double
[cheight] :: ChartConfig -> Double
[traces] :: ChartConfig -> Bool
[colourScheme] :: ChartConfig -> Text
[lineColourScheme] :: ChartConfig -> Text
[chartType] :: ChartConfig -> ChartType
[fixedYAxisExtent] :: ChartConfig -> Maybe Double
data ChartType
AreaChart :: AreaChartType -> ChartType
LineChart :: ChartType
HeapChart :: ChartType
vegaResult :: ChartConfig -> VegaLite
vegaJson :: ChartConfig -> Value
vegaJsonText :: ChartConfig -> Text
module Eventlog.HtmlTemplate
insertJsonData :: Value -> Html
insertJsonDesc :: Value -> Html
insertColourScheme :: Text -> Html
data_sets :: [Text] -> [Text]
encloseScript :: [Text] -> TabID -> Text -> Html
encloseRawVegaScript :: TabID -> Text -> Html
encloseScriptX :: [Text] -> TabID -> Text -> Html
jsScript :: String -> Html
css :: AttributeValue -> Html
htmlHeader :: Maybe HeapProfileData -> Maybe TickyProfileData -> Args -> Html
template :: EventlogType -> Args -> [TabGroup] -> Html
renderTab :: Header -> Tab -> Html
perTabFooter :: Header -> Html
select_data :: IncludeTraceData -> ChartType -> [Text]
htmlConf :: Args -> ChartType -> ChartConfig
renderChart :: IncludeTraceData -> ChartType -> Bool -> TabID -> Text -> Html
renderChartWithJson :: IncludeTraceData -> ChartType -> TabID -> Value -> Text -> Html
templateString :: EventlogType -> Args -> String
ppHeapProfileType :: HeapProfBreakdown -> Text
allTabs :: EventlogType -> Args -> [TabGroup]
metaTab :: Header -> Args -> Tab
has_heap_profile :: Header -> Bool
allHeapTabs :: Header -> Args -> HeapProfileData -> [TabGroup]
heapTab :: Args -> TabGroup
heapDocs :: Html
heapProfileTabs :: Header -> Args -> HeapProfileData -> TabGroup
noHeapProfileTab :: Tab
noHeapProfileDocs :: Html
mk :: Args -> ChartType -> TabID -> Html
detailedTab :: HeapProfileData -> TabGroup
noDetailedDocs :: Html
costCentresTab :: Args -> HeapProfileData -> TabGroup
noCostCentresDocs :: Html
tickyProfileTabs :: Maybe TickyProfileData -> TabGroup
noTickyDocs :: Html