-- 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