This repository has been archived by the owner on Mar 29, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtelemetry.js
56 lines (49 loc) · 1.47 KB
/
telemetry.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
var appInsights = require('applicationinsights');
var config = require('./config');
var constants = require('./constants').Constants;
var os = require('os');
var telemetryClient = null;
function newTelemetryClient() {
telemetryClient = appInsights
.setup(constants.telemetryKey)
.setAutoDependencyCorrelation(false)
.setAutoCollectRequests(false)
.setAutoCollectPerformance(false)
.setAutoCollectExceptions(false)
.setAutoCollectDependencies(false)
.setAutoCollectConsole(false)
.start()
.client;
telemetryClient.addTelemetryProcessor((envelope, context) => {
if (envelope.iKey == constants.telemetryKey
&& envelope.data.baseType == "EventData") {
return true;
}
return false;
});
}
class Telemetry {
constructor() {
if (!telemetryClient) {
newTelemetryClient();
}
}
recordEvent(eventName, properties, measures) {
if (!config.isTelemetryEnabled) return;
if (!config.isTelemetryEnabled()) return;
if (properties) {
properties.platform = os.type();
}
else {
properties = {
"platform": os.type()
};
}
telemetryClient.trackEvent(eventName, properties, measures);
}
}
var self = module.exports = {
createClient: () => {
return new Telemetry();
}
};