[omniORB] Performance monitoring

Fazal Majid fmajid@kefta.com
Tue, 6 Nov 2001 10:36:37 -0800


> Is there either
>
> (1) already something in the OmniORB code that will instrument
> the time each
> remote invocation takes, or:
>
> (2) any suggestions as to where in the OmniORB code I should insert my own
> instrumentation code?

The way we do it is we make all our Corba servers inherit a common IDL
definition and the servants inherit a common implementation class. We move
all our management instrumentation code there (i.e. registering with the
naming service, performance monitoring, even a debug method that allows us
to modify the server's internal state and so on).

We are implementing our servers in Python, however, this makes it very easy
to develop this kind of instrumentation but may not be relevant to you if
you program in C++.

One of the things we have is a method in the common implementation class
that updates exponentially decaying average counters similar to a Unix load
average. With a simple monitoring console, we can see when performance
starts to degrade.

--
Fazal Majid                          Chief Technology Officer
fmajid@kefta.com                     Kefta
Voice: +1 415 391 6881 ext 8014      153 Kearny St. Suite 209
Fax: +1 415 391 7097                 San Francisco, CA 94108, USA