[Haskell-cafe] tplot and splot - analyst's swiss army knifes for visualizing log files

Eugene Kirpichov ekirpichov at gmail.com
Fri Mar 18 10:06:52 CET 2011


Hello Ferenc,

Thank you for reporting the bug - it's very curious, I will look into
it in the nearest couple of days.

Could you please send me privately the actual input file on which the
program crashes?

I have added a downloadable link to the presentation to all places
where the slideshare link was present (finally making some use of my
hosting...).
Here it is: http://jkff.info/presentations/two-visualization-tools.pdf

2011/3/17 Ferenc Wagner <wferi at niif.hu>:
> Eugene Kirpichov <ekirpichov at gmail.com> writes:
>
>> 2010/12/17 Henning Thielemann <schlepptop at henning-thielemann.de>:
>>
>>> Eugene Kirpichov schrieb:
>>>
>>>> I've published a large presentation about two Haskell-based tools of
>>>> mine - tplot and splot.
>>>>
>>>> Their motto is "visualize system behavior from logs with a shell one-liner".
>>>> Based on my experience, they usually seem to live up to this motto.
>>>>
>>>>
>>>> http://www.slideshare.net/jkff/two-visualization-tools
>>>>
>>>>
>>>> [attention attractor: the presentation has *really a lot* of pictures]
>>>
>>> ... and complete TeX code attached! :-) However can I also view a simple
>>> PDF document of the presentation?
>>
>> You can download the PDF here -
>> http://www.slideshare.net/jkff/two-visualization-tools/download
>> (however one has to be logged in to Slideshare, for example with a
>> facebook acct., for this link to work)
>>
>> Just in case, I'm also attaching a PDF of the current version to this
>> email, but visiting the link is preferable, since I'll be updating the
>> contents.
>
> Please, if at all possible, link an up-to-date downloadable PDF from the
> documentation (http://hackage.haskell.org/package/timeplot) or from the
> homepage (http://haskell.org/haskellwiki/Timeplot) to make our life
> easier!
>
> Anyway, your tools look very interesting, I gave tplot a shot.
> Unfortunately, I hit various strange failures:
>
> $ head -4 or.log
> Mar  8 18:55:11 =overrun 1
> Mar  8 18:55:13 =overrun 6
> Mar  8 18:55:15 =overrun 13
> Mar  8 18:55:16 =overrun 3
>
> $ wc -l or.log
> 466 or.log
>
> $ ls -l or.log overruns466.log
> lrwxrwxrwx 1 wferi wferi    15 Mar 17 14:45 or.log -> overruns466.log
> -rw-rw-r-- 1 wferi wferi 12587 Mar 17 14:35 overruns466.log
>
> $ tplot -if or.log -tf 'date %b %e %T' -o overruns.png -k 'overrun' 'sum 10'
>
> This worked just fine.  However, when given the same file with a longer
> name, tplot does not terminate:
>
> $ tplot -if overruns466.log -tf 'date %b %e %T' -o overruns.png -k 'overrun' 'sum 10'
> ^C
>
> while doing the same the other way around still works:
>
> $ cat overruns466.log | tplot -if - -tf 'date %b %e %T' -o overruns.png -k 'overrun' 'sum 10'
>
> Choosing any other extension (svg, pdf or ps) also results in
> nontermination (or at least unbearable runtime and memory consumption).
>
> Adding a simple no-op statement, like:
>
> diff -ur ../timeplot-0.2.19/Tools/TimePlot.hs ./Tools/TimePlot.hs
> --- ../timeplot-0.2.19/Tools/TimePlot.hs        2011-03-09 11:36:24.000000000 +0100
> +++ ./Tools/TimePlot.hs 2011-03-17 16:42:57.247625607 +0100
> @@ -627,6 +627,7 @@
>   when (null args || args == ["--help"]) $ showHelp >> exitSuccess
>   case (readConf args) of
>     Conf conf -> do
> +      putStr ""
>       let render = case (outFormat conf) of {
>           PNG    -> \c w h f -> const () `fmap` renderableToPNGFile c w h f;
>           PDF    -> renderableToPDFFile ;
>
> also results in nontermination, even in the previously working case.
> Something is clearly wrong here, seemingly in the runtime IO system.
> --
> Thanks,
> Feri.
>
> GHC 6.12.1
> Chart-0.14
> bytestring-0.9.1.5
> bytestring-lexing-0.2.1
> cairo-0.11.0
> colour-2.3.1
> containers-0.3.0.0
> data-accessor-0.2.1.3
> data-accessor-template-0.2.1.7
> haskell98-1.0.1.1
> regex-tdfa-1.1.4
> strptime-1.0.1
> time-1.1.4
>



-- 
Eugene Kirpichov
Principal Engineer,
Mirantis Inc. http://www.mirantis.com/



More information about the Haskell-Cafe mailing list