(last revised 8 June, 2001)
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 Network Station Information
(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
The ewagent is a product of ISTI and is available free of charge to
any academic institution and US Federal Government agency. Contact us for more information (and licensing if you are neither of the above).
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 server via CORBA Event Channels and thus it must
know the 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 server, which 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, its
type, and the name of the host on which it is running. It is critical that
no two agents share the same AgentName.
After reading in all of its parameters from the configuration file,
the ewagent attaches to the Event Channels running on the same server where
the NSI is located. The ewagent will wait for the Event Channels to appear
before doing any polling. Should any of these Event Channels disappear
(because the NSI's host dies), the ewagent will exit.
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
server at the beginning of each polling cycle. The ID_MSG tells the NSI
server all of the information about the agent so that subsequent Dynamic
Parameter Messages (DP_MSGs) 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.
Seconds of Latency of the channel = packet_end_time - system_time_observed
Start time of the channel's packet
Seconds since channel last observed
Sample rate of the last packet
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 server, one station at a time.
Once all the DP_MSGs for the stations observed have been sent, the ewagent
sleeps for the specified polling interval.
| ewagent Configuration Commands
For more information please contact us.