Application instrumentation design questions

Frank Fock Frank.Fock____t-online.de
Fri Jan 25 21:38:25 CET 2002


Hi Felix,

You may consider using the AgentX protocol (RFC 2741) to communicate
between a SNMP master agent and your API layer(s) (each acting as an
independent AgentX subagent). AgentX++ provides both, a customizable
master agent and a subagent API. If the subagent API is something you
do not want to integrate your API layers, then you will have to use
something
else. Most people are then using CORBA, but simple socket communication
may also be reasonable.

Hope this helps.

Regards,
Frank

"Lung, Felix" wrote:

>
>
> Hi,
>         I had a couple of design questions for a major project that I
> am undertaking and I was looking to see if others out there could
> provide their experiences/suggestions if they have had a similar
> environment.
>
>         Basically we're looking to standardize the way we instrument
> and monitor all of our in house software applications.  They range
> from apps running on W2K boxes to  Linux/Solaris boxes.  We chose to
> go the route of SNMP as the base protocol and will be obtaining a 3rd
> party management application. For the SNMP Agent side, we have pretty
> decided to go with Agent++/SNMP++ code because of the availability of
> the code as well as the low cost tools.  Given that I had very little
> knowledge of SNMP, coming across SNMP++ and Agent++ was a godsend!
>
>         What our own requirements were for the instrumentation was to
> keep an SNMP Agent separate from the application being instrumented
> but on the same box of course.  Thus the Agent would run probably as a
> service under our windows environments (or a daemon under unix?).
> That also means that we would need to build a piece of s/w that would
> connect the Apps to the Agent somehow.  This s/w or API would have to
> be lightweight for us since our applications tend to be very
> computationally and memory intensive.  We also wanted to hide SNMP
> stuff away from the application.
>
>         Thus this is where I was hoping someone could help provide
> ideas or suggestions if they have done something like this before.
> Here's a drawing of what I'm talking about:
>
> [App/API] <-- (A) --> [SNMP Agent] <-- SNMP --> [Management
> application]
>
> The API on the app side would be something like:
> bool LogError(int nErrorCode, const char* ..);
> bool LogMetric(int nMetricCode, .. );
>
> Questions:
> 1) Where (A) is in the diagram above, we thought about either:
>         - Implementing our own protocol/interface over sockets or
>         - Use SNMP to communicate though we would rather not do this
> since that would mean the API layer would need to know about SNMP etc.
>
>         Any suggestions? Am I being nuts here?
>
> 2) Has anyone ever done something like this before? Is this even a
> right approach? On paper, this seems to work well.  We want to be able
> to monitor metrics from our applications as well as detect traps sent
> from the application to the Agent etc.  Any help or suggestions would
> be greatly appreciated.
>
> Sincerely,
> Felix Lung
>





More information about the AGENTPP mailing list