cschmack / nexgen

Test repository for nexgen project
5 stars 1 forks source link

Capture context and metric data (8 storypoints) #1

Open cschmack opened 12 years ago

cschmack commented 12 years ago

As a service consumer, I want to be able capture "context" about a transaction along with the metric data, so that I can easily compare infrastructure resource utilization, latency and traffic patterns and so I can provide analysis that contributes to providing the optimal service offering Neustar can to its customers.

Acceptance Criteria:

Demonstrate an interface where given a key value pair where the metrics data value is numeric (integer, float, etc) the metric is stored with a timestamp for later retrieval

Demonstrate an interface where given a key value pair where the metrics data value is not numeric, the interface rejects the metric as invalid

Demonstrate that floating point values up to 12 significant digits can be stored for later retrieval

Demonstrate an interface where a timestamp can be provided in addition to the key value pair in order to backfill or queue data for later storage

Demonstrate an interface where a set of defined units can be added to the key value store to further define the data.

Given that I want to capture a metric When I send that information to the metrics service Then I should have a standard interface that requires me enter some base contextual information (defined below) in key / value pairs And the metric data in key / value pairs And allows me to append optional contextual information in key / value pairs

Base contextual information:

Optional contextual information examples:

o Key/Value pairs that can provide application-specific logging of information, such as:  Duration of off-host portion for serving the response (database, external call,…)  Type of request (if pertinent)  If applicable, whether the response was served from a cache

jdamick commented 12 years ago

I think the goal for this story should be narrowed to define the service interface

Tasks:

(The story may still require refining as it implies that all certain fields are available to all of consumers and this isn't always the case)

cschmack commented 12 years ago

Definition of context may include non-numeric values such as:

(when) timestamp (who) authenticatedUser -or- (who) source address (where) application/service (where) host (where) process (where) instance (where) thread (what) associated resource

jdamick commented 12 years ago

created: ec2-23-20-170-212.compute-1.amazonaws.com

jdamick commented 12 years ago

Setup dev env in aws (jenkins & github ) (6h) - jeff -> ~6hrs [complete] Project Setup -> ~3hrs [in progress]

cschmack commented 12 years ago

Acceptance of time is based on GMT only, format as YYYY-MM-DDTHH:MM:SS.mmm Where mmm is millisecond. If the millisecond time is not available, 000 should be encoded.

jdamick commented 12 years ago

Project Setup -> 9 hrs [complete] Testing Setup for cucumber (BDD) -> [in progress]