Retrieving nested microflow profile information with IProfiler

0
Good morning,   I have a custom profiler in our application set up by utilizing com.mendix.core.Core.registerProfiler() where I implemented the IProfiler interface as follows:   public class AuditProfiler implements IProfiler { public AuditProfiler(){} public void stop(){} public void logClientData(com.mendix.thirdparty.org.json.JSONObject jsonObject, java.lang.String sessionId){} public java.lang.Object enterDatabase​(java.lang.String sessionId, java.lang.String requestId, java.lang.String requestData, java.lang.Long now){ return requestData; } public java.lang.Object enterRuntime​(java.lang.String sessionId, java.lang.String requestId, java.lang.String userName, java.util.Set<java.lang.String> userRoles, JSONObject jsonRequest, java.lang.Long now){ jsonRequest.put("start_time", now); jsonRequest.put("session_ID", sessionId); jsonRequest.put("request_ID", requestId); return jsonRequest; } public void finishRuntime​(java.lang.Object logObject, java.lang.Long now){ JSONObject incoming = (JSONObject) logObject; if(logObject != null){ java.lang.Long startTime = incoming.getLong("start_time"); JSONObject profileData = incoming.getJSONObject("profiledata"); java.lang.String sessionId = incoming.getString("session_ID"); java.lang.String requestId = incoming.getString("request_ID"); java.lang.String requestAction = incoming.getString("action"); ILogNode logger = Core.getLogger("Debug"); logger.info("-----Runtime request-------"); logger.info("session ID: " + sessionId); logger.info("request ID: " + requestId); logger.info("request raw: " + incoming.toString()); java.lang.Long duration = now - startTime; logger.info("duration: " + duration.toString() + "ms"); logger.info("profile data: " + profileData.toString()); } } public void finishDatabase​(java.lang.Object logObject, java.lang.Long now) { if(logObject != null){ if(!logObject.toString().contains("SELECT")){ ILogNode logger = Core.getLogger("Debug"); logger.info("-----Database request-------"); logger.info(logObject); } } } }   The problem I am facing is that enterRuntime() and finishRuntime() only seem to fire on a parent microflow call and not the children microflow. I would like to profile each microflow call’s execution time, including it’s child microflows. I do notice that in the request’s JSON there are “profiledata” attributes – is there anything I can do with these to gain more detailed information regarding a specific microflow call? Is there any other functions regarding profiling that I may be missing?   Thank you very much, Mark  
asked
0 answers