dph-event-seer: make 'ops' display absolute timestamp of event
authorAmos Robinson <amos.robinson@gmail.com>
Thu, 23 Aug 2012 04:21:17 +0000 (14:21 +1000)
committerAmos Robinson <amos.robinson@gmail.com>
Mon, 27 Aug 2012 01:33:19 +0000 (11:33 +1000)
dph-event-seer/src/DphOps.hs

index fd92e5d..c4aee62 100644 (file)
@@ -117,7 +117,7 @@ instance Pretty GangEvent where
         text s
 
 -- Display all operations and duration, ordered decreasing
-data DphOpsState = DphOpsState (Map Timestamp [W.Comp]) Timestamp Int
+data DphOpsState = DphOpsState (Map Timestamp [(W.Comp, Timestamp)]) Timestamp Int
 
 dphOpsMachine :: Machine DphOpsState GangEvent
 dphOpsMachine = Machine
@@ -131,8 +131,8 @@ dphOpsMachine = Machine
 
   delt (DphOpsState ops total unparse) evt
    = case parseComp evt of
-     POk (DTComplete comp duration) _ ->
-      Just $ DphOpsState (update ops duration comp) (total + duration) unparse
+     POk (DTComplete comp duration) t ->
+      Just $ DphOpsState (update ops duration (comp,t)) (total + duration) unparse
      PUnparsable        ->
       Just $ DphOpsState ops total (unparse+1)
      _                  ->
@@ -154,11 +154,13 @@ instance Pretty DphOpsState where
    ops' = vcat $ map pprOps $ reverse $ M.assocs ops
 
    pprOps (duration,cs) = vcat $ map (pprOp duration) cs
-   pprOp duration c     = padLines (cat
+   pprOp duration (c,t) = padLines (cat
         [ pprPercent duration
         , text " "
         , padR 10 (text "(" <> pprTimestampEng duration <> text ")")
         , text " "
+        , padR 15 $ pprTimestampAbs t
+        , text " "
         ]) (show $ ppr c)
    pprPercent   v = padR 5  $ ppr (v * 100 `div` total) <> text "%"