Service Monitoring

The Video Recognition Gateway (VIRGO) command line tool has a service monitoring user interface built in. Execute the following command in a shell window to activate continuous monitoring:

> virgo service monitor

After executing this command, VIRGO clears the terminal window and presents the following live screen:

Status    Feed      PID    Epoch     P-Time        Resolution FPS    DPS   dDt    dRt    #D     #D-Badge  #D-Face  #D-Skip  #R    #R-Face  #R-Err  #R-Skip  #Evt   %CPU  GPU#  GPU   GPU-Name
ok        camera_1  14536  12/06/17  00:24:13.450  1280x720   120    8ms   250ms  120    18     10        0        0        8     0        0       0        1240   1%    0     VF    GTX 1060
ok        camera_2  67289  13:07:12  80:10:00.000  1920x1080  29.97  8ms   250ms  1920   1400   0         0        0        1000  50       1       0        10     4%    1     VF    GTX 1050
inactive  camera_3

Note that the screen is live, which means that VIRGO continuously updates it every second. You can quit monitoring by pressing the ‘q' key or by pressing Ctrl-C. Also please keep in mind that VIRGO only shows as many columns as fit on the screen. If you do not see all columns then this means that your terminal window is not wide enough. Make the window wider to see all of the columns.

The service monitor UI allows you to scroll up and down when there are more feeds than fit vertically in the terminal window. Use the cursor up key to scroll up and the cursor down key to scroll down.

The following table explains what the various columns in the monitoring output mean:

Column Name Description
Status The feed status. This is one of ok, inactive, eos, error, or failure.
Feed The feed name.
PID The PID of the feed daemon if the daemon is running
Epoch The time when the feed processed the first frame in the video stream.
P-Time The amount of time that the feed has spent on processing the video stream. This is in terms of milliseconds.
Resolution The width and height of a video frame in pixels
FPS The frames per second of the input video.
DPS The number of detections per second.
dDt The latency of a single detection operation in milliseconds.
dRt The latency of a single recognition operation in milliseconds.
#D The number of detection operations that have been triggered.
#D-Badge The number of badges that have been detected.
#D-Face The number of faces that have been detected.
#D-Skip The number of detection operations that have been skipped due to detector overcommitment. This means that no detector was available for a video frame because all detectors were busy at that time.
#R The number of face recognition or reconfirmation operations that have been triggered.
#R-Face The number of successful face recognition or reconfirmation operations that have been run.
#R-Err The number of face recognition or reconfirmation operations that have failed for some reason.
#R-Skip The number of recognition operations that have been skipped due to recognizer overcommitment. This means that no recognizer was available for a face image because all recognizers were busy at that time.
#Evt The number of events that have been reported.
%CPU How CPU is used by the feed. Note that this number is in the range 0% to CPU_COUNT * 100%.
GPU# The GPU ID. Every GPU in the system is assigned a unique ID. This entry is blank if the feed does not use a GPU.
GPU A string which indicates which modules in the feed are using the GPU:
V -> video decoder
F -> face detector
B -> badge detector
O -> object detector
An empty/non-existing string indicates that the feed is not using the GPU at all.
GPU-Name The name of the GPU. Note that the name is not unique because a system may be equipped with more than one GPU of the same model and make. This entry is blank if the feed does not use a GPU.

Creating CSV Files

You can create a CSV file with all the information from the live service monitor screen by invoking the service monitor like this:

> virgo service monitor > my.csv

This command tells VIRGO that it should write the service monitor information into a CSV file instead of showing it on the screen. VIRGO will continue to write feed statistics once per second to the CSV file until you stop it by pressing Control-C in your terminal window.

VIRGO writes one line per feed to the CSV file and it repeats this process every second. It even includes inactive feeds by default. If you only want to include active feeds in the CSV file then pass the "–active-only" command line switch to VIRGO.

See Also