-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/54107/
-----------------------------------------------------------

(Updated Nov. 30, 2016, 6:14 a.m.)


Review request for Aurora, David McLaughlin, Joshua Cohen, Mehrdad Nurolahzade, 
and Santhosh Kumar Shanmugham.


Changes
-------

Addressed the issues raised in the reviews.

_Request for feedback:_
- I added InstrumentingInterceptorTest::testInterceptNotAMappedStatement as a 
negative test. Please check to see if that is what you were thinking. 
Essentially when an invocation without MappedStatement as the first argument is 
intercepted, the name of the created stats shows such an invocation is 
intercepted.


Repository: aurora


Description
-------

MyBatis allows us to intercept calls within the execution of a mapped 
statement. This allows us to time various mapped statements and ultimately gain 
more insight on the performance of the database module.

This patch introduces an interceptor on MyBatis on `updates` and `query` mapped 
statements. I used the following convention to create name for the newly 
collected stats:
mybatis.<<the id of the mapped statement>>

After interception the process is very similar to the one in 
@Timed-interceptor. SlidingStats can be used to export interval averages, total 
milliseconds and the event counts.

__example stats (from ./vars.json)__
mybatis.create_tables_events 1
mybatis.create_tables_events_per_sec 0.0
mybatis.create_tables_nanos_per_event 0.0
mybatis.create_tables_nanos_total 592633784
mybatis.create_tables_nanos_total_per_sec 0.0
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_events 
3
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_events_per_sec
 0.0
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_nanos_per_event
 0.0
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_nanos_total
 2858362
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.selectAll_nanos_total_per_sec
 0.0
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_events 333
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_events_per_sec
 0.0
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_nanos_per_event
 0.0
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_nanos_total
 85745680
mybatis.org.apache.aurora.scheduler.storage.db.AttributeMapper.select_nanos_total_per_sec
 0.0


Diffs (updated)
-----

  src/main/java/org/apache/aurora/scheduler/storage/db/DbModule.java 
e7287cec28e7b8ca978c506bfe821f261bc0ac26 
  
src/main/java/org/apache/aurora/scheduler/storage/db/InstrumentingInterceptor.java
 PRE-CREATION 
  
src/test/java/org/apache/aurora/scheduler/storage/db/InstrumentingInterceptorTest.java
 PRE-CREATION 
  src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 
2e560c0d565689703b282391fe49dbf213ee25dc 
  
src/test/java/org/apache/aurora/scheduler/storage/mem/MemCronJobStoreTest.java 
79999e19454568540c14f91808635bf8dff82bb3 

Diff: https://reviews.apache.org/r/54107/diff/


Testing
-------

Tests are covered in InstrumentingInterceptorTest.

- testStatIsCreatedOnce
Tests that each stat is created one time only.

- testInterceptMarksMetrics
Tests that invocation is correctly intercepted and then proceeds.


Thanks,

Reza Motamedi

Reply via email to