[ https://issues.apache.org/jira/browse/OFBIZ-5198?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jacques Le Roux closed OFBIZ-5198. ---------------------------------- Resolution: Implemented Assignee: Jacques Le Roux Thanks Adrian for the explanation! Committed at revision: 1485601 I did not implemented a threshold handling for Event because this did not make much sense to me. I believe threshold handling at the Request level is enough. This tough introduces a kind of inconsistency, since you still can add the threshold attribute to the metric element of the event element. So I simply explained in the XML documentation. We still need to create a wiki page for the Metric, for now the XML embedded will do it. > Add a mean to collect and show the Requests Events durations using Metrics > -------------------------------------------------------------------------- > > Key: OFBIZ-5198 > URL: https://issues.apache.org/jira/browse/OFBIZ-5198 > Project: OFBiz > Issue Type: New Feature > Components: framework > Affects Versions: SVN trunk > Reporter: Jacques Le Roux > Assignee: Jacques Le Roux > Priority: Minor > Fix For: SVN trunk > > > *Requirements:* > collect the durations of events (and only events) of a requests. This is > currently missing for chained requests which are not using a service, either > in Stats or Metrics. I have not looked into details of the Stats > implementations but I did in Metrics. > *What I found:* > I want to use Metrics because I find its implementation easier to understand > and modify than Stats. Also its UI is more legible. And I don't mind saving > in DB, which anyway could always be added as an option from a properties. > *What I did:* > I figured out that to get this new measure, I need another column in Metrics > UI and a related new variable in code. The existing serviceRate varialbe is > fetched by getAllMetrics service and calculated by recordServiceRate() > Metrics method. I added the possibility to change the 3 driving parameters > (estimation size and time and the smoothing factor) with properties. > *What want and did not want* > I want to benefit from the existing Metrics framework, making the less > changes as possible. I did not want to add a new controller element, nor even > add an attribute to Metric element. Even if in some cases the new column will > not be populated (services) or will have less interest (not chained > requests). Luckily, the cost of calculating this new variable is very slow. > I did not want to interfer with the existing code. Because it's only a > measure which don't need the threshold feature. The easier way I found was to > slightly modify the recordServiceRate() method. I introduced a > requestEventRate variable which is only calculated for request (be chained or > not). Actually what I call event is more the duration from the beginning of > RequestHandler until the end of the called event. This is what matters when > you want to measure the cost of interleaved/chained requests of a global > request. > *To test:* > simply add a metric element to any request-map in a controller -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira