Retrieve performance data from Mendix application

1
Hi, I am investigating monitoring tooling for an on-premise Mendix application. In fact it is for a client having multiple on-premise applications. I am checking the possibility for NewRelic and AppDynamics as described in for instance: https://docs.mendix.com/howto6/manage-application-performance-with-appdynamics Obviously all those tools are paid services, so I was wondering if somebody has experience with building a lightweight performance monitoring dashboard like those apps provide? I am also wondering; do those apps get all their information from the Core Java API? Or is there another source / Mendix API I should look into? Appreciate the help!  
asked
1 answers
3

AppyDynamics and New Relic work by inserting an "agent" inside your Mendix app's JVM. It then has the ability to report information about the JVM to a central monitoring database.

A free option would be to use JMX to read data about your app. An app like VisualVM can connect to a running JVM and read basic stats. Then with a plugin it can also read "managed beans", which can provide info about the Mendix app. This article talks about creating/exposing those beans using the Core API, but actually I think a number of them were added in 7.16. So I think you'd get a lot out of the box by just hooking up VisualVM with the MBeans browser plugin to a Mendix app. (Disclaimer: I have not tested this myself!)

Another option to build a basic tool would be to pull the data exposed by the admin port: https://docs.mendix.com/refguide/monitoring-mendix-runtime. You could build a dashboard (with Mendix even) that hits those rest endpoints on demand or on a scheduled basis, and retrieves app statistics. I don't think you'd get quite as much data as using JMX, but it would be pretty easy to build.

answered