DX Application Performance Management

Expand all | Collapse all

EPAgent - publish static string metric

  • 1.  EPAgent - publish static string metric

    Posted 01-12-2017 12:24 PM

    Is there a way to publish a static value with the environment performance agent (epagent) much like the EM Host, EM Port such?

     

    I would like to add an agent configuration version number to then be able to query within APM which epagents have which version of the epagent configuration.

     

    We are working on a consolidated epagent that we can deploy to AIX, SLES and RHEL and the differences in the plugins be controlled by IntroscopeEPAgent.properties.aix | sles | rhel.  With this, instead of having different install images for the different APM environments and OS, we will have a single agent install image that will be deployed to all servers, in all environments.

     

    Now it is a matter of trying to keep track of which servers have which version of the consolidated agent and thought that if I could publish something like a "Build and Release" metric that is published one time, I could generate a report listing which agent configuration version the server has.

     

    Thank you,

     

    Billy



  • 2.  Re: EPAgent - publish static string metric

    Posted 01-12-2017 12:47 PM

    There are probably more elegant options but you could write a Java plugin to generate the metrics you want.

    This is an example of something that works, just simply printing the metrics to stdout gets them in as metrics

     

    import java.io.PrintStream;
    public class EPAPlugin
    {
     public static void main(String[] args)
     {
       main(args, System.out);
     }

     public static void main(String[] args, PrintStream out)  {
       out.println("myMetric=100");
     }
    }

     

    So you would get myMetric with a value of 100 under each EPAgent that runs this.

    You would package up the compiled code in a jar file that you put in the EPAgent's classpath

     

    For agent configuration, you would have something simple like

     

    introscope.epagent.plugins.stateful.names=myplugin

    introscope.epagent.stateful.myplugin.class=EPAPlugin

     

     

    You can also put metrics straight into the built-in HTTP server, info here:

    https://docops.ca.com/ca-apm/10-5/en/implementing-agents/ep-agent/configure-the-epagent#ConfiguretheEPAgent-ConfiguretheEPAgentforHTTPGETInput



  • 3.  Re: EPAgent - publish static string metric

    Posted 01-12-2017 01:25 PM

    Thank you David.

     

    I'm hoping for something better than a stateful or stateless plugin.  Sort of hoping there is a magic parameter I could add to the IntroscopeEPAgent.properties file that will magically appear like the EM Host, Java Version and the like string Metrics.

    version.pl

    #!/usr/bin/perl

    eval

    {

         printf qq{<metric type="StringEvent" name="EPAgent\|Config:version" value="01122017"/>\n};

    }

     

    Then add this as a stateless plug in that runs every 1440 minutes (1 day).

     

    Does anyone have any other solutions?

     

    Thanks,

    Billy



  • 4.  Re: EPAgent - publish static string metric

    Posted 01-19-2017 08:23 AM

     

    So this would provide a metric that we could query.  Playing around the idea of having all plugins publish a version number under the PerMonAgent/EPAgent/Plugins/<plugin>:version but we have been working toward having a consolidated epagent where all plugins for all platforms would be included so if we did change a plug in, we could just deploy the full agent again.

     

    But if the powers that be wish to be able to deploy a plugin independently, it would be nice to be able to locate all the hosts the plugin needs to be deployed to.

     

    Now had a crazy idea, why not have a Perl program that is ran from the EPACtrl.sh, so before the agent is started, that will go to a central deployment server/mount point, and determine if the plugins need to be updated.  If they do, back up existing plugin, copy new plugin from central and log all of this to the IntroscopeEPA.log file.  More than likely would not be able to get that through our security or a change control review, but would be cool to be able to auto deploy changes to all epagents.



  • 5.  Re: EPAgent - publish static string metric

    Posted 01-19-2017 11:50 AM

    For my own edification, why not just use ACC?

    So you want to publish a version number for each specific plugin, correct? Or just the agent as a whole?



  • 6.  Re: EPAgent - publish static string metric

    Posted 01-19-2017 01:11 PM

    Very good question and one that I ventured down and with the ACC, it is another process on the host and it has the ability to inject files into the agent directory.

    Given the separated roles, the CA APM admins request the system admins (two or three different departments) to deploy agents.  We provide instructions, environment and the zip/tar/directory for the agent to the specific department with a list of servers within a change request.  These artifacts are reviewed and we start to deploy to development/test then a week later to QA/Stress then the results are investigated and a production impact report is authored.  Once the report has been reviewed by the change control board, and we have permission to deploy, then our change request tasks for production are approved so the system admins can deploy.

     

    Why make it easy?

     

    Each time I've tried to start a proof of concept on deploying the ACC, I get pulled to do something else.  Was hoping to get enough time before we upgrade from 10.0 to 10.5 to see how the ACC will change things, how to instruct the various teams how to use it since I very highly doubt that they will let a non-system admin to deploy to a production server.

     

    There was two options, to publish a custom version number for our epagent with all of our plugins, configurations and such or to publish a version number for each of the plugins.  We have opted to have a single version number for the agent with the understanding we have only one epagent for the three platforms (AIX, SLES, RHEL).  So if we need to update any of the plugins or configuration, we are going to deploy the full agent not just a single file.



  • 7.  Re: EPAgent - publish static string metric

    Posted 01-12-2017 01:50 PM

    Hi Billy:

    Made a discussion since appears to be customization. I asked internally for a response. No guarantee will get one . But the request is in the right place ;-)

     

    Thanks

    Hal