[Telemetry] Bring in telemetry bundle

Bring in initial state for the platform/telemetry
bundle, which provides general-purpose telemetry
conventions and infrastructure to support creating
domain objects which expose telemetry data.
WTD-575.
This commit is contained in:
Victor Woeltjen
2014-11-28 16:06:54 -08:00
parent 0bacc03e58
commit 51de44a3e5
7 changed files with 469 additions and 0 deletions

View File

@ -0,0 +1,43 @@
/*global define,Promise*/
/**
* Module defining TelemetryProvider. Created by vwoeltje on 11/12/14.
*/
define(
[],
function () {
"use strict";
/**
*
* @constructor
*/
function TelemetryAggregator($q, telemetryProviders) {
function mergeResults(results) {
var merged = {};
results.forEach(function (result) {
Object.keys(result).forEach(function (k) {
// Otherwise, just take the result
merged[k] = result[k];
});
});
return merged;
}
function requestTelemetry(requests) {
return $q.all(telemetryProviders.map(function (provider) {
return provider.requestTelemetry(requests);
})).then(mergeResults);
}
return {
requestTelemetry: requestTelemetry
};
}
return TelemetryAggregator;
}
);