@splitsoftware/splitio-commons 1.3.1 → 1.3.2-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/consent/sdkUserConsent.js +1 -1
- package/cjs/listeners/browser.js +5 -4
- package/cjs/logger/constants.js +2 -1
- package/cjs/logger/messages/error.js +2 -1
- package/cjs/logger/messages/info.js +3 -3
- package/cjs/logger/messages/warn.js +2 -2
- package/cjs/sdkClient/client.js +17 -3
- package/cjs/sdkClient/sdkClient.js +4 -1
- package/cjs/sdkFactory/index.js +16 -19
- package/cjs/services/splitApi.js +15 -14
- package/cjs/services/splitHttpClient.js +4 -1
- package/cjs/storages/AbstractSegmentsCacheSync.js +0 -5
- package/cjs/storages/KeyBuilderSS.js +12 -19
- package/cjs/storages/findLatencyIndex.js +11 -6
- package/cjs/storages/inLocalStorage/MySegmentsCacheInLocal.js +13 -1
- package/cjs/storages/inLocalStorage/index.js +4 -1
- package/cjs/storages/inMemory/InMemoryStorage.js +2 -0
- package/cjs/storages/inMemory/InMemoryStorageCS.js +3 -0
- package/cjs/storages/inMemory/MySegmentsCacheInMemory.js +6 -0
- package/cjs/storages/inMemory/SegmentsCacheInMemory.js +6 -0
- package/cjs/storages/inMemory/TelemetryCacheInMemory.js +165 -0
- package/cjs/storages/inRedis/TelemetryCacheInRedis.js +29 -0
- package/cjs/storages/inRedis/index.js +2 -4
- package/cjs/storages/pluggable/TelemetryCachePluggable.js +27 -0
- package/cjs/storages/pluggable/index.js +2 -1
- package/cjs/sync/polling/updaters/mySegmentsUpdater.js +0 -3
- package/cjs/sync/polling/updaters/segmentChangesUpdater.js +1 -8
- package/cjs/sync/polling/updaters/splitChangesUpdater.js +1 -4
- package/cjs/sync/streaming/SSEHandler/NotificationKeeper.js +20 -13
- package/cjs/sync/streaming/SSEHandler/index.js +21 -15
- package/cjs/sync/streaming/pushManager.js +7 -4
- package/cjs/sync/submitters/eventsSubmitter.js +28 -0
- package/cjs/sync/submitters/{impressionCountsSyncTask.js → impressionCountsSubmitter.js} +10 -7
- package/cjs/sync/submitters/{impressionsSyncTask.js → impressionsSubmitter.js} +8 -8
- package/cjs/sync/submitters/{submitterSyncTask.js → submitter.js} +34 -13
- package/cjs/sync/submitters/submitterManager.js +12 -10
- package/cjs/sync/submitters/telemetrySubmitter.js +128 -0
- package/cjs/sync/syncManagerOnline.js +6 -2
- package/cjs/trackers/eventTracker.js +5 -1
- package/cjs/trackers/impressionsTracker.js +9 -1
- package/cjs/trackers/telemetryTracker.js +63 -0
- package/cjs/utils/constants/index.js +40 -1
- package/cjs/utils/inputValidation/apiKey.js +12 -11
- package/cjs/utils/settingsValidation/index.js +20 -6
- package/cjs/utils/settingsValidation/url.js +4 -0
- package/cjs/utils/timeTracker/index.js +1 -0
- package/cjs/utils/timeTracker/timer.js +2 -2
- package/esm/consent/sdkUserConsent.js +1 -1
- package/esm/listeners/browser.js +3 -2
- package/esm/logger/constants.js +1 -0
- package/esm/logger/messages/error.js +2 -1
- package/esm/logger/messages/info.js +3 -3
- package/esm/logger/messages/warn.js +2 -2
- package/esm/sdkClient/client.js +18 -4
- package/esm/sdkClient/sdkClient.js +4 -1
- package/esm/sdkFactory/index.js +16 -19
- package/esm/services/splitApi.js +15 -14
- package/esm/services/splitHttpClient.js +4 -1
- package/esm/storages/AbstractSegmentsCacheSync.js +0 -5
- package/esm/storages/KeyBuilderSS.js +12 -19
- package/esm/storages/findLatencyIndex.js +11 -6
- package/esm/storages/inLocalStorage/MySegmentsCacheInLocal.js +13 -1
- package/esm/storages/inLocalStorage/index.js +5 -2
- package/esm/storages/inMemory/InMemoryStorage.js +3 -1
- package/esm/storages/inMemory/InMemoryStorageCS.js +4 -1
- package/esm/storages/inMemory/MySegmentsCacheInMemory.js +6 -0
- package/esm/storages/inMemory/SegmentsCacheInMemory.js +6 -0
- package/esm/storages/inMemory/TelemetryCacheInMemory.js +161 -0
- package/esm/storages/inRedis/TelemetryCacheInRedis.js +26 -0
- package/esm/storages/inRedis/index.js +2 -4
- package/esm/storages/pluggable/TelemetryCachePluggable.js +24 -0
- package/esm/storages/pluggable/index.js +2 -1
- package/esm/sync/polling/updaters/mySegmentsUpdater.js +0 -3
- package/esm/sync/polling/updaters/segmentChangesUpdater.js +1 -8
- package/esm/sync/polling/updaters/splitChangesUpdater.js +1 -4
- package/esm/sync/streaming/SSEHandler/NotificationKeeper.js +8 -1
- package/esm/sync/streaming/SSEHandler/index.js +21 -15
- package/esm/sync/streaming/pushManager.js +7 -4
- package/esm/sync/submitters/eventsSubmitter.js +24 -0
- package/esm/sync/submitters/{impressionCountsSyncTask.js → impressionCountsSubmitter.js} +8 -5
- package/esm/sync/submitters/{impressionsSyncTask.js → impressionsSubmitter.js} +6 -6
- package/esm/sync/submitters/submitter.js +60 -0
- package/esm/sync/submitters/submitterManager.js +12 -10
- package/esm/sync/submitters/telemetrySubmitter.js +122 -0
- package/esm/sync/syncManagerOnline.js +6 -2
- package/esm/trackers/eventTracker.js +6 -2
- package/esm/trackers/impressionsTracker.js +10 -2
- package/esm/trackers/telemetryTracker.js +59 -0
- package/esm/utils/constants/index.js +38 -0
- package/esm/utils/inputValidation/apiKey.js +2 -1
- package/esm/utils/settingsValidation/index.js +18 -4
- package/esm/utils/settingsValidation/url.js +4 -0
- package/esm/utils/timeTracker/index.js +1 -0
- package/esm/utils/timeTracker/timer.js +2 -2
- package/package.json +1 -1
- package/src/consent/sdkUserConsent.ts +1 -1
- package/src/listeners/browser.ts +3 -2
- package/src/logger/constants.ts +1 -0
- package/src/logger/messages/error.ts +2 -1
- package/src/logger/messages/info.ts +3 -3
- package/src/logger/messages/warn.ts +2 -2
- package/src/sdkClient/client.ts +23 -4
- package/src/sdkClient/sdkClient.ts +4 -1
- package/src/sdkFactory/index.ts +22 -24
- package/src/sdkFactory/types.ts +31 -14
- package/src/services/splitApi.ts +17 -14
- package/src/services/splitHttpClient.ts +6 -3
- package/src/services/types.ts +7 -5
- package/src/storages/AbstractSegmentsCacheSync.ts +8 -3
- package/src/storages/KeyBuilderSS.ts +13 -50
- package/src/storages/findLatencyIndex.ts +12 -3
- package/src/storages/inLocalStorage/MySegmentsCacheInLocal.ts +13 -1
- package/src/storages/inLocalStorage/index.ts +5 -2
- package/src/storages/inMemory/InMemoryStorage.ts +3 -1
- package/src/storages/inMemory/InMemoryStorageCS.ts +4 -1
- package/src/storages/inMemory/MySegmentsCacheInMemory.ts +8 -0
- package/src/storages/inMemory/SegmentsCacheInMemory.ts +6 -0
- package/src/storages/inMemory/TelemetryCacheInMemory.ts +210 -0
- package/src/storages/inRedis/TelemetryCacheInRedis.ts +29 -0
- package/src/storages/inRedis/index.ts +2 -4
- package/src/storages/pluggable/TelemetryCachePluggable.ts +26 -0
- package/src/storages/pluggable/index.ts +2 -1
- package/src/storages/types.ts +84 -32
- package/src/sync/offline/syncManagerOffline.ts +4 -3
- package/src/sync/polling/pollingManagerCS.ts +2 -2
- package/src/sync/polling/pollingManagerSS.ts +2 -2
- package/src/sync/polling/updaters/mySegmentsUpdater.ts +0 -4
- package/src/sync/polling/updaters/segmentChangesUpdater.ts +2 -10
- package/src/sync/polling/updaters/splitChangesUpdater.ts +1 -5
- package/src/sync/streaming/SSEHandler/NotificationKeeper.ts +11 -1
- package/src/sync/streaming/SSEHandler/index.ts +21 -14
- package/src/sync/streaming/pushManager.ts +11 -7
- package/src/sync/submitters/eventsSubmitter.ts +35 -0
- package/src/sync/submitters/{impressionCountsSyncTask.ts → impressionCountsSubmitter.ts} +15 -15
- package/src/sync/submitters/{impressionsSyncTask.ts → impressionsSubmitter.ts} +12 -16
- package/src/sync/submitters/{submitterSyncTask.ts → submitter.ts} +33 -15
- package/src/sync/submitters/submitterManager.ts +14 -11
- package/src/sync/submitters/telemetrySubmitter.ts +143 -0
- package/src/sync/submitters/types.ts +123 -0
- package/src/sync/syncManagerOnline.ts +13 -7
- package/src/sync/types.ts +0 -15
- package/src/trackers/eventTracker.ts +7 -3
- package/src/trackers/impressionsTracker.ts +11 -3
- package/src/trackers/telemetryTracker.ts +63 -0
- package/src/trackers/types.ts +24 -0
- package/src/types.ts +35 -6
- package/src/utils/constants/index.ts +45 -0
- package/src/utils/inputValidation/apiKey.ts +2 -1
- package/src/utils/settingsValidation/index.ts +18 -4
- package/src/utils/settingsValidation/url.ts +4 -0
- package/src/utils/timeTracker/index.ts +1 -1
- package/src/utils/timeTracker/timer.ts +3 -3
- package/types/logger/constants.d.ts +1 -0
- package/types/sdkFactory/types.d.ts +28 -13
- package/types/services/splitApi.d.ts +2 -1
- package/types/services/types.d.ts +8 -5
- package/types/storages/AbstractSegmentsCacheSync.d.ts +7 -3
- package/types/storages/KeyBuilderSS.d.ts +3 -3
- package/types/storages/findLatencyIndex.d.ts +7 -1
- package/types/storages/inLocalStorage/MySegmentsCacheInLocal.d.ts +2 -0
- package/types/storages/inMemory/MySegmentsCacheInMemory.d.ts +2 -0
- package/types/storages/inMemory/SegmentsCacheInMemory.d.ts +1 -0
- package/types/storages/inMemory/TelemetryCacheInMemory.d.ts +6 -2
- package/types/storages/inRedis/TelemetryCacheInRedis.d.ts +3 -3
- package/types/storages/pluggable/TelemetryCachePluggable.d.ts +2 -2
- package/types/storages/types.d.ts +71 -22
- package/types/sync/offline/syncManagerOffline.d.ts +3 -2
- package/types/sync/polling/pollingManagerCS.d.ts +2 -2
- package/types/sync/polling/pollingManagerSS.d.ts +2 -2
- package/types/sync/streaming/SSEHandler/NotificationKeeper.d.ts +2 -1
- package/types/sync/streaming/SSEHandler/index.d.ts +2 -1
- package/types/sync/streaming/pushManager.d.ts +2 -2
- package/types/sync/submitters/eventsSubmitter.d.ts +5 -0
- package/types/sync/submitters/impressionCountsSubmitter.d.ts +10 -0
- package/types/sync/submitters/impressionsSubmitter.d.ts +11 -0
- package/types/sync/submitters/submitter.d.ts +12 -0
- package/types/sync/submitters/submitterManager.d.ts +2 -2
- package/types/sync/submitters/telemetrySubmitter.d.ts +24 -0
- package/types/sync/submitters/telemetrySyncTask.d.ts +0 -27
- package/types/sync/submitters/types.d.ts +107 -0
- package/types/sync/syncManagerOnline.d.ts +3 -2
- package/types/sync/types.d.ts +0 -13
- package/types/trackers/eventTracker.d.ts +2 -2
- package/types/trackers/impressionsTracker.d.ts +2 -2
- package/types/trackers/telemetryTracker.d.ts +2 -3
- package/types/trackers/types.d.ts +22 -0
- package/types/types.d.ts +33 -4
- package/types/utils/constants/index.d.ts +37 -0
- package/types/utils/inputValidation/apiKey.d.ts +1 -0
- package/types/utils/settingsValidation/index.d.ts +40 -0
- package/types/utils/timeTracker/index.d.ts +1 -1
- package/types/utils/timeTracker/timer.d.ts +1 -1
- package/cjs/storages/inMemory/CountsCacheInMemory.js +0 -38
- package/cjs/storages/inMemory/LatenciesCacheInMemory.js +0 -43
- package/cjs/storages/inRedis/CountsCacheInRedis.js +0 -16
- package/cjs/storages/inRedis/LatenciesCacheInRedis.js +0 -18
- package/cjs/sync/submitters/eventsSyncTask.js +0 -44
- package/cjs/sync/submitters/metricsSyncTask.js +0 -31
- package/esm/storages/inMemory/CountsCacheInMemory.js +0 -35
- package/esm/storages/inMemory/LatenciesCacheInMemory.js +0 -40
- package/esm/storages/inRedis/CountsCacheInRedis.js +0 -13
- package/esm/storages/inRedis/LatenciesCacheInRedis.js +0 -15
- package/esm/sync/submitters/eventsSyncTask.js +0 -40
- package/esm/sync/submitters/metricsSyncTask.js +0 -26
- package/esm/sync/submitters/submitterSyncTask.js +0 -40
- package/src/storages/inMemory/CountsCacheInMemory.ts +0 -37
- package/src/storages/inMemory/LatenciesCacheInMemory.ts +0 -45
- package/src/storages/inRedis/CountsCacheInRedis.ts +0 -20
- package/src/storages/inRedis/LatenciesCacheInRedis.ts +0 -23
- package/src/sync/submitters/eventsSyncTask.ts +0 -57
- package/src/sync/submitters/metricsSyncTask.ts +0 -49
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { ILatenciesCacheSync } from '../types';
|
|
2
|
-
import { findLatencyIndex } from '../findLatencyIndex';
|
|
3
|
-
|
|
4
|
-
export class LatenciesCacheInMemory implements ILatenciesCacheSync {
|
|
5
|
-
|
|
6
|
-
private counters: Record<string, number[]> = {};
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Add latencies.
|
|
10
|
-
*/
|
|
11
|
-
track(metricName: string, latency: number) {
|
|
12
|
-
// Initialize if needed
|
|
13
|
-
if (this.counters[metricName] === undefined) {
|
|
14
|
-
this.counters[metricName] = [
|
|
15
|
-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// +1 based on the latency number
|
|
20
|
-
this.counters[metricName][findLatencyIndex(latency)]++;
|
|
21
|
-
|
|
22
|
-
return true;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Clear the collector
|
|
27
|
-
*/
|
|
28
|
-
clear() {
|
|
29
|
-
this.counters = {};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Get the collected data, used as payload for posting.
|
|
34
|
-
*/
|
|
35
|
-
state() {
|
|
36
|
-
return this.counters;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Check if the cache is empty.
|
|
41
|
-
*/
|
|
42
|
-
isEmpty() {
|
|
43
|
-
return Object.keys(this.counters).length === 0;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ICountsCacheAsync } from '../types';
|
|
2
|
-
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
3
|
-
import { Redis } from 'ioredis';
|
|
4
|
-
|
|
5
|
-
export class CountsCacheInRedis implements ICountsCacheAsync {
|
|
6
|
-
|
|
7
|
-
private readonly redis: Redis;
|
|
8
|
-
private readonly keys: KeyBuilderSS;
|
|
9
|
-
|
|
10
|
-
constructor(keys: KeyBuilderSS, redis: Redis) {
|
|
11
|
-
this.keys = keys;
|
|
12
|
-
this.redis = redis;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
track(metricName: string): Promise<boolean> {
|
|
16
|
-
return this.redis.incr(this.keys.buildCountKey(metricName)).catch(() => {
|
|
17
|
-
// noop, for telemetry metrics there's no need to throw.
|
|
18
|
-
}).then(() => true);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ILatenciesCacheAsync } from '../types';
|
|
2
|
-
import { KeyBuilderSS } from '../KeyBuilderSS';
|
|
3
|
-
import { findLatencyIndex } from '../findLatencyIndex';
|
|
4
|
-
import { Redis } from 'ioredis';
|
|
5
|
-
|
|
6
|
-
export class LatenciesCacheInRedis implements ILatenciesCacheAsync {
|
|
7
|
-
|
|
8
|
-
private readonly redis: Redis;
|
|
9
|
-
private readonly keys: KeyBuilderSS;
|
|
10
|
-
|
|
11
|
-
constructor(keys: KeyBuilderSS, redis: Redis) {
|
|
12
|
-
this.keys = keys;
|
|
13
|
-
this.redis = redis;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
track(metricName: string, latency: number): Promise<boolean> {
|
|
17
|
-
const bucketNumber = findLatencyIndex(latency);
|
|
18
|
-
|
|
19
|
-
return this.redis.incr(this.keys.buildLatencyKey(metricName, bucketNumber)).catch(() => {
|
|
20
|
-
// noop, for telemetry metrics there's no need to throw.
|
|
21
|
-
}).then(() => true);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { IEventsCacheSync } from '../../storages/types';
|
|
2
|
-
import { IPostEventsBulk } from '../../services/types';
|
|
3
|
-
import { ISyncTask, ITimeTracker } from '../types';
|
|
4
|
-
import { submitterSyncTaskFactory } from './submitterSyncTask';
|
|
5
|
-
import { ILogger } from '../../logger/types';
|
|
6
|
-
import { SUBMITTERS_PUSH_FULL_QUEUE } from '../../logger/constants';
|
|
7
|
-
|
|
8
|
-
const DATA_NAME = 'events';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Sync task that periodically posts tracked events
|
|
12
|
-
*/
|
|
13
|
-
export function eventsSyncTaskFactory(
|
|
14
|
-
log: ILogger,
|
|
15
|
-
postEventsBulk: IPostEventsBulk,
|
|
16
|
-
eventsCache: IEventsCacheSync,
|
|
17
|
-
eventsPushRate: number,
|
|
18
|
-
eventsFirstPushWindow: number,
|
|
19
|
-
latencyTracker?: ITimeTracker
|
|
20
|
-
): ISyncTask {
|
|
21
|
-
|
|
22
|
-
// don't retry events.
|
|
23
|
-
const syncTask = submitterSyncTaskFactory(log, postEventsBulk, eventsCache, eventsPushRate, DATA_NAME, latencyTracker);
|
|
24
|
-
|
|
25
|
-
// Set a timer for the first push window of events.
|
|
26
|
-
// Not implemented in the base submitter or sync task, since this feature is only used by the events submitter.
|
|
27
|
-
if (eventsFirstPushWindow > 0) {
|
|
28
|
-
let running = false;
|
|
29
|
-
let stopEventPublisherTimeout: ReturnType<typeof setTimeout>;
|
|
30
|
-
const originalStart = syncTask.start;
|
|
31
|
-
syncTask.start = () => {
|
|
32
|
-
running = true;
|
|
33
|
-
stopEventPublisherTimeout = setTimeout(originalStart, eventsFirstPushWindow);
|
|
34
|
-
};
|
|
35
|
-
const originalStop = syncTask.stop;
|
|
36
|
-
syncTask.stop = () => {
|
|
37
|
-
running = false;
|
|
38
|
-
clearTimeout(stopEventPublisherTimeout);
|
|
39
|
-
originalStop();
|
|
40
|
-
};
|
|
41
|
-
syncTask.isRunning = () => {
|
|
42
|
-
return running;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// register events submitter to be executed when events cache is full
|
|
47
|
-
eventsCache.setOnFullQueueCb(() => {
|
|
48
|
-
if (syncTask.isRunning()) {
|
|
49
|
-
log.info(SUBMITTERS_PUSH_FULL_QUEUE, [DATA_NAME]);
|
|
50
|
-
syncTask.execute();
|
|
51
|
-
}
|
|
52
|
-
// If submitter is stopped (e.g., user consent declined or unknown, or app state offline), we don't send the data.
|
|
53
|
-
// Data will be sent when submitter is resumed.
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
return syncTask;
|
|
57
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { forOwn } from '../../utils/lang';
|
|
3
|
-
import { ICountsCacheSync, ILatenciesCacheSync } from '../../storages/types';
|
|
4
|
-
import { IPostMetricsCounters, IPostMetricsTimes } from '../../services/types';
|
|
5
|
-
import { ISyncTask, ITimeTracker } from '../types';
|
|
6
|
-
import { submitterSyncTaskFactory } from './submitterSyncTask';
|
|
7
|
-
import { ILogger } from '../../logger/types';
|
|
8
|
-
|
|
9
|
-
// extract POST payload object from cache
|
|
10
|
-
function fromCache<V>(propertyName: 'latencies' | 'delta') {
|
|
11
|
-
return (data: Record<string, V>): any[] => {
|
|
12
|
-
const result: any[] = [];
|
|
13
|
-
|
|
14
|
-
forOwn(data, (value, key) => {
|
|
15
|
-
result.push({ name: key, [propertyName]: value });
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Sync task that periodically posts telemetry counts
|
|
24
|
-
*/
|
|
25
|
-
export function countsSyncTaskFactory(
|
|
26
|
-
log: ILogger,
|
|
27
|
-
postMetricsCounters: IPostMetricsCounters,
|
|
28
|
-
countsCache: ICountsCacheSync,
|
|
29
|
-
metricsRefreshRate: number,
|
|
30
|
-
latencyTracker?: ITimeTracker
|
|
31
|
-
): ISyncTask {
|
|
32
|
-
|
|
33
|
-
return submitterSyncTaskFactory(log, postMetricsCounters, countsCache, metricsRefreshRate, 'count metrics', latencyTracker, fromCache<number>('delta'));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Sync task that periodically posts telemetry latencies
|
|
38
|
-
*/
|
|
39
|
-
export function latenciesSyncTaskFactory(
|
|
40
|
-
log: ILogger,
|
|
41
|
-
postMetricsLatencies: IPostMetricsTimes,
|
|
42
|
-
latenciesCache: ILatenciesCacheSync,
|
|
43
|
-
metricsRefreshRate: number,
|
|
44
|
-
latencyTracker?: ITimeTracker
|
|
45
|
-
): ISyncTask {
|
|
46
|
-
|
|
47
|
-
// don't retry metrics.
|
|
48
|
-
return submitterSyncTaskFactory(log, postMetricsLatencies, latenciesCache, metricsRefreshRate, 'latency metrics', latencyTracker, fromCache<number[]>('latencies'), 0, true);
|
|
49
|
-
}
|