geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (Jira)" <j...@apache.org>
Subject [jira] [Commented] (GEODE-7326) Add cache gets timers
Date Fri, 25 Oct 2019 21:24:00 GMT

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

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

Commit 55980e37f0a57256fdd0af6f10e1d70ce1f90676 in geode's branch refs/heads/feature/GEODE-7258
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 <alindsey@pivotal.io>
Co-authored-by: Kirk Lund <klund@apache.org>


> 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: 5h
>  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)

Mime
View raw message