@abyss-project/monitor 2.2.0 → 2.3.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/README.md +36 -0
- package/dist/__tests__/alert-log-url.test.d.ts +1 -0
- package/dist/__tests__/alert-log-url.test.js +21 -0
- package/dist/__tests__/alert-log-url.test.js.map +1 -0
- package/dist/__tests__/application-log-bulk-api.test.d.ts +1 -0
- package/dist/__tests__/application-log-bulk-api.test.js +125 -0
- package/dist/__tests__/application-log-bulk-api.test.js.map +1 -0
- package/dist/__tests__/graceful-shutdown-flush.test.d.ts +1 -0
- package/dist/__tests__/graceful-shutdown-flush.test.js +253 -0
- package/dist/__tests__/graceful-shutdown-flush.test.js.map +1 -0
- package/dist/__tests__/log-queue.test.d.ts +1 -0
- package/dist/__tests__/log-queue.test.js +97 -0
- package/dist/__tests__/log-queue.test.js.map +1 -0
- package/dist/__tests__/log-shipper-preconfig.test.d.ts +1 -0
- package/dist/__tests__/log-shipper-preconfig.test.js +54 -0
- package/dist/__tests__/log-shipper-preconfig.test.js.map +1 -0
- package/dist/__tests__/log-shipper.test.d.ts +1 -0
- package/dist/__tests__/log-shipper.test.js +1040 -0
- package/dist/__tests__/log-shipper.test.js.map +1 -0
- package/dist/__tests__/log-spool.test.d.ts +1 -0
- package/dist/__tests__/log-spool.test.js +297 -0
- package/dist/__tests__/log-spool.test.js.map +1 -0
- package/dist/__tests__/logger-body-size.test.d.ts +1 -0
- package/dist/__tests__/logger-body-size.test.js +12 -0
- package/dist/__tests__/logger-body-size.test.js.map +1 -0
- package/dist/__tests__/logger-console-min-level.test.d.ts +1 -0
- package/dist/__tests__/logger-console-min-level.test.js +55 -0
- package/dist/__tests__/logger-console-min-level.test.js.map +1 -0
- package/dist/__tests__/logger-enqueues.test.d.ts +1 -0
- package/dist/__tests__/logger-enqueues.test.js +276 -0
- package/dist/__tests__/logger-enqueues.test.js.map +1 -0
- package/dist/__tests__/logger-returns-promise.test.d.ts +1 -0
- package/dist/__tests__/logger-returns-promise.test.js +27 -0
- package/dist/__tests__/logger-returns-promise.test.js.map +1 -0
- package/dist/__tests__/rate-limit.middleware.test.js +4 -1
- package/dist/__tests__/rate-limit.middleware.test.js.map +1 -1
- package/dist/__tests__/setconfig-keeps-queued-logs.test.d.ts +1 -0
- package/dist/__tests__/setconfig-keeps-queued-logs.test.js +59 -0
- package/dist/__tests__/setconfig-keeps-queued-logs.test.js.map +1 -0
- package/dist/__tests__/shipper-replay-on-config.test.d.ts +1 -0
- package/dist/__tests__/shipper-replay-on-config.test.js +59 -0
- package/dist/__tests__/shipper-replay-on-config.test.js.map +1 -0
- package/dist/__tests__/utils/setup-global.d.ts +1 -0
- package/dist/__tests__/utils/setup-global.js +35 -0
- package/dist/__tests__/utils/setup-global.js.map +1 -0
- package/dist/__tests__/utils/teardown-global.d.ts +1 -0
- package/dist/__tests__/utils/teardown-global.js +36 -0
- package/dist/__tests__/utils/teardown-global.js.map +1 -0
- package/dist/api/application-log.api.d.ts +5 -1
- package/dist/api/application-log.api.js +10 -1
- package/dist/api/application-log.api.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/models/index.d.ts +3 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/log-queue.model.d.ts +25 -0
- package/dist/models/log-queue.model.js +68 -0
- package/dist/models/log-queue.model.js.map +1 -0
- package/dist/models/log-shipper.model.d.ts +75 -0
- package/dist/models/log-shipper.model.js +452 -0
- package/dist/models/log-shipper.model.js.map +1 -0
- package/dist/models/log-spool.model.d.ts +32 -0
- package/dist/models/log-spool.model.js +202 -0
- package/dist/models/log-spool.model.js.map +1 -0
- package/dist/models/logger.model.d.ts +3 -0
- package/dist/models/logger.model.js +59 -70
- package/dist/models/logger.model.js.map +1 -1
- package/dist/types/interface/api/requests/application-log.request.d.ts +10 -0
- package/dist/types/interface/api/responses/application-log.response.d.ts +5 -0
- package/dist/utils/alert.utils.d.ts +1 -0
- package/dist/utils/alert.utils.js +8 -5
- package/dist/utils/alert.utils.js.map +1 -1
- package/dist/utils/graceful-shutdown.utils.d.ts +1 -0
- package/dist/utils/graceful-shutdown.utils.js +53 -8
- package/dist/utils/graceful-shutdown.utils.js.map +1 -1
- package/jest.config.ts +5 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createApplicationLog = exports.paginateApplicationLog = exports.getApplicationLog = void 0;
|
|
3
|
+
exports.createBulkApplicationLog = exports.BULK_REQUEST_TIMEOUT_MS = exports.createApplicationLog = exports.paginateApplicationLog = exports.getApplicationLog = void 0;
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const getApplicationLog = async (params) => {
|
|
6
6
|
return (await __1.AbyssMonitorCore.axios.get(`application-log/${params.applicationId}/${params.applicationLogId}`)).data;
|
|
@@ -14,4 +14,13 @@ const createApplicationLog = async (params, query, body) => {
|
|
|
14
14
|
return (await __1.AbyssMonitorCore.axios.post(`application-log/${params.applicationId}`, body, { params: query })).data;
|
|
15
15
|
};
|
|
16
16
|
exports.createApplicationLog = createApplicationLog;
|
|
17
|
+
exports.BULK_REQUEST_TIMEOUT_MS = 10_000;
|
|
18
|
+
const createBulkApplicationLog = async (params, query, body, options = {}) => {
|
|
19
|
+
return (await __1.AbyssMonitorCore.axios.post(`application-log/${params.applicationId}/bulk`, body, {
|
|
20
|
+
params: query,
|
|
21
|
+
timeout: options.timeoutMs ?? exports.BULK_REQUEST_TIMEOUT_MS,
|
|
22
|
+
'axios-retry': { retries: 0 },
|
|
23
|
+
})).data;
|
|
24
|
+
};
|
|
25
|
+
exports.createBulkApplicationLog = createBulkApplicationLog;
|
|
17
26
|
//# sourceMappingURL=application-log.api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-log.api.js","sourceRoot":"","sources":["../../src/api/application-log.api.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"application-log.api.js","sourceRoot":"","sources":["../../src/api/application-log.api.ts"],"names":[],"mappings":";;;AAAA,0BAeY;AAEL,MAAM,iBAAiB,GAAG,KAAK,EACpC,MAAgC,EACK,EAAE;IACvC,OAAO,CACL,MAAM,oBAAgB,CAAC,KAAK,CAAC,GAAG,CAC9B,mBAAmB,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,gBAAgB,EAAE,CACrE,CACF,CAAC,IAAI,CAAC;AACT,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEK,MAAM,sBAAsB,GAAG,KAAK,EACzC,MAAqC,EACrC,KAAmC,EACO,EAAE;IAC5C,OAAO,CACL,MAAM,oBAAgB,CAAC,KAAK,CAAC,GAAG,CAC9B,mBAAmB,MAAM,CAAC,aAAa,WAAW,EAClD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CACF,CAAC,IAAI,CAAC;AACT,CAAC,CAAC;AAVW,QAAA,sBAAsB,0BAUjC;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,MAAmC,EACnC,KAAiC,EACjC,IAA+B,EACS,EAAE;IAC1C,OAAO,CACL,MAAM,oBAAgB,CAAC,KAAK,CAAC,IAAI,CAC/B,mBAAmB,MAAM,CAAC,aAAa,EAAE,EACzC,IAAI,EACJ,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CACF,CAAC,IAAI,CAAC;AACT,CAAC,CAAC;AAZW,QAAA,oBAAoB,wBAY/B;AASW,QAAA,uBAAuB,GAAG,MAAM,CAAC;AAQvC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,MAAuC,EACvC,KAAqC,EACrC,IAAmC,EACnC,UAAkC,EAAE,EACQ,EAAE;IAC9C,OAAO,CACL,MAAM,oBAAgB,CAAC,KAAK,CAAC,IAAI,CAC/B,mBAAmB,MAAM,CAAC,aAAa,OAAO,EAC9C,IAAI,EACJ;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,+BAAuB;QAWrD,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;KAC9B,CACF,CACF,CAAC,IAAI,CAAC;AACT,CAAC,CAAC;AA3BW,QAAA,wBAAwB,4BA2BnC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { IAxiosRetryConfig } from 'axios-retry';
|
|
3
3
|
import { StatsPublisher } from './models/stats-publisher.model';
|
|
4
|
+
import { LogShipper, ShipperOptions } from './models/log-shipper.model';
|
|
4
5
|
import { ApplicationAlertType } from './types';
|
|
5
6
|
import { ParamsSendLogAlert, ParamsSendStatsAlert } from './utils';
|
|
6
7
|
import * as applicationApi from './api/application.api';
|
|
@@ -64,6 +65,7 @@ type AbyssMonitorCoreSDK = {
|
|
|
64
65
|
get: typeof applicationLogApi.getApplicationLog;
|
|
65
66
|
paginate: typeof applicationLogApi.paginateApplicationLog;
|
|
66
67
|
create: typeof applicationLogApi.createApplicationLog;
|
|
68
|
+
createBulk: typeof applicationLogApi.createBulkApplicationLog;
|
|
67
69
|
admin: {
|
|
68
70
|
get: typeof applicationLogAdminApi.getApplicationLogAdmin;
|
|
69
71
|
paginate: typeof applicationLogAdminApi.paginateApplicationLogAdmin;
|
|
@@ -196,6 +198,7 @@ type CoreConfig = {
|
|
|
196
198
|
applicationName: string;
|
|
197
199
|
defaultAlertLogWebhookUrl: string | null;
|
|
198
200
|
defaultAlertStatsWebhookUrl: string | null;
|
|
201
|
+
shipper: ShipperOptions;
|
|
199
202
|
getWebhookUrl: (params: {
|
|
200
203
|
type: ApplicationAlertType.LOG;
|
|
201
204
|
payload: ParamsSendLogAlert;
|
|
@@ -208,6 +211,8 @@ export declare class AbyssMonitorCore {
|
|
|
208
211
|
private static config;
|
|
209
212
|
static StatsPublisher: typeof StatsPublisher;
|
|
210
213
|
private static _sdk;
|
|
214
|
+
private static _shipper;
|
|
215
|
+
static getShipper(): LogShipper;
|
|
211
216
|
static get sdk(): AbyssMonitorCoreSDK;
|
|
212
217
|
private static buildSDK;
|
|
213
218
|
static axios: import("axios").AxiosInstance;
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ require("reflect-metadata");
|
|
|
35
35
|
const axios_1 = __importDefault(require("axios"));
|
|
36
36
|
const axios_retry_1 = __importStar(require("axios-retry"));
|
|
37
37
|
const stats_publisher_model_1 = require("./models/stats-publisher.model");
|
|
38
|
+
const log_shipper_model_1 = require("./models/log-shipper.model");
|
|
38
39
|
const applicationApi = __importStar(require("./api/application.api"));
|
|
39
40
|
const applicationAdminApi = __importStar(require("./api/application.admin.api"));
|
|
40
41
|
const applicationStatsApi = __importStar(require("./api/application-stats.api"));
|
|
@@ -80,6 +81,12 @@ exports.RETRY_CODES = [
|
|
|
80
81
|
503,
|
|
81
82
|
];
|
|
82
83
|
class AbyssMonitorCore {
|
|
84
|
+
static getShipper() {
|
|
85
|
+
if (!_a._shipper) {
|
|
86
|
+
_a._shipper = new log_shipper_model_1.LogShipper(_a.config.shipper);
|
|
87
|
+
}
|
|
88
|
+
return _a._shipper;
|
|
89
|
+
}
|
|
83
90
|
static get sdk() {
|
|
84
91
|
if (!_a._sdk) {
|
|
85
92
|
_a._sdk = _a.buildSDK();
|
|
@@ -120,6 +127,7 @@ class AbyssMonitorCore {
|
|
|
120
127
|
get: applicationLogApi.getApplicationLog,
|
|
121
128
|
paginate: applicationLogApi.paginateApplicationLog,
|
|
122
129
|
create: applicationLogApi.createApplicationLog,
|
|
130
|
+
createBulk: applicationLogApi.createBulkApplicationLog,
|
|
123
131
|
admin: {
|
|
124
132
|
get: applicationLogAdminApi.getApplicationLogAdmin,
|
|
125
133
|
paginate: applicationLogAdminApi.paginateApplicationLogAdmin,
|
|
@@ -246,6 +254,18 @@ class AbyssMonitorCore {
|
|
|
246
254
|
if (config.applicationApiKey) {
|
|
247
255
|
_a.axios.defaults.headers.common[exports.API_KEY_APPLICATION_HEADER] = `${config.applicationApiKey}`;
|
|
248
256
|
}
|
|
257
|
+
if (config.shipper) {
|
|
258
|
+
_a._shipper?.reconfigure(config.shipper);
|
|
259
|
+
}
|
|
260
|
+
const { applicationId, secretPublishToken } = _a.config;
|
|
261
|
+
if (applicationId && secretPublishToken) {
|
|
262
|
+
const shipper = _a.getShipper();
|
|
263
|
+
if (shipper.mayHavePendingSpool()) {
|
|
264
|
+
void shipper.replaySpool().catch((error) => {
|
|
265
|
+
console.error(`Unable to replay spooled logs. Error: ${error}`);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
249
269
|
}
|
|
250
270
|
static getConfig() {
|
|
251
271
|
return _a.config;
|
|
@@ -274,10 +294,12 @@ AbyssMonitorCore.config = {
|
|
|
274
294
|
applicationName: 'Unnamed Application',
|
|
275
295
|
defaultAlertLogWebhookUrl: null,
|
|
276
296
|
defaultAlertStatsWebhookUrl: null,
|
|
297
|
+
shipper: {},
|
|
277
298
|
getWebhookUrl: async () => null,
|
|
278
299
|
};
|
|
279
300
|
AbyssMonitorCore.StatsPublisher = stats_publisher_model_1.StatsPublisher;
|
|
280
301
|
AbyssMonitorCore._sdk = null;
|
|
302
|
+
AbyssMonitorCore._shipper = null;
|
|
281
303
|
AbyssMonitorCore.axios = axios_1.default.create({
|
|
282
304
|
baseURL: _a.config.baseURL,
|
|
283
305
|
withCredentials: true,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAA0B;AAC1B,kDAA0B;AAC1B,2DAA+F;AAC/F,0EAAgE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/models/index.d.ts
CHANGED
package/dist/models/index.js
CHANGED
|
@@ -15,4 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./logger.model"), exports);
|
|
18
|
+
__exportStar(require("./log-queue.model"), exports);
|
|
19
|
+
__exportStar(require("./log-spool.model"), exports);
|
|
20
|
+
__exportStar(require("./log-shipper.model"), exports);
|
|
18
21
|
//# sourceMappingURL=index.js.map
|
package/dist/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LogData } from './logger.model';
|
|
2
|
+
export type QueuedLog = {
|
|
3
|
+
log: LogData;
|
|
4
|
+
byteSize: number;
|
|
5
|
+
};
|
|
6
|
+
export type LogQueueOptions = {
|
|
7
|
+
maxEntries: number;
|
|
8
|
+
maxBytes: number;
|
|
9
|
+
};
|
|
10
|
+
export declare class LogQueue {
|
|
11
|
+
private readonly entries;
|
|
12
|
+
private maxEntries;
|
|
13
|
+
private maxBytes;
|
|
14
|
+
private currentBytes;
|
|
15
|
+
private droppedCount;
|
|
16
|
+
constructor(options: LogQueueOptions);
|
|
17
|
+
resize(options: LogQueueOptions): void;
|
|
18
|
+
get entryCount(): number;
|
|
19
|
+
get byteCount(): number;
|
|
20
|
+
push(log: LogData, byteSize: number): void;
|
|
21
|
+
requeueFront(entries: QueuedLog[]): void;
|
|
22
|
+
drain(maxEntries: number, maxBytes: number): QueuedLog[];
|
|
23
|
+
takeDroppedCount(): number;
|
|
24
|
+
private enforceCaps;
|
|
25
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LogQueue = void 0;
|
|
4
|
+
class LogQueue {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.entries = [];
|
|
7
|
+
this.currentBytes = 0;
|
|
8
|
+
this.droppedCount = 0;
|
|
9
|
+
this.maxEntries = options.maxEntries;
|
|
10
|
+
this.maxBytes = options.maxBytes;
|
|
11
|
+
}
|
|
12
|
+
resize(options) {
|
|
13
|
+
this.maxEntries = options.maxEntries;
|
|
14
|
+
this.maxBytes = options.maxBytes;
|
|
15
|
+
this.enforceCaps();
|
|
16
|
+
}
|
|
17
|
+
get entryCount() {
|
|
18
|
+
return this.entries.length;
|
|
19
|
+
}
|
|
20
|
+
get byteCount() {
|
|
21
|
+
return this.currentBytes;
|
|
22
|
+
}
|
|
23
|
+
push(log, byteSize) {
|
|
24
|
+
this.entries.push({ log, byteSize });
|
|
25
|
+
this.currentBytes += byteSize;
|
|
26
|
+
this.enforceCaps();
|
|
27
|
+
}
|
|
28
|
+
requeueFront(entries) {
|
|
29
|
+
this.entries.unshift(...entries);
|
|
30
|
+
for (const entry of entries) {
|
|
31
|
+
this.currentBytes += entry.byteSize;
|
|
32
|
+
}
|
|
33
|
+
this.enforceCaps();
|
|
34
|
+
}
|
|
35
|
+
drain(maxEntries, maxBytes) {
|
|
36
|
+
const drained = [];
|
|
37
|
+
let drainedBytes = 0;
|
|
38
|
+
while (this.entries.length > 0 && drained.length < maxEntries) {
|
|
39
|
+
const next = this.entries[0];
|
|
40
|
+
if (drained.length > 0 && drainedBytes + next.byteSize > maxBytes) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
this.entries.shift();
|
|
44
|
+
this.currentBytes -= next.byteSize;
|
|
45
|
+
drainedBytes += next.byteSize;
|
|
46
|
+
drained.push(next);
|
|
47
|
+
}
|
|
48
|
+
return drained;
|
|
49
|
+
}
|
|
50
|
+
takeDroppedCount() {
|
|
51
|
+
const dropped = this.droppedCount;
|
|
52
|
+
this.droppedCount = 0;
|
|
53
|
+
return dropped;
|
|
54
|
+
}
|
|
55
|
+
enforceCaps() {
|
|
56
|
+
while (this.entries.length > this.maxEntries ||
|
|
57
|
+
(this.currentBytes > this.maxBytes && this.entries.length > 1)) {
|
|
58
|
+
const dropped = this.entries.shift();
|
|
59
|
+
if (!dropped) {
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
this.currentBytes -= dropped.byteSize;
|
|
63
|
+
this.droppedCount += 1;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.LogQueue = LogQueue;
|
|
68
|
+
//# sourceMappingURL=log-queue.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-queue.model.js","sourceRoot":"","sources":["../../src/models/log-queue.model.ts"],"names":[],"mappings":";;;AAqBA,MAAa,QAAQ;IAOnB,YAAY,OAAwB;QANnB,YAAO,GAAgB,EAAE,CAAC;QAGnC,iBAAY,GAAG,CAAC,CAAC;QACjB,iBAAY,GAAG,CAAC,CAAC;QAGvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IAMM,MAAM,CAAC,OAAwB;QACpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,IAAI,CAAC,GAAY,EAAE,QAAgB;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAMM,YAAY,CAAC,OAAoB;QACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAOM,KAAK,CAAC,UAAkB,EAAE,QAAgB;QAC/C,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;gBAClE,MAAM;YACR,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC;YACnC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,gBAAgB;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAOO,WAAW;QACjB,OACE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU;YACrC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAC9D,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM;YACR,CAAC;YACD,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AA/FD,4BA+FC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { LogData } from './logger.model';
|
|
2
|
+
export declare const DEFAULT_FLUSH_INTERVAL_MS = 500;
|
|
3
|
+
export declare const DEFAULT_MAX_BATCH_ENTRIES = 100;
|
|
4
|
+
export declare const DEFAULT_MAX_QUEUE_ENTRIES = 10000;
|
|
5
|
+
export declare const DEFAULT_MAX_QUEUE_BYTES: number;
|
|
6
|
+
export declare const DEFAULT_SPOOL_MAX_BYTES: number;
|
|
7
|
+
export declare const BACKOFF_BASE_MS = 1000;
|
|
8
|
+
export declare const BACKOFF_MAX_MS = 60000;
|
|
9
|
+
export declare const SPOOL_DIRECTORY_ENV = "ABYSS_MONITOR_SPOOL_DIR";
|
|
10
|
+
export declare const MAX_REFUSED_LINES_PER_BATCH = 5;
|
|
11
|
+
export declare enum SendOutcome {
|
|
12
|
+
SENT = "SENT",
|
|
13
|
+
RETRY = "RETRY",
|
|
14
|
+
DROP = "DROP"
|
|
15
|
+
}
|
|
16
|
+
export declare const classifySendError: (error: unknown) => SendOutcome;
|
|
17
|
+
export declare const resolveSpoolBase: (explicit?: string | null) => string | null;
|
|
18
|
+
export declare const byteLengthOf: (text: string) => number;
|
|
19
|
+
export type FlushOptions = {
|
|
20
|
+
ignoreBackoff?: boolean;
|
|
21
|
+
};
|
|
22
|
+
export type ShipperOptions = {
|
|
23
|
+
flushIntervalMs?: number;
|
|
24
|
+
maxBatchEntries?: number;
|
|
25
|
+
maxBatchBytes?: number;
|
|
26
|
+
maxQueueEntries?: number;
|
|
27
|
+
maxQueueBytes?: number;
|
|
28
|
+
spoolDirectory?: string | null;
|
|
29
|
+
spoolMaxBytes?: number;
|
|
30
|
+
};
|
|
31
|
+
export declare class LogShipper {
|
|
32
|
+
private readonly queue;
|
|
33
|
+
private settings;
|
|
34
|
+
private readonly spools;
|
|
35
|
+
private readonly retiredSpools;
|
|
36
|
+
private readonly inFlightFiles;
|
|
37
|
+
private interval;
|
|
38
|
+
private scheduledFlush;
|
|
39
|
+
private inFlight;
|
|
40
|
+
private replaying;
|
|
41
|
+
private consecutiveFailures;
|
|
42
|
+
private retryNotBefore;
|
|
43
|
+
private lostEntries;
|
|
44
|
+
private spoolMayHavePending;
|
|
45
|
+
private spoolWrites;
|
|
46
|
+
constructor(options?: ShipperOptions);
|
|
47
|
+
reconfigure(options: ShipperOptions): void;
|
|
48
|
+
enqueue(log: LogData, byteSize?: number): void;
|
|
49
|
+
flush(deadlineMs?: number, options?: FlushOptions): Promise<void>;
|
|
50
|
+
replaySpool(): Promise<number>;
|
|
51
|
+
mayHavePendingSpool(): boolean;
|
|
52
|
+
stop(): void;
|
|
53
|
+
private startTimer;
|
|
54
|
+
private guarded;
|
|
55
|
+
private settlesBefore;
|
|
56
|
+
private tick;
|
|
57
|
+
private requestFlush;
|
|
58
|
+
private scheduleFlush;
|
|
59
|
+
private currentIdentity;
|
|
60
|
+
private spoolFor;
|
|
61
|
+
private markSpoolPending;
|
|
62
|
+
private recordFailure;
|
|
63
|
+
private recordSuccess;
|
|
64
|
+
private drainAll;
|
|
65
|
+
private spillQueueAtExit;
|
|
66
|
+
private spillAtExit;
|
|
67
|
+
private deliver;
|
|
68
|
+
private replayPending;
|
|
69
|
+
private discardGarbled;
|
|
70
|
+
private takeDroppedCount;
|
|
71
|
+
private send;
|
|
72
|
+
private sendBisecting;
|
|
73
|
+
private postCounted;
|
|
74
|
+
private post;
|
|
75
|
+
}
|