[ 
https://issues.apache.org/jira/browse/GEODE-7326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16959271#comment-16959271
 ] 

ASF subversion and git services commented on GEODE-7326:
--------------------------------------------------------

Commit 55980e37f0a57256fdd0af6f10e1d70ce1f90676 in geode's branch 
refs/heads/develop from Aaron Lindsey
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=55980e3 ]

GEODE-7326: Add cache gets timers (#4201)

* GEODE-7326: Add cache gets timers

- Add timers to record get operations from a Java client
- Tag each timer with region name and result (hit/miss)
- Close existing entries gauge when closing RegionPerfStats
- Improve micrometer assertj assertions
- Record time measurement in Get70 instead of LocalRegion.get()
- Update timer descriptions to clarify the type of client
- Add unit tests for instrumented code (Get70)
- Refactor acceptance test for get that errors
- Improve comments in TimerAssert
- Make public fields immutable on Get70.Entry

Authored-by: Aaron Lindsey <[email protected]>
Co-authored-by: Kirk Lund <[email protected]>


> Add cache gets timers
> ---------------------
>
>                 Key: GEODE-7326
>                 URL: https://issues.apache.org/jira/browse/GEODE-7326
>             Project: Geode
>          Issue Type: Improvement
>            Reporter: Aaron Lindsey
>            Assignee: Aaron Lindsey
>            Priority: Major
>          Time Spent: 3h 40m
>  Remaining Estimate: 0h
>
> h3. Why
> Users want to understand the performance of their operations within the 
> server.
> h3. Acceptance Criteria
> Type: timer
> Name: geode.cache.gets
> Tags: region, result=hit/miss
> Lifecycle of meter: The hit/miss meter for each region is created when the 
> region is created. The meter(s) are removed when the region is 
> destroyed/closed.
> Description for meter: The total time and count for GET requests from clients.
> Thing to measure : A count and total time for GET operations that didn't 
> error, by this specific Server (1 or many cacheservers) in the geode cluster 
> from when the server receives the request to when it sends the response.
> Business Rule for this measurement: This meter records any operation sent 
> through a CacheServer
> h3. Scenarios
> *Scenario: Java client hits*
> Given a cluster with a Server1 and a Locator1 with time statistics enabled
> When the oldest supported java client issues 5 get operations using the 
> region.get(key) command
> Then a meter on Server1 exists such that:
> - Meter Name = 'geode.cache.gets'
> - Count = 5
> - Total Time = total time spent from received request to response to client 
> for these 5 requests
> - Tag: region = region that the 'get' method was called against
> - Tag: result=hit
> *Scenario: Java client misses*
> Given a cluster with a Server1 and a Locator1 with time statistics enabled
> When the oldest supported java client issues 5 get operations where the user 
> is getting a key that doesn't exist in the region using the region.get(key) 
> command
> Then a meter on Server1 exists such that:
> - Meter Name = 'geode.cache.gets'
> - Count = 5
> - Total Time = total time spent from received request to response to client 
> for these 5 requests
> - Tag: region = region that the 'get' method was called against
> - Tag: result=miss
> *Scenario: Java client hits with time stats disabled*
> Given a cluster with a Server1 and a Locator1 with time statistics disabled
> When a java client issues a get operation using the region.get(key) command 
> where the key exists
> Then a meter on Server1 exists such that:
> - Meter Name = 'geode.cache.gets'
> - Count = 1
> - Total Time = 0
> - Tag: region = region that the 'get' method was called against
> - Tag: result=hit
> *Scenario: Java client error response*
> Given a cluster with a Server1
> And a RegionA exists with NO entry with a Key="1"
> And the client is unauthorized for Key="1"
> When the client issues a region.get(1) request
> Then no meter on Server1 should exist like:
> - Meter Name = 'geode.cache.gets'
> - Tag: region = RegionA



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to