Jacques Le Roux wrote:
> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>> On 4/7/2013 10:30 AM, Jacques Le Roux wrote:
>>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>>>  From my perspective, you are the one complicating things. If you don't
>>>> want to slow down the system with logging I/O, then turn logging off.
>>> When you are continously developping a system, removing all log info/timing 
>>> from production can be problematic.
>>> It's sometimes the only way you have to understand why and how a random 
>>> issue appears.
>> 
>> 
>> That is helpful. So, when you are troubleshooting a production
>> installation, you enable TIMING and INFO logging to see what's going on.
>> Understood. Now, what is the purpose of using a threshold?
> 
> To separate slow services and, for the 2nd  threshold, possibly very slow 
> ones.
> Sometimes, it depends not only on external system but also on a whole 
> "ecosystem" (net connections, firewalls, etc.)
> We know things always changes, it's like a chaos sometimes.
> 
> At this stage you are yet sure not what for looking for.
> So you need a 1st rough filter to better understand what's going on
> Putting thresholds on services durations can then help to separate cases.
> 
>> You mentioned marking slow services, but a single threshold value for
>> all services will not do that - because every service is different and
>> each one will have a unique typical elapsed time. That was the reason
>> why I changed the text of the message - because services that were
>> completed in timely manner were being logged as "slow" - which was not true.
> 
> There were slow and very slow, that why I used 2 properties, and set the 1st 
> to 0, to have the behaviour you introduced and I
> agree with for OOTB setting (show all services duration) 
> 
>> Have you considered using the metrics feature?
> 
> Ha forgot to ask about it, now I see and remember this thread and I will digg 
> in http://markmail.org/message/x4lzvda66ju6gdg5
> 
> Of course, I'd not be against a brief briefing, or a link to explain.

What I mostly miss is where are the metrics in webtools?

