VPP/g2
Introduction
G2 is a fine-grained event-log viewer. It's highly scalable, supporting O(1e7 events) and O(1e3 discrete display "tracks"). G2 displays binary data generated by the vppinfra "elog.[ch]" logger component. G2 also supports for the CPEL file format, described here.
Usage
$ cd build-root $ make g2-install $ ./install-native/g2/bin/g2 --help g2 [--ticks-per-us <value>][--cpel-input <filename>] [--clib-input <filename]> G2 (x86_64 GNU/Linux) major version 3.0 Built Wed Feb 3 10:58:12 EST 2016
When viewing a ".cpel" file, use "g2 --cpel <filename>". When viewing a vppinfra event log, use "g2 --clib <filename>".
Setting Display Preferences
The file $HOMEDIR/.g2 contains display preferences, which can be overridden. Simply un-comment one of the stanzas shown below, or experiment as desired.
/* * Property / parameter settings for G2 * * Setting for a 1024x768 display: * event_selector_lines=20 * drawbox_height=800 * drawbox_width=600 * * new mac w/ no monitor: * event_selector_lines=20 * drawbox_height=1200 * drawbox_width=700 * * 1600x1200: * drawbox_width=1200 * drawbox_height=1000 * event_selector_lines=25 * * for making screenshots on a Macbook Pro * drawbox_width=1200 * drawbox_height=600 * event_selector_lines=20 */
Screen Taxonomy
Here is an annotated G2 viewer screenshot, corresponding to activity during BGP prefix download. These data were captured on a Cisco IOS-XR system:
The viewer has two main scrollbars: the horizontal axis scrollbar shifts the main drawing area in time; the vertical axis changes the set of visible process traces. The zoomin / zoomout operators change the time scale.
The event selector PolyCheckMenu changes the set of displayed events.
Using these tools -- and considerable patience -- one can make sense of a given event log.
Mouse Gestures
G2 has three fairly sophisticated mouse gesture interfaces which are worth describing in detail. First, left mouse clicking on a display event pops up a per-event detail box:
A left mouse click on an event detail box takes it down.
To zoom to a region of the display, press and hold the left mouse button; drag right or left until the zoom-fence pair appears.
When the zoom operation completes, the display is as follows: