packages feed

jaeger-flamegraph 1.3.1 → 1.3.2

raw patch · 2 files changed

+11/−11 lines, 2 filesdep ~QuickCheckdep ~optparse-applicative

Dependency ranges changed: QuickCheck, optparse-applicative

Files

exe/Main.hs view
@@ -8,13 +8,14 @@ import           Data.Aeson          (eitherDecodeStrict) import qualified Data.ByteString     as BS import           Data.Foldable       (traverse_)-import           Data.List           (intersect, nub, (\\))+import           Data.List           (intersect) import           Data.List.Extra     (groupSort) import           Data.List.NonEmpty  (NonEmpty ((:|)), toList) import           Data.Map.Strict     (Map) import qualified Data.Map.Strict     as Map+import           Data.Set            (Set) import qualified Data.Set            as Set-import           Data.Maybe          (maybeToList)+import           Data.Maybe          (maybeToList, mapMaybe) import           Data.Text           (Text, intercalate, map, pack) import           Data.Text.IO        (putStrLn) import           Jaeger.Data@@ -120,15 +121,14 @@ -- like you can in a single-parent world. This may make writing a GUI harder -- since you can't do certain flame-graph-like visualizations. buildFlames :: Processes -> Lookup -> [Flame]-buildFlames procs ss = build <$>-                       (maybeToList . lookupSpan =<< (nub $ roots ++ orphans))+buildFlames procs ss = mapMaybe (fmap build . lookupSpan) $ Set.toList $ roots `Set.union` orphans   where-    roots :: [Reference]-    roots = fst <$> filter (\ (_, Span{..}) -> null references) ss-    orphans :: [Reference]-    orphans = Set.foldl' f [] absentees-      where absentees  = Map.keysSet children `Set.difference` Map.keysSet spans-            f os absent = maybe os (os ++) $ Map.lookup absent children+    roots :: Set Reference+    roots = Map.keysSet $ Map.filter (\Span{..} -> null references) spans+    orphans :: Set Reference+    orphans = Set.foldl' f mempty absentees+      where absentees   = Map.keysSet children `Set.difference` Map.keysSet spans+            f os absent = maybe os (\xs -> os `Set.union` Set.fromList xs) $ Map.lookup absent children     spans :: Map Reference Span     spans = Map.fromList ss     children :: Map Reference [Reference]
jaeger-flamegraph.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.2 name:                jaeger-flamegraph-version:             1.3.1+version:             1.3.2 synopsis:            Generate flamegraphs from Jaeger .json dumps. license:             BSD-3-Clause license-file:        LICENSE