The YBOS spy daemon


The main task of a spy daemon is to provide transparent access to events that are not present in a local circular buffer. Furthermore, the spy daemon must balance between high efficiency, obtained prefetching the events, and low system load, obtained minimising unneeded event prefetches.


The YBOS spy daemon reads the events from a YBOS file and packs them as if they came from the buffer between a farm builder and a farm recorder


Index


Program syntax

ybosspydaemon [-n processname]


Commands

init [circbuf]
Initialize the process. Must be called at startup and after any error.

The circbuf parameter, if present, sets the lname shared variable.

Puts the process in the INIT_STATE.

start [filename]
Open the file and start serving. Can be used only when the process is in the INIT_STATE.

The filename parameter, if present, sets the fname shared variable.

If the filename is "-", no file is opened, but the process starts serving with no events. Moreover, the fname shared variable is not updated.

Puts the process in the RUNNING_STATE.

pause
Pause reading new events. Can be used only when the process is in the RUNNING_STATE.

Puts the process in the PAUSE_STATE.

resume
Resume reading new events (if in PAUSE_STATE).

Puts the process in the RUNNING_STATE.

reconnect [filename]
Close the old file and open another one. Can be used only when the process is in the RUNNING_STATE or PAUSE_STATE.

The filename parameter, if present, sets the fname shared variable.

disconnect
Close the file, but continue serving empty. Can be used only when the process is in the RUNNING_STATE or PAUSE_STATE.

update
Update shared variables. Can be used only when the process is in the RUNNING_STATE.

end
End serving. Can be used only when the process is in the RUNNING_STATE.

Puts the process in the INIT_STATE.

exit
End serving and kill the process.

Calls the end command before using exit.


Shared variables

Name Type Access Description Default value
runstate INTEGER R Status of the process.

Can be on of the following:

  • UNDEFINED_STATE
  • INIT_STATE
  • RUNNING_STATE
  • PAUSE_STATE
UNDEFINED_STATE
timeout_us INTEGER R/W Timeout time in microseconds 10000
timeouts INTEGER R Number of timeouts from the start of serving. 0

Reset after the start command.

fname STRING R/W Name of the YBOS file. a.ybos
lname STRING R/W Name of the circular buffer. /tmp/B_1_1
circsize INTEGER R/W Size of the circular buffer. 1 Mb
bufsize INTEGER R/W Size of the packing buffer. 256 kb
ignored INTEGER R Number of events ignored because too large. 0

Reset after the start command.

maxevents INTEGER R/W Maximum number of events per packet. 100
skip INTEGER R/W Number of events to skip for every event read. 0
at_EOF INTEGER R 0 if the daemon is reading from a file, 1 else 1
upfreq INTEGER R/W Long term status update frequency. (Expressed in number of loops)

If ==0, updated at short term update only.

5
upfreq_l INTEGER R/W Short term status update frequency. (Expressed in number of loops)
It also updates long term status.

If ==0, the automatic update is disabled.

10
sg_msecs INTEGER R Miliseconds from the last start or resume. 0

Updated every upfreq cycles.

sg_packs INTEGER R Number of packets received from the last start or resume. 0

Updated every upfreq cycles.

sg_cpu INTEGER R CPU used from the last start or resume. (Expressed in 10-9) 0

Updated every upfreq cycles.

sg_gbytes INTEGER R GBytes received (230) from the last start or resume. 0

Updated every upfreq cycles.

sg_bytes INTEGER R Bytes received (mod GB) from the last start or resume. 0

Updated every upfreq cycles.

sg_uptime INTEGER R The time at the last long term status update. (As reported by time)

Set to 0 if no update yet.

0

Updated every upfreq cycles.

sl_msecs INTEGER R Miliseconds from the last update. 0

Updated every upfreq_l cycles.

sl_packs INTEGER R Number of packets received from the last update. 0

Updated every upfreq_l cycles.

sl_cpu INTEGER R CPU used from the last update. (Expressed in 10-9) 0

Updated every upfreq_l cycles.

sl_bytes INTEGER R Bytes received from the last update. 0

Updated every upfreq_l cycles.

sl_uptime INTEGER R The time at the last short term status update. (As reported by time)

Set to 0 if no update yet.

0

Updated every upfreq_l cycles.


Back to the spy daemons page. Top of the page.
Send comments to: Igor Sfiligoi

Created:15.12.1998
Last modified:15.12.1998