The ewagent process is a component of the SeisNetWatch product provided by ISTI to the USGS. SeisNetWatch is a parametric rule-based network monitoring system comprised of agents (which feed data), an NSI server (which collects and interprets data), and clients (which obtain information from the server). The ewagent is a parameteric data feeding agent that observes trace_buf packets flowing through an Earthworm Ring Buffer and reports what it sees to the NSI server. The primary information that the ewagent reports is that trace data for any channel, for stations at this installation, are showing up in the WaveRing and what the data latency are.
The ewagent is a product of ISTI and is available free of charge to any academic institution and US Federal Government agency. Contact ISTI for more information.
At startup the ewagent reads its configuration file for a number of settings specific to the Earthworm installation it is monitoring: the name of the module, the ring it should attach to, whether to log or not, and two polling values. The polling values are the duration of a WAVE_RING poll and the interval between pollings. In addition to the Earthworm settings for the ewagent, it needs to know where to send the parametric messages it builds. These get sent to the NSI via CORBA Event Channels and thus it must know 3 IIOP event channel addresses. These are simply an IP address and a port number. Finally the ewagent obtains some configuration information to describe itself to the NSI and this is done via the AgentName, Region, and Installation parameters. These three parameters are settable by the user to specify where the agent is operating. In addtion to these three agent descriptors, the agent also reports its version number, type, and the name of the host on which it is running.
After reading in all of its parameters from the configuration file, the ewagent attaches to the 3 Event Channels running on the same server where the NSI is located. Should any of these Event Channels disappear (because the NSI's host dies), the ewagent will exit. The ewagent will sit and wait for the Event Channels to appear before doing any polling.
Once the agent attaches to the Event Channels successfully, it attaches to the WaveRing specified and begins a polling cycle.
The ewagent sends a heartbeat to the WaveRing and an ID_MSG to the NSI at the beginning of each polling cycle. The ID_MSG tells the NSI all of the information about the agent so that subsequent Dynamic Parameter Messages (DP_MSG) will be linked to the agent. The ewagent then begins a polling cycle and starts observing trace_buf packets in the WaveRing. It dynamically stores the SCN for each packet it observes and measures the following values for later reporting:
The first parameter gives the end-user some idea of the transmission delay of the data being generated from its source and reaching its final destination in the WaveRing. The start time of the packet provides an idea of the timestamp of that packet and is just a point of reference. The "Seconds since channel last observed" parameter is useful to see if a packet has stopped being delivered to the WaveRing. The sample rate is merely a way for the end user to know what the SCN's sampling frequency is. Each of the dynamic values is suffix'ed with the channel name.
In addition, the ewagent reports the time that the poll started, how long the poll lasted, and how long since the last poll.
After the polling period is complete, the ewagent sends the information for the last packet it observed to the NSI one station at a time. Once every DP_MSG for the station's observed has been sent, the ewagent sleeps for the specified polling interval.