For our Dynatrace Managed system I am trying to write a custom plugin that will inspect the JSON of a REST call to determine if the
service is acting as expected. I have the plugin working, but can only seem to get it associated with one process group.
I have the configUI part setup and passing in information to the plugin, but I cannot seem to configure it multiple times. The server
in question is running multiple process groups that I would like to have this run against, so I added a configUI section to put the
process group. I was hoping that I could configure this similar to some other plugins where you can do it on a per host basis (such as
the postgres one). However, I need this on a per process group level. I have "activation" set to "SnapshotEntry" and I do see that multiple
instances get run, but I can't seem to configure it multiple times. Is this possible?
If this isn't possible, I'll just have to do multiple ones per server and per process group. Not the end of the world, but I did this one
generic enough that if I can just do multiple configurations it should just work. Thanks for any insight.
Solved! Go to Solution.
It's currently impossible to configure multiple instances on one host. In other words, per-host is as detailed as you can get.
However, the configuration options are flexible enough to allow configuring multiple groups through one plugin. If it's just a few, you can simply add multiple configuration fields, and then make plugin code run multiple times, each instance picking just part of that one big config.
It'd be great if you could share what specific technology are you trying to monitor that way; the upcoming remote plugins functionality will allow you to have as many configurations as you want, but might not really fit your scenario if you need to monitor local PGs.
Thank you for your answer. I could give it a shot by doing something like 4 or 5 configuration blocks to keep it generic.
The exact processes are Jetty processes (via the Dropwizard Java framework). DT can instrument those completely already, so that's not the problem. The problem we are trying to solve is that the service could be "up", however it may not be able to connect to the database (or to an LDAP server, or to whatever), or it can connect but is in a weird state. Dropwizard has a "healthcheck" URL that sends back JSON on the health of different components within your app. I just want to execute that REST endpoint and parse back the results and alert if the database connection is down (for example).
In the one I was trying I have 5 different Dropwizard (ie. Jetty) services that I would like to do this for. The JSON is not quite the same in the sense that the name of service is different (and configurable by the developer), so in one it's "database", in another it's "ldapconnection", another is "hibernate", etc.
This particular situation is just one of a couple different scenarios where we would like to execute a REST endpoint and parse the JSON to determine some status. I'm not sure if this belongs in a more traditional monitoring system, but we'd like to start having a lot of this type of thing happen in DT which is why we're looking at doing it with the plugin.