9 Replies Latest reply: Jun 27, 2011 4:29 AM by AndyCoates RSS

How to write a component monitor -- is there an API?

christo667
Currently Being Moderated

We downloaded, installed, and are experimenting with APM.  We have some in-house written applications that we would like to monitor using an HTTP interface similar to the Tomcat Monitor.  I made an experiment and have that template working fetching a custom page I created.  I see that something is fetching the web page and parsing the values out of it.  I exported the template, and looking at it I see it's a .NET class array serialization.  There is "something" underneath this template that is driving what variables are parsed and has the /manager/status part of the URL hard coded into it.  It is that "something" I need to be able to write.  Is there an API for creating a .NET DLL or ActiveX component that can be installed in Orion to extend APM to be able to monitor custom apps with an HTTP interface?  Basically, something very similar to the Tomcat monitor, but preferably I'd provide a more generic GET/POST interface.

  • Re: How to write a component monitor -- is there an API?
    qle
    Currently Being Moderated

    Check out the Orion SDK forum for the download and further information that might answer your question.

    • Re: How to write a component monitor -- is there an API?
      RogerWong
      Currently Being Moderated

      The Orion SDK is the wrong path for this.

      What might help is the Perl script for monitoring the Apache server status page that we used to ship back before we compiled it into its own monitor.  It would pick out certain values from the web page and return them to APM as a statistic.

      You can find this old Linux script template in the Content Exchange:

      Apache

      I hope you'll be able to customize the script to pick out the statistics you're reporting on your custom status web page.

      • Re: How to write a component monitor -- is there an API?
        christo667
        Currently Being Moderated

        Thanks, Roger.  Why do you say the Orion SDK is the wrong path?  Frankly, I have no interest in the server overhead of repeatedly running Perl scripts. 

        • Re: How to write a component monitor -- is there an API?
          martin.susil
          Currently Being Moderated

          APM currently does not support extensibility by using custom .NET plugins - we don't expose any API to do that.  That's why Orion SDK won't help here, it's just not supported.

          I agree with Roger, that if default set of monitors in APM doesn't suit your needs, then only option is to write a script that will do what you want and use one of our script monitors (Windows Script Monitor, PowerShell Script Monitor, Linux/Unix Script Monitor) to execute it and parse results.

          • Re: How to write a component monitor -- is there an API?
            christo667
            Currently Being Moderated

            Thanks, Martin, I agree with you and Roger.  I looked at the SDK, and obviously, it's not applicable.  I'm looking at doing this with Windows performance counters.  If all else fails, to scripting we go.

            • Re: How to write a component monitor -- is there an API?
              christo667
              Currently Being Moderated

              Actually, Roger and Martin, maybe I'm going about this the wrong way entirely.  The software I need to monitor is software I wrote.  I can output these counters in just about any manner that would be most efficient for Orion.  The only reason I was thinking of using the HTTP interface is that I already have this information available that way.  However, we already use Orion NPM for monitoring many of our network elements, the network guys like it a lot, we would like APM anyway for the database server monitoring, and it's just plain nice to have everything wrapped up in one monitoring package.  So, it's definitely worth implementing a new facility to support Orion APM.

              The data we care about is almost trivially simple: queue counts associated with various enpoint names.  In CSV, the output would be like:

              QueueCount,endpoint_name_1,124567,233,456,89,2043
              QueueCount,endpoint_name_2,34567,123,678,16,4096
              QueueCount,endpoint_name_3,345345,234,4235,56,2435
              ...
              QueueCount,endpoint_name_4,23423,345,3456,23423,23235

              There are also some singleton time based counters I would like to put out.  Just something like:

              TotalMessages,4346534

               

              All are simply unsigned 32 bit counts, except, of course, the data element keyword and endpoint names which are simple short strings with no whitespace.

              What would be the most efficient means of getting this data to Orion?  Flat file?  WMI performance counters?  Database rows?  The one thing I do not want to have to mess around with is SNMP, way too much overhead and rather painful amount of coding.

              I'd appreciate anyone's advice on this.

More Like This

  • Retrieving data ...