The ShiViz vis­ual­izat­ion engi­ne gene­r­ate­s inter­active comm­uni­ca­tion graphs from dis­tri­but­ed sys­tem exe­cut­ion logs.

What am I looking at?

In the visualization:

How do I interact with the visualization?

The visualization supports the following actions:

How is this tool useful?

Here are four use-cases that ShiViz helps to support:

What is the input log format to the tool?

You can specify the log format using a regular expression on the Input page. The regular expression must contain the following three named capture groups:

You can also specify other capture groups other than event to capture fields (such as date, IP, priority) which are shown in the sidebar while hovering over an event in the visualization. These fields, unless sub-groups of the event group, will not be displayed as part of the event message.

For example, for a log entry like:

28/07/14 01:15 PM Event executed
process2 {"process1" : time1, "process2" : time2, ..., "processN" : timeN}
We might have a parser RegExp like:
(?<date>\d\d/\d\d/\d\d \d\d:\d\d (AM|PM)) (?<event>.*)\n(?<host>\w+) (?<clock>\{.*\})

The capture groups in ShiViz is not standard regexp syntax. We recommend using a plain JS regexp tester with regular capture groups to develop expressions, and name the capture groups afterwards.

How can I generate logs to use with ShiViz?

We developed several ShiViz-compatible vector-clock instrumentation libraries for C/C++/Java/Go systems.

In general, you can study the execution of any system that produces logs in a format that can be parsed using the RegExp mechanism above.

More information

  • h
  • i
  • a


Upload a log by selecting a file with the following format:

  • The first line of the file is the log parsing regular expression. If left empty, the default regular expression "(?<event>.*)\n(?<host>\S*) (?<clock>{.*})" will be used.
  • The second line of the file is the multiple executions regular expression delimiter. This can be left empty if the log does not contain multiple executions.
  • The rest of the file is the log.
  • Sort processes in order by:
    • h
    • i
    • a

    Cluster executions by:

    Find network motifs: