Bug 1042828

Summary: CallTimeDataManager manager should be able to expose raw data, not just the aggregates
Product: [Other] RHQ Project Reporter: Jaromir Hamala <jaromir.hamala>
Component: CallTimeAssignee: Libor Zoubek <lzoubek>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: hrupp, lzoubek, theute
Target Milestone: ---   
Target Release: RHQ 4.10   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-04-23 12:32:07 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jaromir Hamala 2013-12-13 13:31:30 UTC
Description of problem:
CallTimeDataManager manager should be able to expose raw data, not just the aggregates (CallTimeDataComposite). 

Currently CallTimeDataComposite contains data aggregated by destination. Aggregates contain max/min/avg times, etc, but sometimes it's not enough. 

Knowing average & maximum response time of eg. HTTP server has very limited usability. Response Times distribution is needed for any real latency monitoring.  

Having raw data would allow creating histograms giving much better insight into resource behaviour in terms of latency. 

Thank you,
Jaromir

Comment 1 Libor Zoubek 2014-02-25 16:09:19 UTC
Note that we don't store raw data in RHQ database. By raw data I mean 1 database row would be 1 request / 1 line in rt_filter.log file.

We can provide only already-arggregated data. That aggregation is based on collection interval of given callTime metric. But still, it will contain much more details then what gives CallTimeDataManager.findCallTimeDataForResource

Comment 2 Jaromir Hamala 2014-02-25 16:28:34 UTC
I see, well, I think it's fine. 
The granularity might be driven by settings the collection interval. Sounds good to me!

Comment 3 Libor Zoubek 2014-03-05 13:08:42 UTC
in master

commit 923121ed1bb7ad165173c35030e63498ff5f42df
Author: Libor Zoubek <lzoubek>
Date:   Tue Mar 4 17:16:36 2014 +0100

    [BZ 1069679] Expose responseTime metric via rest

    callTimes are exposed via endpoint GET /metric/data/{scheduleId}/callTime
    supported are both aggregated (default) and 'raw' callTime data. CallTime
    values can be pushed via PUT /metric/data/{scheduleId}/callTime. Note that
    data retrieved via GET has different format as what is pushed. User pushes
    really RAW callTimes (time,callDestination,duration) but he *always*
    recieves aggregates.

Comment 4 Libor Zoubek 2014-03-05 13:10:43 UTC
Sorry .. ignore previous comment, that was another commit (not yet in master)

in master

commit 355cbb0a582a5c70084f5c840b8a5258435d73f9
Author: Libor Zoubek <lzoubek>
Date:   Tue Feb 25 16:57:12 2014 +0100

    [BZ 1042828] - CallTimeDataManager manager should be able to expose raw
    data, not just the aggregates

    Raw data are now exposed via findCallTimeDataRawForResource. We don't return
    RAW data (meaning per-request entities), because RHQ server does not store
    it. Instead it stores already aggregated data - aggregation per
    callDestination happens on agent when sending metric report. At maximum (as
    minimum collection interval is 1m) user can get aggregated data for requests
    within 1 minute per callDestination). This data are considered as RAW
    because it's rawest we have.

Comment 5 Heiko W. Rupp 2014-04-23 12:32:07 UTC
Bulk closing of 4.10 issues.

If an issue is not solved for you, please open a new BZ (or clone the existing one) with a version designator of 4.10.