Icon

Comments have been closed on this page. Please use AppMon & UEM Open Q & A forum for questions about this plugin.

Overview

 

This plugin opens an HTTP REST Endpoint so that external tools such as JMeter, Load Runner, Synthetic Monitoring Tools ... can FEED measures into Dynatrace.

Name and Version

Generic Measure Monitoring Plugin

Compatible with

Dynatrace 6.3+

Author

Andreas Grabner (Dynatrace)

License

Dynatrace Experimental Software License

Support Level

Not Supported

Download

com.dynatrace.community_1.0.0.jar

More information

Find more information on GitHub

  1. Anonymous (login to see details)

    I want to be the first to say: thank you so much for this!

    1. Anonymous (login to see details)

      Thanks for the nice words. Happy for any feedback. This is my first cut - lets see what other ideas this opens

  2. Anonymous (login to see details)

    Hi Andreas Grabner

    I have installed the plugin , but it is not showing up in the monitors even after restarting Dynatrace Server. Please let me know how to fix it.

     

    Thanks

    Ram

    1. Anonymous (login to see details)

      Does it show up in the list of installed plugins in the dynatrace server settings? If not - please try to install it again!

      If it does show up - you then need to edit your system profile -> click on Monitors and then create a new Monitor. Now the monitor plugin should show up in the list of available monitors

      1. Anonymous (login to see details)

        Hi 

        It is showing up in the installed plugins and I even tried re installing to make sure it is installed properly . Problem is while creating monitor from system profile this plugin is not getting listed in the available monitors 

        1. Anonymous (login to see details)

          Do other plugins show up that are installed? Can you check the client and server log files for any errors?

          Is your Dynatrace Client connected to multiple servers? If so - is the System Profile you edit on that server that you installed the plugin? 

           

          1. Anonymous (login to see details)

            other plugins working fine.

             

            This is the error in server log

            2016-04-27 10:01:00 WARNING [PluginDispatcher] Failed to load extension with id: com.dynatrace.community.monitor. Exception: com.dynatrace.diagnostics.pde.PluginException: loading class com.dynatrace.community.monitor.GenericMeasureMonitorPlugin caused error: com/dynatrace/community/monitor/GenericMeasureMonitorPlugin : Unsupported major.minor version 52.0

            1. Anonymous (login to see details)

              which version of dynatrace do you run?

              1. Anonymous (login to see details)

                ok (smile) I got it , was trying with Dynatrace 6.2 .Will try once I upgrade to 6.3, I am currently in the upgrade process .

              2. Anonymous (login to see details)

                Hello Andi,

                I Installed the plugin in our Testing server. I went to Monitors, created the Generic Measure Plugin. In that i selected the Host Dynatrace server, and for Collector i selected different collector server. 

                Now my doubt here is, when i try to run URL that you provided, it doesn't work. Am i doing anything wrong? Do i need to install anything(Dynatrace-Generic-Measure-Monitoring-Plugin-master) apart from generic Plugin? I am using 6.3 version

                http://localhost:4000/genericmonitor?Timer1:Response Time=123;Timer2:Response Time=323

                1. Anonymous (login to see details)

                  Hi. The plugin will run on the Collector you selected. So - if the collector is on a different machine then the listening port is also on that collector machine, e.g: http://YOURCOLLECTOR:4000/genericmonitor

                  can you try that?

                  1. Anonymous (login to see details)

                    Thanks Andi....

                    I was able to rectify it. I was using wrong path. 

  3. Anonymous (login to see details)

    Hi Andi...1st off this is a great plugin, i would like to describe in what capacity we are using it and propose couple of enhancements for consideration (if possible)

    1) client will be hosting application in a cloud environment - in a cloud deployment the environment is very dynamic meaning servers can be spun/deleted very often...lets take a use case where we create a monitor/task to use a plugin x (say Unix Mon or GEP), in this case we have to enter a target host name (or host group) against whom we want to execute the monitor - given that server host names are not static, and new ones can be spun and old ones can be deleted managing the monitor can be very difficult (and manual config changes to the monitor/task  to edit hostname/group is simply not an option)...one way to address this is to use rest apis to manage the hostgroups within dynatrace but this is not available at the moment - and so in general the plugins "pull" metrics mechanism is not very flexible when it comes to automation — in this case the "push" metric mechanism is great to have and this where this plugin is very handy! 

    1A – for hosts where we dont have our classic agents (ex: postgres database, rabbitmq host, redis host) we still need to get the process metrics (host metrics can be retrieved by host agent, UNIX Mon is again a challenge since we cannot keep updating the hostgroup in dynatrace manually)...for this we wrote a script to retrieve process metrics and used the generic measure plugin rest url to push the metrics out --> this solves our problem of not having to manage hostgroups in dynatrace because anytime a new host is spun our custom script is deployed and the rest call will send/push the metrics to dynatrace via the generic rest call

    1B - for redis we initially used the GEP to invoke a script on the redis server and echoe'd the required results back to dynatrace – again challenge of managing target servers/host...we then changed this approach to simply run the script on redis and "push" the results back via the generic rest call

    Now here are the Enhancement requests

    1) from an incidents point of view, setting thresholds can be a challenge - if we push/send 4 metrics (cpu%,mem%,res,# of threads) --> we cannot set thresholds for each of those metrics, we only have the option to set threasholds on the catch all 'Numeric Metric' measure. --> one way we can go around it is set up 4 monitors (but this requires 4 ports) and send each metric to its respective monitor --> an enhancement would to be to see if there is a better way to handle this --> have the ability to create Numeric Metric 1, Numeric Metric 2 ....etc that way thresholds can be easily added per metric OR have the ability to run 4 rest calls on the same port?

    2) looks like when the generic measure plugin monitor runs it takes the data it received just before/at the time the monitor ran and then it sends to dynatrace server — so if i run the script on the redis host for example every 1 min and the generic measure monitor runs every 10 mins --> i would see data at a 10min interval (which is obvious) but it only shows 1 data point (the last received datapoint) ---> so there are no buffers to hold incoming data for min 1,2,3,4....7,8,& 9 --> and yes this is trivial because we can always run the generic measure mon every 10s and run the script once a min that way we 'almost guarantee' no data will be lost 

    Thanks again,

    Srikar

  4. Anonymous (login to see details)

    Hello Andi,

    Great plugin! We have a few questions about the plugin before installing it, is below correct?

    • the http listener will be online as from the moment we create a 'generic measure monitoring' monitor?
    • The collector hosts the http listener? So we need to be careful with our generated throughputh on the listener  
    • As we don't have a target host, the 'monitor hosts' setting value is not used in your plugin, so we only need to add at least one random host here, this to satisfy the rich client input validation.
    • Just are curious here: If the monitor contains the 'run manually' scheduler, data will be collected in AppMon but never saved to the PWH (at least if we don't do manual runs)

    Thx for info

    1. Anonymous (login to see details)

      All your assumptions are correct (smile)

  5. Anonymous (login to see details)

    Hi Andi,

    Thanks for the plugin and it will be great help.

     

    Quick Question :- If we are using the easy travels then we are using localhost , suppose if we using the corporate collector then we have give http://mycollectorname:4000 right , apart from this did we have to provide any additional configuration .

    And for the host means .. DT Server or Application Server

     

    Regards,

    Venkat

    1. Anonymous (login to see details)

      You have to configure the plugin to run on a certain collector. It doesnt just run with easyTravel. So - the URL to use will always be the one that your collector is running on, e.g: http://yourcollector:4000. You can also change the port from 4000 to any port that you like

      Andi

  6. Anonymous (login to see details)

    Hi Andi,

    Quick question, 

    I've tested it out with:

    http://localhost:4000/genericmonitor?Response Time=123,Latency=333

    However, I don't seem to be able to find this data when i add the measure onto a chart, I see some data when I use host splittings but unsure what that presents. 

    However, when i add a splitting name in in the URL, I can then see that data come up as a splitting. Is there a way to retrieve the data without using splitting names in the URL?

    I also wanted to ask, can this plugin only handle metrics that dynatrace already has? and what happens if given metrics which dynatrace does not recognise?

    Thanks

    Hao-lin 

    1. Anonymous (login to see details)

      Hi

      I created the plugin to feed ANY type of data from the outside into Dynatrace. When you say "can this plugin handle metrics that dynatrace already has" then the answer is NO. If Dynatrace already has some data then I dont need to extra feed it it.

      I really created this to feed data from external tools into Dynatrace. My initial use case was to push JMeter load testing results into Dynatrace. This is also what you see on the GitHub Page as well as in the blog post: https://www.dynatrace.com/blog/analyzing-jmeter-application-performance-results/

      I hope reading the blog and seeing the description on github helps you as well with your charting question

      Andi