> Thanks for the reminder
> 
> Jacques
> 
>> 
>> 
>>> 
>>>> "We've always done it that way" is not a valid argument.
>>> I was just saying that personally I did not have problems whith how it was 
>>> before your change. I was easy to adapt to my need.
>>> I have also no problems with your change, it's sill easy to adapt. 
>>> 
>>>> You still haven't given us any requirements that demonstrate the need to
>>>> put complicated decision making around a single log entry.
>>> My solution is not complicated at all 2 properties for 2 thresholds. Why do 
>>> you feel it as complicated?
>>> Actually I'm not stuck with this solution. If you want, comment it out or 
>>> even revert and the chapter is closed.
>>> 
>>> Jacques
>>> 
>>>> -Adrian
>>>> 
>>>> On 4/7/2013 9:18 AM, Jacques Le Roux wrote:
>>>>> This seems over complicated to me. Don't arbitrarily slow OFBiz by 
>>>>> storing (IOs) services durations at each service call.
>>>>> Let's keep it simple and easy tunable. 
>>>>> 
>>>>> The way it was before ( >50 => slow; > 200 => very slow) was there for 
>>>>> years. I did not code it, and after a decade we want
>>>>> to change it, OK. 
>>>>> 
>>>>> Most of the time you don't care about that. When you do, you simply want 
>>>>> to separate slow services from others.
>>>>> 
>>>>> I believe OOTB 2 properties are enough. I set them to allow to see all 
>>>>> services durations and to specifically mark slow
>>>>> services. I picked 1 sec, why? It would be terribly slow services 
>>>>> internally, but externals ones can vary much more. If you
>>>>> need more thresholds/separations it's easy from what is coded now to add 
>>>>> suiting your needs. 
>>>>> 
>>>>>   From my experience, when looking at logs on a system you quickly know 
>>>>> which are these values, when you are interested by
>>>>> them 
>>>>> 
>>>>> The most important point here is not slow the system and to follow 
>>>>> KISS/YAGNI ways.
>>>>> 
>>>>> Please don't complicate things, thanks!
>>>>> 
>>>>> Jacques
>>>>> 
>>>>> 
>>>>> From: "Atul Vani" <atul.v...@hotwaxmedia.com>
>>>>>> Here's what I think, it's all raw though :)
>>>>>> * As suggested by Jacopo, we maintain stats in some kind of entity. Let's
>>>>>> say average running time.
>>>>>> * We use this average running time to decide if a timing log should be
>>>>>> printed. The thing is, not all services are same, some are complex and 
>>>>>> are
>>>>>> supposed to take longer than others, so a static number would never
>>>>>> suffice. We do not have any means to calculate the complexity of a 
>>>>>> service
>>>>>> (by looking at the mini-lang code) to decide this number, so either a 
>>>>>> user
>>>>>> will tell it or we can compute it on the basis of past run times.
>>>>>> * There can come cases when user would want to tell the number (all past
>>>>>> experiences were bad ones, or he just optimized), so we can add some
>>>>>> attribute to the service definition. There is something like metric
>>>>>> already present, not sure how that works.
>>>>>> * A single number for all services does not make sense to me, because (as
>>>>>> mentioned above) not all services are same.
>>>>>> 
>>>>>> On Sun, 07 Apr 2013 04:14:58 +0530, Adrian Crum
>>>>>> <adrian.c...@sandglass-software.com> wrote:
>>>>>> 
>>>>>>> No, a commit is NOT a reply to an email.
>>>>>>> 
>>>>>>> Please, let's discuss this. You seem to be forcing your perception of
>>>>>>> how logging should be done on the rest of the community. I would prefer
>>>>>>> that we all participate in a discussion and come up with a design that
>>>>>>> works for everyone.
>>>>>>> 
>>>>>>> -Adrian
>>>>>>> 
>>>>>>> On 4/6/2013 5:32 PM, Jacques Le Roux wrote:
>>>>>>>> I thought the commit comment answered your question
>>>>>>>> 
>>>>>>>> OOTB, there is only 1 change from what you committed: now services
>>>>>>>> longer than 1 sec will also show as slow in log
>>>>>>>> 
>>>>>>>> Jacques
>>>>>>>> 
>>>>>>>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>>>>>>>> Please don't change the timing logging - there should not be any
>>>>>>>>> conditions placed on it.
>>>>>>>>> 
>>>>>>>>> You didn't answer my question. I was hoping we could avoid a commit 
>>>>>>>>> war
>>>>>>>>> by discussing your requirements and designing a solution that makes
>>>>>>>>> everyone happy.
>>>>>>>>> 
>>>>>>>>> -Adrian
>>>>>>>>> 
>>>>>>>>> On 4/6/2013 12:00 PM, Jacques Le Roux wrote:
>>>>>>>>>> Hi Adrian,
>>>>>>>>>> 
>>>>>>>>>> Thanks for asking, I committed and commented at revision: 1465223
>>>>>>>>>> 
>>>>>>>>>> Atul,
>>>>>>>>>> 
>>>>>>>>>> It was not easy to read your patch in the email (cut at 80 chars).
>>>>>>>>>> Please open a Jira if you want to improve my commit.
>>>>>>>>>> 
>>>>>>>>>> Thanks
>>>>>>>>>> 
>>>>>>>>>> Jacques
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> From: "Adrian Crum" <adrian.c...@sandglass-software.com>
>>>>>>>>>>> Jacques,
>>>>>>>>>>> 
>>>>>>>>>>> What are your requirements? What are you looking for in the logs?
>>>>>>>>>>> 
>>>>>>>>>>> -Adrian
>>>>>>>>>>> 
>>>>>>>>>>> On 4/4/2013 10:54 PM, Jacques Le Roux wrote:
>>>>>>>>>>>> These numbers are from experience of hours and hours staring at
>>>>>>>>>>>> clusters logs, but yes it's arbitrary and depend on context (as I
>>>>>>>>>>>> guess were picked the initial numbers which are there for years
>>>>>>>>>>>> Then why not the obvious solution Jacopo proposed of properties,
>>>>>>>>>>>> easy to change even dynamically...
>>>>>>>>>>>> I can't see anything more flexible, at least at 23:43 after days of
>>>>>>>>>>>> works.
>>>>>>>>>>>> AS you said, once you spot one such line in log it's not a biggie
>>>>>>>>>>>> to get there (you have the class line in log) and adapt suiting
>>>>>>>>>>>> your needs.
>>>>>>>>>>>> So maybe "like you proposed" we could indeed put a very low value
>>>>>>>>>>>> (I mean 0) as property.
>>>>>>>>>>>> 
>>>>>>>>>>>> For Atul's proposition, sorry not the courage to check tonight
>>>>>>>>>>>> (maybe a patch in a Jira would help to read)
>>>>>>>>>>>> 
>>>>>>>>>>>> Jacques
>>>>>>>>>>>> PS: I guessed "fuss around", knew tinker, not fidget :D
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Adrian Crum wrote:
>>>>>>>>>>>>> Why not 20 or 30 or 40?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> That's the problem with arbitrary values - they don't mean
>>>>>>>>>>>>> anything.
>>>>>>>>>>>>> 
>>>>>>>>>>>>>      From my perspective, if anyone has timing enabled, then they
>>>>>>>>>>>>> want to
>>>>>>>>>>>>> see what's going on in the system.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Feel free to change it.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> -Adrian
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On 4/3/2013 9:22 AM, Jacques Le Roux wrote:
>>>>>>>>>>>>>> Hi Adrian, All,
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Should we really show the timing for all services?
>>>>>>>>>>>>>> Maybe increasing from 50 to 75 or even 100 for the 1st case would
>>>>>>>>>>>>>> be enough?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Jacques
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> From: <adri...@apache.org>
>>>>>>>>>>>>>>> Author: adrianc
>>>>>>>>>>>>>>> Date: Wed Apr  3 07:57:24 2013
>>>>>>>>>>>>>>> New Revision: 1463863
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> URL: http://svn.apache.org/r1463863
>>>>>>>>>>>>>>> Log:
>>>>>>>>>>>>>>> Log message cleanup in ServiceDispatcher.java. Removed confusing
>>>>>>>>>>>>>>> text about services taking too long.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Modified:
>>>>>>>>>>>>>>>          
>>>>>>>>>>>>>>> ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Modified:
>>>>>>>>>>>>>>> ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
>>>>>>>>>>>>>>> URL:
>>>>>>>>>>>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java?rev=1463863&r1=1463862&r2=1463863&view=diff
>>>>>>>>>>>>>>> ==============================================================================
>>>>>>>>>>>>>>> ---
>>>>>>>>>>>>>>> ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
>>>>>>>>>>>>>>> (original) +++
>>>>>>>>>>>>>>> ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
>>>>>>>>>>>>>>> Wed Apr  3 07:57:24 2013 @@ -571,10 +571,8 @@ public
>>>>>>>>>>>>>>>               class ServiceDispatcher { rs.setEndStamp();
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>               long timeToRun = System.currentTimeMillis() -
>>>>>>>>>>>>>>> serviceStartTime;
>>>>>>>>>>>>>>> -        if (Debug.timingOn() && timeToRun > 50) {
>>>>>>>>>>>>>>> -            Debug.logTiming("Slow sync service execution
>>>>>>>>>>>>>>> detected: service [" + localName + "/" + modelService.name + "]
>>>>>>>>>>>>>>> finished in [" + timeToRun + "] milliseconds", module);
>>>>>>>>>>>>>>> -        } else if (Debug.infoOn() && timeToRun > 200) {
>>>>>>>>>>>>>>> -            Debug.logInfo("Very slow sync service execution
>>>>>>>>>>>>>>> detected: service [" + localName + "/" + modelService.name + "]
>>>>>>>>>>>>>>> finished in [" + timeToRun + "] milliseconds", module); +
>>>>>>>>>>>>>>> if (Debug.timingOn()) {
>>>>>>>>>>>>>>> +            Debug.logTiming("Sync service [" + localName + "/"
>>>>>>>>>>>>>>> + modelService.name + "] finished in [" + timeToRun + "]
>>>>>>>>>>>>>>>               milliseconds", module); }
>>>>>>>>>>>>>>>               if ((Debug.verboseOn() || modelService.debug) &&
>>>>>>>>>>>>>>> timeToRun > 50 && !modelService.hideResultInLog) {
>>>>>>>>>>>>>>>                   // Sanity check - some service results can be
>>>>>>>>>>>>>>> multiple MB in size. Limit message size to 10K.
>>>>>> --
>>>>>> Using Opera's revolutionary email client: http://www.opera.com/mail/

Reply via email to