1 | "use strict";
|
2 |
|
3 | const Telemetry = require(`./telemetry`);
|
4 |
|
5 | const flush = require(`./flush`);
|
6 |
|
7 | const instance = new Telemetry();
|
8 | process.on(`exit`, flush);
|
9 |
|
10 |
|
11 | const interval = Number.isFinite(+process.env.TELEMETRY_BUFFER_INTERVAL) ? Math.max(Number(process.env.TELEMETRY_BUFFER_INTERVAL), 1000) : 10 * 60 * 1000;
|
12 |
|
13 | const tick = _ => {
|
14 | flush().catch(console.error).then(_ => setTimeout(tick, interval));
|
15 | };
|
16 |
|
17 | module.exports = {
|
18 | trackCli: (input, tags, opts) => instance.captureEvent(input, tags, opts),
|
19 | trackError: (input, tags) => instance.captureError(input, tags),
|
20 | trackBuildError: (input, tags) => instance.captureBuildError(input, tags),
|
21 | setDefaultTags: tags => instance.decorateAll(tags),
|
22 | decorateEvent: (event, tags) => instance.decorateNextEvent(event, tags),
|
23 | setTelemetryEnabled: enabled => instance.setTelemetryEnabled(enabled),
|
24 | startBackgroundUpdate: _ => {
|
25 | setTimeout(tick, interval);
|
26 | },
|
27 | expressMiddleware: source => (req, res, next) => {
|
28 | try {
|
29 | instance.trackActivity(`${source}_ACTIVE`);
|
30 | } catch (e) {
|
31 | }
|
32 |
|
33 | next();
|
34 | }
|
35 | }; |
\ | No newline at end of file |