Re: [Grinder-development] tower - missing translation

Darren Ball <[email protected]> Tue, 21 Apr 2015 18:09:51 -0400
Newsgroups gmane.comp.java.grinder.user
Message-ID <CA+YPNhemfFQO5yPS2F9tEbE3jeZvkO2e6Lo3xvkUUoj70gakSg@mail.gmail.com>
Hi Philip,
Yes it is not representative of the sampling period that I would like.  I
am resorting to a cron job that collects the stats at a prescribed interval
that uses the tests count delta between each interval for reporting.  We
are attempting to see this over long running periods.

Thanks for clarifying.

-Darren

On Tue, Apr 21, 2015 at 4:11 PM, Philip Aston <[email protected]> wrote:

>  cc'ing grinder-use for the record.
>
> There's no simple way to calculate TPS from response time. I'm guessing
> that you think the TPS is too low, given the peak values?
>
> The TPS reported in the summary is calculated over the duration of the
> recording period. You can see this more clearly when controlling the
> recording with the Swing console. I suspect the problem is that you are not
> stopping the recording with the load, so all of the TPS values will just
> decline. See
> http://grinder.sourceforge.net/g3/console-service.html#Obtaining+the+results
>
> - Phil
>
>
> On 21/04/15 20:09, Darren Ball wrote:
>
> Hi Philip,
>
>  Looks like this did solve the issue.
> Outside of this, there seems to be one other issue in the statistical
> calculations IMO.
>
>  I have the following recorded data (below).  Given the mean time for the
> tests in MS, and looking at the TPS, the calculation does not seem correct.
> My tests are throttling my application with hundreds of calls a sec, but
> the TPS reflects something that seems inaccurate?  The Peak TPS seems off
> as well.  I am looking at per test statistics.
>
>  Am I incorrect in my view of how these are supposed to work?
>
>
>
>  {
>     "status": {
>         "sample-count": 13999,
>         "state": "Recording",
>         "description": "Collecting samples: 13999"
>     },
>     "columns": [
>         "Tests",
>         "Errors",
>         "Mean Test Time (ms)",
>         "Test Time Standard Deviation (ms)",
>         "TPS",
>         "Peak TPS"
>     ],
>     "tests": [
>         {
>             "test": 1,
>             "description": "ListCSCApp",
>             "statistics": [
>                 1811,
>                 0,
>                 16.932633903920486,
>                 18.30901962211711,
>                 0.11540469098721226,
>                 74
>             ]
>         },
>         {
>             "test": 2,
>             "description": "GetCSCApp",
>             "statistics": [
>                 1810,
>                 0,
>                 24.992265193370166,
>                 11.041105810598534,
>                 0.11534096669621986,
>                 74
>             ]
>         },
>         {
>             "test": 3,
>             "description": "ListCSCAppTables",
>             "statistics": [
>                 1811,
>                 0,
>                 25.128658199889564,
>                 10.923634896825913,
>                 0.11540469098721226,
>                 74
>             ]
>         }
>     ],
>     "totals": [
>         5432,
>         0,
>         22.350699558173783,
>         14.382227755468788,
>         0.34615034867064437,
>         222
>     ]
> }
>
> On Tue, Apr 21, 2015 at 12:52 PM, Philip Aston <[email protected]> wrote:
>
>>  OK, good to hear.
>>
>> - Phil
>>
>>
>> On 20/04/15 20:26, Darren Ball wrote:
>>
>> Looks like it might have solved it. FYI.  Running an extended series to
>> see.
>> Thanks for the fix.
>>
>> On Mon, Apr 20, 2015 at 3:05 PM, Darren Ball <[email protected]>
>> wrote:
>>
>>> Hi Philip,
>>> I think this is also a problem (below).  It seems that locale is set to
>>> nothing in this case and this is causing a translation in tower to throw an
>>> exception.
>>> It only happens when the agents are connecting for statistical
>>> reporting?  Rebuilding to see if your changes fix this, but I think this is
>>> slightly different.
>>>
>>>  -Darren
>>>
>>>   Stack trace:
>>>  2015-04-18 03:12:04,104 INFO  console: The Grinder 3.12-SNAPSHOT
>>> 2015-04-18 03:12:08,092 DEBUG net.grinder.console.web.livedata: (push
>>> :process-state) 0
>>> 2015-04-18 03:12:08,105 DEBUG net.grinder.console.web.livedata: (push
>>> :threads) 0
>>> 2015-04-18 03:12:08,288 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 0
>>> 2015-04-18 03:12:08,290 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 0
>>> 2015-04-18 03:12:08,313 DEBUG
>>> net.grinder.console.service.bootstrap_impl: Starting HTTP server at
>>> 0.0.0.0:6373
>>> 2015-04-18 03:12:23,532 DEBUG net.grinder.console.service.app: request
>>> :put /properties -> 200 (53.28 ms)
>>> 2015-04-18 03:12:29,923 INFO  console: Agent i-70cc4286 [Connected]
>>> 2015-04-18 03:12:30,007 DEBUG net.grinder.console.web.livedata: (push
>>> :process-state) 1
>>> 2015-04-18 03:12:30,010 DEBUG net.grinder.console.web.livedata: (push
>>> :threads) 1
>>> 2015-04-18 03:12:30,986 DEBUG net.grinder.console.web.livedata: (push
>>> :process-state) 2
>>> 2015-04-18 03:12:30,988 DEBUG net.grinder.console.web.livedata: (push
>>> :threads) 2
>>> 2015-04-18 03:12:37,953 DEBUG net.grinder.console.service.app: request
>>> :post /files/distribute -> 200 (10.33 ms)
>>> 2015-04-18 03:12:38,974 DEBUG net.grinder.console.web.livedata: (push
>>> :process-state) 3
>>> 2015-04-18 03:12:38,975 DEBUG net.grinder.console.web.livedata: (push
>>> :threads) 3
>>> 2015-04-18 03:12:51,746 DEBUG net.grinder.console.service.app: request
>>> :post /agents/start-workers -> 200 (21.76 ms)
>>> 2015-04-18 03:13:01,427 INFO  console: Agent i-70cc4286 [Connected] {
>>> Worker i-70cc4286-0 [Ready] }
>>> 2015-04-18 03:13:01,502 DEBUG net.grinder.console.web.livedata: (push
>>> :process-state) 4
>>> 2015-04-18 03:13:01,503 DEBUG net.grinder.console.web.livedata: (push
>>> :threads) 4
>>> 2015-04-18 03:13:03,926 INFO  console: Agent i-70cc4286 [Connected]
>>> 2015-04-18 03:13:04,002 DEBUG net.grinder.console.web.livedata: (push
>>> :process-state) 5
>>> 2015-04-18 03:13:04,003 DEBUG net.grinder.console.web.livedata: (push
>>> :threads) 5
>>> 2015-04-18 03:13:12,606 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 1
>>> 2015-04-18 03:13:12,608 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 1
>>> 2015-04-18 03:13:12,945 INFO  console: Agent i-70cc4286 [Connected] {
>>> Worker i-70cc4286-0 [Running (1/1 thread)] }
>>> 2015-04-18 03:13:12,983 INFO  console: Collecting samples: 1
>>> Exception in thread "Timer-0" java.lang.Exception: Invalid locale:
>>>  at taoensso.tower$fn__1103.invoke(tower.clj:38)
>>>  at clojure.lang.AFn.applyToHelper(AFn.java:161)
>>>  at clojure.lang.AFn.applyTo(AFn.java:151)
>>>  at clojure.core$apply.invoke(core.clj:617)
>>>  at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
>>>  at clojure.lang.RestFn.invoke(RestFn.java:408)
>>>  at taoensso.tower$fmt_msg.doInvoke(tower.clj:177)
>>>  at clojure.lang.RestFn.applyTo(RestFn.java:142)
>>>  at clojure.core$apply.invoke(core.clj:619)
>>>  at taoensso.tower$format_msg.doInvoke(tower.clj:542)
>>>  at clojure.lang.RestFn.applyTo(RestFn.java:137)
>>>  at clojure.core$apply.invoke(core.clj:619)
>>>  at net.grinder.translation.translate$t.doInvoke(translate.clj:52)
>>>  at clojure.lang.RestFn.invoke(RestFn.java:439)
>>>  at net.grinder.console.service.web$eval4444$fn__4445.invoke(web.clj:69)
>>>  at clojure.lang.MultiFn.invoke(MultiFn.java:231)
>>>  at
>>> net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487$iter__4504__4508$fn__4509.invoke(web.clj:109)
>>>  at clojure.lang.LazySeq.sval(LazySeq.java:42)
>>>  at clojure.lang.LazySeq.seq(LazySeq.java:60)
>>>  at clojure.lang.RT.seq(RT.java:484)
>>>  at clojure.core$seq.invoke(core.clj:133)
>>>  at clojure.core$apply.invoke(core.clj:617)
>>>  at
>>> net.grinder.console.service.web$render_process_table$iter__4482__4486$fn__4487.invoke(web.clj:105)
>>>  at clojure.lang.LazySeq.sval(LazySeq.java:42)
>>>  at clojure.lang.LazySeq.seq(LazySeq.java:60)
>>>  at clojure.lang.RT.seq(RT.java:484)
>>>  at clojure.core$seq.invoke(core.clj:133)
>>>  at clojure.core$apply.invoke(core.clj:617)
>>>  at
>>> net.grinder.console.service.web$render_process_table.invoke(web.clj:90)
>>>  at
>>> net.grinder.console.service.web$create_app$push_process_data__4912.invoke(web.clj:352)
>>>  at
>>> net.grinder.console.model.processes$add_listener$fn__2111.invoke(processes.clj:116)
>>>  at clojure.lang.ARef.notifyWatches(ARef.java:98)
>>>  at clojure.lang.Atom.reset(Atom.java:101)
>>>  at clojure.core$reset_BANG_.invoke(core.clj:2178)
>>>  at
>>> net.grinder.console.model.processes$initialise$reify__2016.update(processes.clj:48)
>>>  at
>>> net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:157)
>>>  at
>>> net.grinder.console.communication.ProcessStatusImplementation$3.inform(ProcessStatusImplementation.java:155)
>>>  at net.grinder.util.ListenerSupport.apply(ListenerSupport.java:104)
>>>  at
>>> net.grinder.console.communication.ProcessStatusImplementation.update(ProcessStatusImplementation.java:154)
>>>  at
>>> net.grinder.console.communication.ProcessStatusImplementation.access$000(ProcessStatusImplementation.java:51)
>>>  at
>>> net.grinder.console.communication.ProcessStatusImplementation$1.run(ProcessStatusImplementation.java:103)
>>>  at java.util.TimerThread.mainLoop(Timer.java:555)
>>>  at java.util.TimerThread.run(Timer.java:505)
>>> 2015-04-18 03:13:13,107 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 2
>>> 2015-04-18 03:13:13,108 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 2
>>> ^C2015-04-18 03:13:41,966 INFO  console: missing translation: {0}
>>>
>>>
>>>  There are other times this works for a period and then croaks, as in
>>> this, where it does not happen until 90+ samples in.
>>>
>>>  2015-04-18 02:46:11,878 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 86
>>> 2015-04-18 02:46:11,879 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 86
>>> 2015-04-18 02:46:12,880 INFO  console: Collecting samples: 86
>>> 2015-04-18 02:46:12,995 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 87
>>> 2015-04-18 02:46:12,996 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 87
>>> 2015-04-18 02:46:13,996 INFO  console: Collecting samples: 87
>>> 2015-04-18 02:46:14,114 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 88
>>> 2015-04-18 02:46:14,116 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 88
>>> 2015-04-18 02:46:15,118 INFO  console: Collecting samples: 88
>>> 2015-04-18 02:46:15,238 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 89
>>> 2015-04-18 02:46:15,239 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 89
>>> 2015-04-18 02:46:16,240 INFO  console: Collecting samples: 89
>>> 2015-04-18 02:46:16,357 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 90
>>> 2015-04-18 02:46:16,358 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 90
>>> 2015-04-18 02:46:17,358 INFO  console: Collecting samples: 90
>>> 2015-04-18 02:46:17,475 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 91
>>> 2015-04-18 02:46:17,476 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 91
>>> 2015-04-18 02:46:18,477 INFO  console: Collecting samples: 91
>>> 2015-04-18 02:46:18,598 DEBUG net.grinder.console.web.livedata: (push
>>> :statistics) 92
>>> 2015-04-18 02:46:18,599 DEBUG net.grinder.console.web.livedata: (push
>>> :sample) 92
>>> 2015-04-18 02:46:18,638 INFO  console: Agent i-70cc4286 [Connected] {
>>> Worker i-70cc4286-1 [Running (1/1 thread)] }
>>> Exception in thread "Timer-0" java.lang.Exception: Invalid locale:
>>>  at taoensso.tower$fn__1103.invoke(tower.clj:38)
>>>  at clojure.lang.AFn.applyToHelper(AFn.java:161)
>>>  at clojure.lang.AFn.applyTo(AFn.java:151)
>>>  at clojure.core$apply.invoke(core.clj:617)
>>>  at clojure.core$memoize$fn__5049.doInvoke(core.clj:5735)
>>>  at clojure.lang.RestFn.invoke(RestFn.java:408)
>>>
>>>
>>>  Environment (both nodes)
>>> [grinder@grinderconsole ~]$ env | grep UTF
>>> LC_ALL=en_US.UTF-8
>>> LANG=en_US.UTF-8
>>> LANGUAGE=en_US.UTF-8
>>> [grinder@grinderconsole ~]$ locale
>>> LANG=en_US.UTF-8
>>> LC_CTYPE="en_US.UTF-8"
>>> LC_NUMERIC="en_US.UTF-8"
>>> LC_TIME="en_US.UTF-8"
>>> LC_COLLATE="en_US.UTF-8"
>>> LC_MONETARY="en_US.UTF-8"
>>> LC_MESSAGES="en_US.UTF-8"
>>> LC_PAPER="en_US.UTF-8"
>>> LC_NAME="en_US.UTF-8"
>>> LC_ADDRESS="en_US.UTF-8"
>>> LC_TELEPHONE="en_US.UTF-8"
>>> LC_MEASUREMENT="en_US.UTF-8"
>>> LC_IDENTIFICATION="en_US.UTF-8"
>>> LC_ALL=en_US.UTF-8
>>>
>>>
>>>  [grinder@grinderagent1 ~]$ env | grep UTF
>>> LC_ALL=en_US.UTF-8
>>> LANG=en_US.UTF-8
>>> LANGUAGE=en_US.UTF-8
>>> [grinder@grinderagent1 ~]$ locale
>>> LANG=en_US.UTF-8
>>> LC_CTYPE="en_US.UTF-8"
>>> LC_NUMERIC="en_US.UTF-8"
>>> LC_TIME="en_US.UTF-8"
>>> LC_COLLATE="en_US.UTF-8"
>>> LC_MONETARY="en_US.UTF-8"
>>> LC_MESSAGES="en_US.UTF-8"
>>> LC_PAPER="en_US.UTF-8"
>>> LC_NAME="en_US.UTF-8"
>>> LC_ADDRESS="en_US.UTF-8"
>>> LC_TELEPHONE="en_US.UTF-8"
>>> LC_MEASUREMENT="en_US.UTF-8"
>>> LC_IDENTIFICATION="en_US.UTF-8"
>>> LC_ALL=en_US.UTF-8
>>>
>>>
>>>
>>> On Mon, Apr 20, 2015 at 2:18 PM, Philip Aston <[email protected]> wrote:
>>>
>>>>  Thanks for the report.
>>>>
>>>> I've pushed a fix - let me know whether this works.
>>>>
>>>> Building a SNAPSHOT from the tip of the source tree is always going to
>>>> be adventurous. But I understand you are doing so to use the later version
>>>> of Jython.
>>>>
>>>> - Phil
>>>>
>>>>
>>>> On 20/04/15 16:15, Darren Ball wrote:
>>>>
>>>>  I am getting this error, and after talking to the owner of Tower, he
>>>> is suggesting that this is something broken in grinder:
>>>>
>>>>  [grinder@ip-10-82-151-23 ~]$ ./console_headless_start2.sh
>>>>
>>>> 2015-04-20 14:46:26,607 INFO  console: The Grinder 3.12-SNAPSHOT
>>>>
>>>> 2015-Apr-20 14:46:26 +0000 ip-10-82-151-23.localdomain DEBUG
>>>> [taoensso.tower] - Missing translation {:locales [#<Locale en_US>], :scope
>>>> nil, :ks [:console.term/finished], :dev-mode? true, :ns clojure.core}
>>>>
>>>>
>>>>  Anyone know why tower is reacting this way or how to fix this?
>>>>
>>>>  Darren
>>>>
>>>>
>>
>
>

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF

_______________________________________________
grinder-use mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/grinder-use