Open cschmack opened 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)
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
created: ec2-23-20-170-212.compute-1.amazonaws.com
Setup dev env in aws (jenkins & github ) (6h) - jeff -> ~6hrs [complete] Project Setup -> ~3hrs [in progress]
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.
Project Setup -> 9 hrs [complete] Testing Setup for cucumber (BDD) -> [in progress]
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