apitally 0.3.0 → 0.4.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 +1 -1
- package/lib/cjs/common/client.cjs +5 -1
- package/lib/cjs/common/client.cjs.map +1 -1
- package/lib/cjs/common/serverErrorCounter.cjs +104 -0
- package/lib/cjs/common/serverErrorCounter.cjs.map +1 -0
- package/lib/cjs/common/validationErrorCounter.cjs +26 -23
- package/lib/cjs/common/validationErrorCounter.cjs.map +1 -1
- package/lib/cjs/express/middleware.cjs +25 -4
- package/lib/cjs/express/middleware.cjs.map +1 -1
- package/lib/cjs/fastify/plugin.cjs +20 -3
- package/lib/cjs/fastify/plugin.cjs.map +1 -1
- package/lib/cjs/koa/middleware.cjs +32 -16
- package/lib/cjs/koa/middleware.cjs.map +1 -1
- package/lib/esm/common/client.js +5 -1
- package/lib/esm/common/client.js.map +1 -1
- package/lib/esm/common/serverErrorCounter.js +98 -0
- package/lib/esm/common/serverErrorCounter.js.map +1 -0
- package/lib/esm/common/validationErrorCounter.js +26 -23
- package/lib/esm/common/validationErrorCounter.js.map +1 -1
- package/lib/esm/express/middleware.js +25 -4
- package/lib/esm/express/middleware.js.map +1 -1
- package/lib/esm/fastify/plugin.js +20 -3
- package/lib/esm/fastify/plugin.js.map +1 -1
- package/lib/esm/koa/middleware.js +32 -16
- package/lib/esm/koa/middleware.js.map +1 -1
- package/lib/types/common/client.d.ts +2 -0
- package/lib/types/common/client.d.ts.map +1 -1
- package/lib/types/common/serverErrorCounter.d.ts +12 -0
- package/lib/types/common/serverErrorCounter.d.ts.map +1 -0
- package/lib/types/common/types.d.ts +12 -0
- package/lib/types/common/types.d.ts.map +1 -1
- package/lib/types/common/validationErrorCounter.d.ts +2 -1
- package/lib/types/common/validationErrorCounter.d.ts.map +1 -1
- package/lib/types/fastify/plugin.d.ts +2 -1
- package/lib/types/fastify/plugin.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ var useApitally = exports.useApitally = function useApitally(app, config) {
|
|
|
20
20
|
var getMiddleware = function getMiddleware(client) {
|
|
21
21
|
return /*#__PURE__*/function () {
|
|
22
22
|
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(ctx, next) {
|
|
23
|
-
var
|
|
23
|
+
var path, statusCode, startTime;
|
|
24
24
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
25
25
|
while (1) switch (_context.prev = _context.next) {
|
|
26
26
|
case 0:
|
|
@@ -29,46 +29,62 @@ var getMiddleware = function getMiddleware(client) {
|
|
|
29
29
|
_context.next = 4;
|
|
30
30
|
return next();
|
|
31
31
|
case 4:
|
|
32
|
-
_context.next =
|
|
32
|
+
_context.next = 12;
|
|
33
33
|
break;
|
|
34
34
|
case 6:
|
|
35
35
|
_context.prev = 6;
|
|
36
36
|
_context.t0 = _context["catch"](1);
|
|
37
|
+
path = getPath(ctx);
|
|
37
38
|
statusCode = _context.t0.statusCode || _context.t0.status || 500;
|
|
39
|
+
if (path && statusCode === 500 && _context.t0 instanceof Error) {
|
|
40
|
+
client.serverErrorCounter.addServerError({
|
|
41
|
+
consumer: getConsumer(ctx),
|
|
42
|
+
method: ctx.request.method,
|
|
43
|
+
path: path,
|
|
44
|
+
type: _context.t0.name,
|
|
45
|
+
msg: _context.t0.message,
|
|
46
|
+
traceback: _context.t0.stack || ""
|
|
47
|
+
});
|
|
48
|
+
}
|
|
38
49
|
throw _context.t0;
|
|
39
|
-
case
|
|
40
|
-
_context.prev =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
50
|
+
case 12:
|
|
51
|
+
_context.prev = 12;
|
|
52
|
+
if (!path) {
|
|
53
|
+
path = getPath(ctx);
|
|
54
|
+
}
|
|
55
|
+
if (path) {
|
|
56
|
+
try {
|
|
44
57
|
client.requestCounter.addRequest({
|
|
45
58
|
consumer: getConsumer(ctx),
|
|
46
59
|
method: ctx.request.method,
|
|
47
|
-
path:
|
|
60
|
+
path: path,
|
|
48
61
|
statusCode: statusCode || ctx.response.status,
|
|
49
62
|
responseTime: performance.now() - startTime,
|
|
50
63
|
requestSize: ctx.request.length,
|
|
51
64
|
responseSize: ctx.response.length
|
|
52
65
|
});
|
|
66
|
+
} catch (error) {
|
|
67
|
+
client.logger.error("Error while logging request in Apitally middleware.", {
|
|
68
|
+
context: ctx,
|
|
69
|
+
error: error
|
|
70
|
+
});
|
|
53
71
|
}
|
|
54
|
-
} catch (error) {
|
|
55
|
-
client.logger.error("Error while logging request in Apitally middleware.", {
|
|
56
|
-
context: ctx,
|
|
57
|
-
error: error
|
|
58
|
-
});
|
|
59
72
|
}
|
|
60
|
-
return _context.finish(
|
|
61
|
-
case
|
|
73
|
+
return _context.finish(12);
|
|
74
|
+
case 16:
|
|
62
75
|
case "end":
|
|
63
76
|
return _context.stop();
|
|
64
77
|
}
|
|
65
|
-
}, _callee, null, [[1, 6,
|
|
78
|
+
}, _callee, null, [[1, 6, 12, 16]]);
|
|
66
79
|
}));
|
|
67
80
|
return function (_x, _x2) {
|
|
68
81
|
return _ref.apply(this, arguments);
|
|
69
82
|
};
|
|
70
83
|
}();
|
|
71
84
|
};
|
|
85
|
+
var getPath = function getPath(ctx) {
|
|
86
|
+
return ctx._matchedRoute || ctx.routePath; // _matchedRoute is set by koa-router, routePath is set by koa-route
|
|
87
|
+
};
|
|
72
88
|
var getConsumer = function getConsumer(ctx) {
|
|
73
89
|
return ctx.state.consumerIdentifier ? String(ctx.state.consumerIdentifier) : null;
|
|
74
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.cjs","names":["_client","require","_packageVersions","useApitally","exports","app","config","client","ApitallyClient","middleware","getMiddleware","use","setTimeout","setAppInfo","getAppInfo","appVersion","_ref","_asyncToGenerator2","_regenerator","mark","_callee","ctx","next","
|
|
1
|
+
{"version":3,"file":"middleware.cjs","names":["_client","require","_packageVersions","useApitally","exports","app","config","client","ApitallyClient","middleware","getMiddleware","use","setTimeout","setAppInfo","getAppInfo","appVersion","_ref","_asyncToGenerator2","_regenerator","mark","_callee","ctx","next","path","statusCode","startTime","wrap","_callee$","_context","prev","performance","now","t0","getPath","status","Error","serverErrorCounter","addServerError","consumer","getConsumer","method","request","type","name","msg","message","traceback","stack","requestCounter","addRequest","response","responseTime","requestSize","length","responseSize","error","logger","context","finish","stop","_x","_x2","apply","arguments","_matchedRoute","routePath","state","consumerIdentifier","String","versions","process","version","replace","koaVersion","getPackageVersion","apitallyVersion","push","paths","listEndpoints","Object","fromEntries","isKoaRouterMiddleware","router","Array","isArray","endpoints","forEach","layer","methods","includes","toUpperCase"],"sources":["../../../src/koa/middleware.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/lib/esm/common/client.js
CHANGED
|
@@ -12,6 +12,7 @@ import { randomUUID } from "crypto";
|
|
|
12
12
|
import { getLogger } from "./logging.js";
|
|
13
13
|
import { isValidClientId, isValidEnv } from "./paramValidation.js";
|
|
14
14
|
import RequestCounter from "./requestCounter.js";
|
|
15
|
+
import ServerErrorCounter from "./serverErrorCounter.js";
|
|
15
16
|
import ValidationErrorCounter from "./validationErrorCounter.js";
|
|
16
17
|
var SYNC_INTERVAL = 60000; // 60 seconds
|
|
17
18
|
var INITIAL_SYNC_INTERVAL = 10000; // 10 seconds
|
|
@@ -35,6 +36,7 @@ export var ApitallyClient = /*#__PURE__*/function () {
|
|
|
35
36
|
_defineProperty(this, "appInfoSent", false);
|
|
36
37
|
_defineProperty(this, "requestCounter", void 0);
|
|
37
38
|
_defineProperty(this, "validationErrorCounter", void 0);
|
|
39
|
+
_defineProperty(this, "serverErrorCounter", void 0);
|
|
38
40
|
_defineProperty(this, "logger", void 0);
|
|
39
41
|
if (ApitallyClient.instance) {
|
|
40
42
|
throw new Error("Apitally client is already initialized");
|
|
@@ -52,6 +54,7 @@ export var ApitallyClient = /*#__PURE__*/function () {
|
|
|
52
54
|
this.requestsDataQueue = [];
|
|
53
55
|
this.requestCounter = new RequestCounter();
|
|
54
56
|
this.validationErrorCounter = new ValidationErrorCounter();
|
|
57
|
+
this.serverErrorCounter = new ServerErrorCounter();
|
|
55
58
|
this.logger = logger || getLogger();
|
|
56
59
|
this.axiosClient = axios.create({
|
|
57
60
|
baseURL: this.getHubUrl(),
|
|
@@ -221,7 +224,8 @@ export var ApitallyClient = /*#__PURE__*/function () {
|
|
|
221
224
|
instance_uuid: this.instanceUuid,
|
|
222
225
|
message_uuid: randomUUID(),
|
|
223
226
|
requests: this.requestCounter.getAndResetRequests(),
|
|
224
|
-
validation_errors: this.validationErrorCounter.getAndResetValidationErrors()
|
|
227
|
+
validation_errors: this.validationErrorCounter.getAndResetValidationErrors(),
|
|
228
|
+
server_errors: this.serverErrorCounter.getAndResetServerErrors()
|
|
225
229
|
};
|
|
226
230
|
this.requestsDataQueue.push([Date.now(), newPayload]);
|
|
227
231
|
failedItems = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["axios","AxiosError","axiosRetry","randomUUID","getLogger","isValidClientId","isValidEnv","RequestCounter","ValidationErrorCounter","SYNC_INTERVAL","INITIAL_SYNC_INTERVAL","INITIAL_SYNC_INTERVAL_DURATION","REQUEST_TIMEOUT","MAX_QUEUE_TIME","ApitallyClient","_ref","clientId","_ref$env","env","logger","_classCallCheck","_defineProperty","instance","Error","concat","instanceUuid","requestsDataQueue","requestCounter","validationErrorCounter","axiosClient","create","baseURL","getHubUrl","timeout","retries","retryDelay","retryCount","error","exponentialDelay","startSync","handleShutdown","bind","_createClass","key","value","_handleShutdown","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stopSync","sendRequestsData","undefined","stop","apply","arguments","process","APITALLY_HUB_BASE_URL","version","_this","sync","syncIntervalId","setInterval","setTimeout","clearInterval","_sync","_callee2","promises","_callee2$","_context2","appInfoSent","push","sendAppInfo","Promise","all","t0","setAppInfo","appInfo","_sendAppInfo","_callee3","payload","_callee3$","_context3","debug","_objectSpread","instance_uuid","message_uuid","post","response","status","data","includes","code","_sendRequestsData","_callee4","newPayload","failedItems","queueItem","_queueItem","time","timeOffset","_callee4$","_context4","time_offset","requests","getAndResetRequests","validation_errors","getAndResetValidationErrors","Date","now","length","shift","_slicedToArray","getInstance","_shutdown","_callee5","_callee5$","_context5","shutdown"],"sources":["../../../src/common/client.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAuB,OAAO;AACxD,OAAOC,UAAU,MAAM,aAAa;AACpC,SAASC,UAAU,QAAQ,QAAQ;AAEnC,SAAiBC,SAAS,QAAQ,cAAc;AAChD,SAASC,eAAe,EAAEC,UAAU,QAAQ,sBAAsB;AAClE,OAAOC,cAAc,MAAM,qBAAqB;
|
|
1
|
+
{"version":3,"file":"client.js","names":["axios","AxiosError","axiosRetry","randomUUID","getLogger","isValidClientId","isValidEnv","RequestCounter","ServerErrorCounter","ValidationErrorCounter","SYNC_INTERVAL","INITIAL_SYNC_INTERVAL","INITIAL_SYNC_INTERVAL_DURATION","REQUEST_TIMEOUT","MAX_QUEUE_TIME","ApitallyClient","_ref","clientId","_ref$env","env","logger","_classCallCheck","_defineProperty","instance","Error","concat","instanceUuid","requestsDataQueue","requestCounter","validationErrorCounter","serverErrorCounter","axiosClient","create","baseURL","getHubUrl","timeout","retries","retryDelay","retryCount","error","exponentialDelay","startSync","handleShutdown","bind","_createClass","key","value","_handleShutdown","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stopSync","sendRequestsData","undefined","stop","apply","arguments","process","APITALLY_HUB_BASE_URL","version","_this","sync","syncIntervalId","setInterval","setTimeout","clearInterval","_sync","_callee2","promises","_callee2$","_context2","appInfoSent","push","sendAppInfo","Promise","all","t0","setAppInfo","appInfo","_sendAppInfo","_callee3","payload","_callee3$","_context3","debug","_objectSpread","instance_uuid","message_uuid","post","response","status","data","includes","code","_sendRequestsData","_callee4","newPayload","failedItems","queueItem","_queueItem","time","timeOffset","_callee4$","_context4","time_offset","requests","getAndResetRequests","validation_errors","getAndResetValidationErrors","server_errors","getAndResetServerErrors","Date","now","length","shift","_slicedToArray","getInstance","_shutdown","_callee5","_callee5$","_context5","shutdown"],"sources":["../../../src/common/client.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
+
import { createHash } from "crypto";
|
|
8
|
+
var MAX_MSG_LENGTH = 2048;
|
|
9
|
+
var MAX_STACKTRACE_LENGTH = 65536;
|
|
10
|
+
var ServerErrorCounter = /*#__PURE__*/function () {
|
|
11
|
+
function ServerErrorCounter() {
|
|
12
|
+
_classCallCheck(this, ServerErrorCounter);
|
|
13
|
+
_defineProperty(this, "errorCounts", void 0);
|
|
14
|
+
_defineProperty(this, "errorDetails", void 0);
|
|
15
|
+
this.errorCounts = new Map();
|
|
16
|
+
this.errorDetails = new Map();
|
|
17
|
+
}
|
|
18
|
+
_createClass(ServerErrorCounter, [{
|
|
19
|
+
key: "addServerError",
|
|
20
|
+
value: function addServerError(serverError) {
|
|
21
|
+
var key = this.getKey(serverError);
|
|
22
|
+
if (!this.errorDetails.has(key)) {
|
|
23
|
+
this.errorDetails.set(key, serverError);
|
|
24
|
+
}
|
|
25
|
+
this.errorCounts.set(key, (this.errorCounts.get(key) || 0) + 1);
|
|
26
|
+
}
|
|
27
|
+
}, {
|
|
28
|
+
key: "getAndResetServerErrors",
|
|
29
|
+
value: function getAndResetServerErrors() {
|
|
30
|
+
var _this = this;
|
|
31
|
+
var data = [];
|
|
32
|
+
this.errorCounts.forEach(function (count, key) {
|
|
33
|
+
var serverError = _this.errorDetails.get(key);
|
|
34
|
+
if (serverError) {
|
|
35
|
+
data.push({
|
|
36
|
+
consumer: serverError.consumer || null,
|
|
37
|
+
method: serverError.method,
|
|
38
|
+
path: serverError.path,
|
|
39
|
+
type: serverError.type,
|
|
40
|
+
msg: _this.getTruncatedMessage(serverError.msg),
|
|
41
|
+
traceback: _this.getTruncatedStack(serverError.traceback),
|
|
42
|
+
error_count: count
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
this.errorCounts.clear();
|
|
47
|
+
this.errorDetails.clear();
|
|
48
|
+
return data;
|
|
49
|
+
}
|
|
50
|
+
}, {
|
|
51
|
+
key: "getKey",
|
|
52
|
+
value: function getKey(serverError) {
|
|
53
|
+
var hashInput = [serverError.consumer || "", serverError.method.toUpperCase(), serverError.path, serverError.type, serverError.msg.trim(), serverError.traceback.trim()].join("|");
|
|
54
|
+
return createHash("md5").update(hashInput).digest("hex");
|
|
55
|
+
}
|
|
56
|
+
}, {
|
|
57
|
+
key: "getTruncatedMessage",
|
|
58
|
+
value: function getTruncatedMessage(msg) {
|
|
59
|
+
msg = msg.trim();
|
|
60
|
+
if (msg.length <= MAX_MSG_LENGTH) {
|
|
61
|
+
return msg;
|
|
62
|
+
}
|
|
63
|
+
var suffix = "... (truncated)";
|
|
64
|
+
var cutoff = MAX_MSG_LENGTH - suffix.length;
|
|
65
|
+
return msg.substring(0, cutoff) + suffix;
|
|
66
|
+
}
|
|
67
|
+
}, {
|
|
68
|
+
key: "getTruncatedStack",
|
|
69
|
+
value: function getTruncatedStack(stack) {
|
|
70
|
+
var suffix = "... (truncated) ...";
|
|
71
|
+
var cutoff = MAX_STACKTRACE_LENGTH - suffix.length;
|
|
72
|
+
var lines = stack.trim().split("\n");
|
|
73
|
+
var truncatedLines = [];
|
|
74
|
+
var length = 0;
|
|
75
|
+
var _iterator = _createForOfIteratorHelper(lines),
|
|
76
|
+
_step;
|
|
77
|
+
try {
|
|
78
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
79
|
+
var line = _step.value;
|
|
80
|
+
if (length + line.length + 1 > cutoff) {
|
|
81
|
+
truncatedLines.push(suffix);
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
truncatedLines.push(line);
|
|
85
|
+
length += line.length + 1;
|
|
86
|
+
}
|
|
87
|
+
} catch (err) {
|
|
88
|
+
_iterator.e(err);
|
|
89
|
+
} finally {
|
|
90
|
+
_iterator.f();
|
|
91
|
+
}
|
|
92
|
+
return truncatedLines.join("\n");
|
|
93
|
+
}
|
|
94
|
+
}]);
|
|
95
|
+
return ServerErrorCounter;
|
|
96
|
+
}();
|
|
97
|
+
export { ServerErrorCounter as default };
|
|
98
|
+
//# sourceMappingURL=serverErrorCounter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serverErrorCounter.js","names":["createHash","MAX_MSG_LENGTH","MAX_STACKTRACE_LENGTH","ServerErrorCounter","_classCallCheck","_defineProperty","errorCounts","Map","errorDetails","_createClass","key","value","addServerError","serverError","getKey","has","set","get","getAndResetServerErrors","_this","data","forEach","count","push","consumer","method","path","type","msg","getTruncatedMessage","traceback","getTruncatedStack","error_count","clear","hashInput","toUpperCase","trim","join","update","digest","length","suffix","cutoff","substring","stack","lines","split","truncatedLines","_iterator","_createForOfIteratorHelper","_step","s","n","done","line","err","e","f","default"],"sources":["../../../src/common/serverErrorCounter.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,SAASA,UAAU,QAAQ,QAAQ;AAInC,IAAMC,cAAc,GAAG,IAAI;AAC3B,IAAMC,qBAAqB,GAAG,KAAK;AAAC,IAEfC,kBAAkB;EAIrC,SAAAA,mBAAA;IAAAC,eAAA,OAAAD,kBAAA;IAAAE,eAAA;IAAAA,eAAA;IACE,IAAI,CAACC,WAAW,GAAG,IAAIC,GAAG,EAAE;IAC5B,IAAI,CAACC,YAAY,GAAG,IAAID,GAAG,EAAE;EAC/B;EAACE,YAAA,CAAAN,kBAAA;IAAAO,GAAA;IAAAC,KAAA,EAEM,SAAAC,eAAeC,WAA6C;MACjE,IAAMH,GAAG,GAAG,IAAI,CAACI,MAAM,CAACD,WAAW,CAAC;MACpC,IAAI,CAAC,IAAI,CAACL,YAAY,CAACO,GAAG,CAACL,GAAG,CAAC,EAAE;QAC/B,IAAI,CAACF,YAAY,CAACQ,GAAG,CAACN,GAAG,EAAEG,WAAW,CAAC;MACzC;MACA,IAAI,CAACP,WAAW,CAACU,GAAG,CAACN,GAAG,EAAE,CAAC,IAAI,CAACJ,WAAW,CAACW,GAAG,CAACP,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAEM,SAAAO,wBAAA,EAAuB;MAAA,IAAAC,KAAA;MAC5B,IAAMC,IAAI,GAA4B,EAAE;MACxC,IAAI,CAACd,WAAW,CAACe,OAAO,CAAC,UAACC,KAAK,EAAEZ,GAAG,EAAI;QACtC,IAAMG,WAAW,GAAGM,KAAI,CAACX,YAAY,CAACS,GAAG,CAACP,GAAG,CAAC;QAC9C,IAAIG,WAAW,EAAE;UACfO,IAAI,CAACG,IAAI,CAAC;YACRC,QAAQ,EAAEX,WAAW,CAACW,QAAQ,IAAI,IAAI;YACtCC,MAAM,EAAEZ,WAAW,CAACY,MAAM;YAC1BC,IAAI,EAAEb,WAAW,CAACa,IAAI;YACtBC,IAAI,EAAEd,WAAW,CAACc,IAAI;YACtBC,GAAG,EAAET,KAAI,CAACU,mBAAmB,CAAChB,WAAW,CAACe,GAAG,CAAC;YAC9CE,SAAS,EAAEX,KAAI,CAACY,iBAAiB,CAAClB,WAAW,CAACiB,SAAS,CAAC;YACxDE,WAAW,EAAEV;WACd,CAAC;QACJ;MACF,CAAC,CAAC;MACF,IAAI,CAAChB,WAAW,CAAC2B,KAAK,EAAE;MACxB,IAAI,CAACzB,YAAY,CAACyB,KAAK,EAAE;MACzB,OAAOb,IAAI;IACb;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAEO,SAAAG,OAAOD,WAA6C;MAC1D,IAAMqB,SAAS,GAAG,CAChBrB,WAAW,CAACW,QAAQ,IAAI,EAAE,EAC1BX,WAAW,CAACY,MAAM,CAACU,WAAW,EAAE,EAChCtB,WAAW,CAACa,IAAI,EAChBb,WAAW,CAACc,IAAI,EAChBd,WAAW,CAACe,GAAG,CAACQ,IAAI,EAAE,EACtBvB,WAAW,CAACiB,SAAS,CAACM,IAAI,EAAE,CAC7B,CAACC,IAAI,CAAC,GAAG,CAAC;MACX,OAAOrC,UAAU,CAAC,KAAK,CAAC,CAACsC,MAAM,CAACJ,SAAS,CAAC,CAACK,MAAM,CAAC,KAAK,CAAC;IAC1D;EAAC;IAAA7B,GAAA;IAAAC,KAAA,EAEO,SAAAkB,oBAAoBD,GAAW;MACrCA,GAAG,GAAGA,GAAG,CAACQ,IAAI,EAAE;MAChB,IAAIR,GAAG,CAACY,MAAM,IAAIvC,cAAc,EAAE;QAChC,OAAO2B,GAAG;MACZ;MACA,IAAMa,MAAM,GAAG,iBAAiB;MAChC,IAAMC,MAAM,GAAGzC,cAAc,GAAGwC,MAAM,CAACD,MAAM;MAC7C,OAAOZ,GAAG,CAACe,SAAS,CAAC,CAAC,EAAED,MAAM,CAAC,GAAGD,MAAM;IAC1C;EAAC;IAAA/B,GAAA;IAAAC,KAAA,EAEO,SAAAoB,kBAAkBa,KAAa;MACrC,IAAMH,MAAM,GAAG,qBAAqB;MACpC,IAAMC,MAAM,GAAGxC,qBAAqB,GAAGuC,MAAM,CAACD,MAAM;MACpD,IAAMK,KAAK,GAAGD,KAAK,CAACR,IAAI,EAAE,CAACU,KAAK,CAAC,IAAI,CAAC;MACtC,IAAMC,cAAc,GAAa,EAAE;MACnC,IAAIP,MAAM,GAAG,CAAC;MAAC,IAAAQ,SAAA,GAAAC,0BAAA,CACIJ,KAAK;QAAAK,KAAA;MAAA;QAAxB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA0B;UAAA,IAAfC,IAAI,GAAAJ,KAAA,CAAAvC,KAAA;UACb,IAAI6B,MAAM,GAAGc,IAAI,CAACd,MAAM,GAAG,CAAC,GAAGE,MAAM,EAAE;YACrCK,cAAc,CAACxB,IAAI,CAACkB,MAAM,CAAC;YAC3B;UACF;UACAM,cAAc,CAACxB,IAAI,CAAC+B,IAAI,CAAC;UACzBd,MAAM,IAAIc,IAAI,CAACd,MAAM,GAAG,CAAC;QAC3B;MAAC,SAAAe,GAAA;QAAAP,SAAA,CAAAQ,CAAA,CAAAD,GAAA;MAAA;QAAAP,SAAA,CAAAS,CAAA;MAAA;MACD,OAAOV,cAAc,CAACV,IAAI,CAAC,IAAI,CAAC;IAClC;EAAC;EAAA,OAAAlC,kBAAA;AAAA;AAAA,SA3EkBA,kBAAkB,IAAAuD,OAAA"}
|
|
@@ -1,50 +1,53 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
1
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
2
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
|
+
import { createHash } from "crypto";
|
|
5
5
|
var ValidationErrorCounter = /*#__PURE__*/function () {
|
|
6
6
|
function ValidationErrorCounter() {
|
|
7
7
|
_classCallCheck(this, ValidationErrorCounter);
|
|
8
8
|
_defineProperty(this, "errorCounts", void 0);
|
|
9
|
+
_defineProperty(this, "errorDetails", void 0);
|
|
9
10
|
this.errorCounts = new Map();
|
|
11
|
+
this.errorDetails = new Map();
|
|
10
12
|
}
|
|
11
13
|
_createClass(ValidationErrorCounter, [{
|
|
12
|
-
key: "getKey",
|
|
13
|
-
value: function getKey(validationError) {
|
|
14
|
-
return [validationError.consumer || "", validationError.method.toUpperCase(), validationError.path, validationError.loc, validationError.msg, validationError.type].join("|");
|
|
15
|
-
}
|
|
16
|
-
}, {
|
|
17
14
|
key: "addValidationError",
|
|
18
15
|
value: function addValidationError(validationError) {
|
|
19
16
|
var key = this.getKey(validationError);
|
|
17
|
+
if (!this.errorDetails.has(key)) {
|
|
18
|
+
this.errorDetails.set(key, validationError);
|
|
19
|
+
}
|
|
20
20
|
this.errorCounts.set(key, (this.errorCounts.get(key) || 0) + 1);
|
|
21
21
|
}
|
|
22
22
|
}, {
|
|
23
23
|
key: "getAndResetValidationErrors",
|
|
24
24
|
value: function getAndResetValidationErrors() {
|
|
25
|
+
var _this = this;
|
|
25
26
|
var data = [];
|
|
26
27
|
this.errorCounts.forEach(function (count, key) {
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
loc: loc.split("."),
|
|
40
|
-
msg: msg,
|
|
41
|
-
type: type,
|
|
42
|
-
error_count: count
|
|
43
|
-
});
|
|
28
|
+
var validationError = _this.errorDetails.get(key);
|
|
29
|
+
if (validationError) {
|
|
30
|
+
data.push({
|
|
31
|
+
consumer: validationError.consumer || null,
|
|
32
|
+
method: validationError.method,
|
|
33
|
+
path: validationError.path,
|
|
34
|
+
loc: validationError.loc.split("."),
|
|
35
|
+
msg: validationError.msg,
|
|
36
|
+
type: validationError.type,
|
|
37
|
+
error_count: count
|
|
38
|
+
});
|
|
39
|
+
}
|
|
44
40
|
});
|
|
45
41
|
this.errorCounts.clear();
|
|
42
|
+
this.errorDetails.clear();
|
|
46
43
|
return data;
|
|
47
44
|
}
|
|
45
|
+
}, {
|
|
46
|
+
key: "getKey",
|
|
47
|
+
value: function getKey(validationError) {
|
|
48
|
+
var hashInput = [validationError.consumer || "", validationError.method.toUpperCase(), validationError.path, validationError.loc, validationError.msg.trim(), validationError.type].join("|");
|
|
49
|
+
return createHash("md5").update(hashInput).digest("hex");
|
|
50
|
+
}
|
|
48
51
|
}]);
|
|
49
52
|
return ValidationErrorCounter;
|
|
50
53
|
}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validationErrorCounter.js","names":["ValidationErrorCounter","_classCallCheck","_defineProperty","errorCounts","Map","_createClass","key","value","
|
|
1
|
+
{"version":3,"file":"validationErrorCounter.js","names":["createHash","ValidationErrorCounter","_classCallCheck","_defineProperty","errorCounts","Map","errorDetails","_createClass","key","value","addValidationError","validationError","getKey","has","set","get","getAndResetValidationErrors","_this","data","forEach","count","push","consumer","method","path","loc","split","msg","type","error_count","clear","hashInput","toUpperCase","trim","join","update","digest","default"],"sources":["../../../src/common/validationErrorCounter.ts"],"sourcesContent":[null],"mappings":";;;AAAA,SAASA,UAAU,QAAQ,QAAQ;AAAC,IAQfC,sBAAsB;EAIzC,SAAAA,uBAAA;IAAAC,eAAA,OAAAD,sBAAA;IAAAE,eAAA;IAAAA,eAAA;IACE,IAAI,CAACC,WAAW,GAAG,IAAIC,GAAG,EAAE;IAC5B,IAAI,CAACC,YAAY,GAAG,IAAID,GAAG,EAAE;EAC/B;EAACE,YAAA,CAAAN,sBAAA;IAAAO,GAAA;IAAAC,KAAA,EAEM,SAAAC,mBACLC,eAAqD;MAErD,IAAMH,GAAG,GAAG,IAAI,CAACI,MAAM,CAACD,eAAe,CAAC;MACxC,IAAI,CAAC,IAAI,CAACL,YAAY,CAACO,GAAG,CAACL,GAAG,CAAC,EAAE;QAC/B,IAAI,CAACF,YAAY,CAACQ,GAAG,CAACN,GAAG,EAAEG,eAAe,CAAC;MAC7C;MACA,IAAI,CAACP,WAAW,CAACU,GAAG,CAACN,GAAG,EAAE,CAAC,IAAI,CAACJ,WAAW,CAACW,GAAG,CAACP,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE;EAAC;IAAAA,GAAA;IAAAC,KAAA,EAEM,SAAAO,4BAAA,EAA2B;MAAA,IAAAC,KAAA;MAChC,IAAMC,IAAI,GAAgC,EAAE;MAC5C,IAAI,CAACd,WAAW,CAACe,OAAO,CAAC,UAACC,KAAK,EAAEZ,GAAG,EAAI;QACtC,IAAMG,eAAe,GAAGM,KAAI,CAACX,YAAY,CAACS,GAAG,CAACP,GAAG,CAAC;QAClD,IAAIG,eAAe,EAAE;UACnBO,IAAI,CAACG,IAAI,CAAC;YACRC,QAAQ,EAAEX,eAAe,CAACW,QAAQ,IAAI,IAAI;YAC1CC,MAAM,EAAEZ,eAAe,CAACY,MAAM;YAC9BC,IAAI,EAAEb,eAAe,CAACa,IAAI;YAC1BC,GAAG,EAAEd,eAAe,CAACc,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC;YACnCC,GAAG,EAAEhB,eAAe,CAACgB,GAAG;YACxBC,IAAI,EAAEjB,eAAe,CAACiB,IAAI;YAC1BC,WAAW,EAAET;WACd,CAAC;QACJ;MACF,CAAC,CAAC;MACF,IAAI,CAAChB,WAAW,CAAC0B,KAAK,EAAE;MACxB,IAAI,CAACxB,YAAY,CAACwB,KAAK,EAAE;MACzB,OAAOZ,IAAI;IACb;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAEO,SAAAG,OAAOD,eAAqD;MAClE,IAAMoB,SAAS,GAAG,CAChBpB,eAAe,CAACW,QAAQ,IAAI,EAAE,EAC9BX,eAAe,CAACY,MAAM,CAACS,WAAW,EAAE,EACpCrB,eAAe,CAACa,IAAI,EACpBb,eAAe,CAACc,GAAG,EACnBd,eAAe,CAACgB,GAAG,CAACM,IAAI,EAAE,EAC1BtB,eAAe,CAACiB,IAAI,CACrB,CAACM,IAAI,CAAC,GAAG,CAAC;MACX,OAAOlC,UAAU,CAAC,KAAK,CAAC,CAACmC,MAAM,CAACJ,SAAS,CAAC,CAACK,MAAM,CAAC,KAAK,CAAC;IAC1D;EAAC;EAAA,OAAAnC,sBAAA;AAAA;AAAA,SAlDkBA,sBAAsB,IAAAoC,OAAA"}
|
|
@@ -8,18 +8,27 @@ import { getPackageVersion } from "../common/packageVersions.js";
|
|
|
8
8
|
import listEndpoints from "./listEndpoints.js";
|
|
9
9
|
export var useApitally = function useApitally(app, config) {
|
|
10
10
|
var client = new ApitallyClient(config);
|
|
11
|
-
var middleware = getMiddleware(client);
|
|
11
|
+
var middleware = getMiddleware(app, client);
|
|
12
12
|
app.use(middleware);
|
|
13
13
|
setTimeout(function () {
|
|
14
14
|
client.setAppInfo(getAppInfo(app, config.appVersion));
|
|
15
15
|
}, 100);
|
|
16
16
|
};
|
|
17
|
-
var getMiddleware = function getMiddleware(client) {
|
|
17
|
+
var getMiddleware = function getMiddleware(app, client) {
|
|
18
18
|
var validatorInstalled = getPackageVersion("express-validator") !== null;
|
|
19
19
|
var celebrateInstalled = getPackageVersion("celebrate") !== null;
|
|
20
20
|
var nestInstalled = getPackageVersion("@nestjs/core") !== null;
|
|
21
21
|
var classValidatorInstalled = getPackageVersion("class-validator") !== null;
|
|
22
|
+
var errorHandlerConfigured = false;
|
|
22
23
|
return function (req, res, next) {
|
|
24
|
+
if (!errorHandlerConfigured) {
|
|
25
|
+
// Add error handling middleware to the bottom of the stack when handling the first request
|
|
26
|
+
app.use(function (err, req, res, next) {
|
|
27
|
+
res.locals.serverError = err;
|
|
28
|
+
next(err);
|
|
29
|
+
});
|
|
30
|
+
errorHandlerConfigured = true;
|
|
31
|
+
}
|
|
23
32
|
try {
|
|
24
33
|
var startTime = performance.now();
|
|
25
34
|
var originalJson = res.json;
|
|
@@ -31,8 +40,9 @@ var getMiddleware = function getMiddleware(client) {
|
|
|
31
40
|
try {
|
|
32
41
|
if (req.route) {
|
|
33
42
|
var responseTime = performance.now() - startTime;
|
|
43
|
+
var consumer = getConsumer(req);
|
|
34
44
|
client.requestCounter.addRequest({
|
|
35
|
-
consumer:
|
|
45
|
+
consumer: consumer,
|
|
36
46
|
method: req.method,
|
|
37
47
|
path: req.route.path,
|
|
38
48
|
statusCode: res.statusCode,
|
|
@@ -53,12 +63,23 @@ var getMiddleware = function getMiddleware(client) {
|
|
|
53
63
|
}
|
|
54
64
|
validationErrors.forEach(function (error) {
|
|
55
65
|
client.validationErrorCounter.addValidationError(_objectSpread({
|
|
56
|
-
consumer:
|
|
66
|
+
consumer: consumer,
|
|
57
67
|
method: req.method,
|
|
58
68
|
path: req.route.path
|
|
59
69
|
}, error));
|
|
60
70
|
});
|
|
61
71
|
}
|
|
72
|
+
if (res.statusCode === 500 && res.locals.serverError) {
|
|
73
|
+
var serverError = res.locals.serverError;
|
|
74
|
+
client.serverErrorCounter.addServerError({
|
|
75
|
+
consumer: consumer,
|
|
76
|
+
method: req.method,
|
|
77
|
+
path: req.route.path,
|
|
78
|
+
type: serverError.name,
|
|
79
|
+
msg: serverError.message,
|
|
80
|
+
traceback: serverError.stack || ""
|
|
81
|
+
});
|
|
82
|
+
}
|
|
62
83
|
}
|
|
63
84
|
} catch (error) {
|
|
64
85
|
client.logger.error("Error while logging request in Apitally middleware.", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","names":["performance","ApitallyClient","getPackageVersion","listEndpoints","useApitally","app","config","client","middleware","getMiddleware","use","setTimeout","setAppInfo","getAppInfo","appVersion","validatorInstalled","celebrateInstalled","nestInstalled","classValidatorInstalled","req","res","next","startTime","now","originalJson","json","body","
|
|
1
|
+
{"version":3,"file":"middleware.js","names":["performance","ApitallyClient","getPackageVersion","listEndpoints","useApitally","app","config","client","middleware","getMiddleware","use","setTimeout","setAppInfo","getAppInfo","appVersion","validatorInstalled","celebrateInstalled","nestInstalled","classValidatorInstalled","errorHandlerConfigured","req","res","next","err","locals","serverError","startTime","now","originalJson","json","body","call","on","route","responseTime","consumer","getConsumer","requestCounter","addRequest","method","path","statusCode","requestSize","get","responseSize","validationErrors","push","apply","_toConsumableArray","extractExpressValidatorErrors","extractCelebrateErrors","extractNestValidationErrors","forEach","error","validationErrorCounter","addValidationError","_objectSpread","serverErrorCounter","addServerError","type","name","msg","message","traceback","stack","logger","request","response","consumerIdentifier","String","responseBody","errors","Array","isArray","location","loc","concat","validation","Object","values","source","keys","key","subsetJoiMessage","messageWithKey","split","find","includes","versions","process","version","replace","expressVersion","apitallyVersion","paths","fromEntries"],"sources":["../../../src/express/middleware.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -48,9 +48,16 @@ var apitallyPlugin = /*#__PURE__*/function () {
|
|
|
48
48
|
} catch (error) {} // eslint-disable-line no-empty
|
|
49
49
|
done();
|
|
50
50
|
});
|
|
51
|
+
fastify.addHook("onError", function (request, reply, error, done) {
|
|
52
|
+
if (!error.statusCode || error.statusCode === 500) {
|
|
53
|
+
reply.serverError = error;
|
|
54
|
+
}
|
|
55
|
+
done();
|
|
56
|
+
});
|
|
51
57
|
fastify.addHook("onResponse", function (request, reply, done) {
|
|
52
58
|
if (request.method.toUpperCase() !== "OPTIONS") {
|
|
53
59
|
// Get path from routeOptions if available (from v4), otherwise fallback to deprecated routerPath
|
|
60
|
+
var consumer = getConsumer(request);
|
|
54
61
|
var path = "routeOptions" in request ? request.routeOptions.url : request.routerPath;
|
|
55
62
|
var requestSize = request.headers["content-length"];
|
|
56
63
|
var responseSize = reply.getHeader("content-length");
|
|
@@ -58,7 +65,7 @@ var apitallyPlugin = /*#__PURE__*/function () {
|
|
|
58
65
|
responseSize = responseSize[0];
|
|
59
66
|
}
|
|
60
67
|
client.requestCounter.addRequest({
|
|
61
|
-
consumer:
|
|
68
|
+
consumer: consumer,
|
|
62
69
|
method: request.method,
|
|
63
70
|
path: path,
|
|
64
71
|
statusCode: reply.statusCode,
|
|
@@ -70,16 +77,26 @@ var apitallyPlugin = /*#__PURE__*/function () {
|
|
|
70
77
|
var validationErrors = extractAjvErrors(reply.payload.message);
|
|
71
78
|
validationErrors.forEach(function (error) {
|
|
72
79
|
client.validationErrorCounter.addValidationError(_objectSpread({
|
|
73
|
-
consumer:
|
|
80
|
+
consumer: consumer,
|
|
74
81
|
method: request.method,
|
|
75
82
|
path: path
|
|
76
83
|
}, error));
|
|
77
84
|
});
|
|
78
85
|
}
|
|
86
|
+
if (reply.statusCode === 500 && reply.serverError) {
|
|
87
|
+
client.serverErrorCounter.addServerError({
|
|
88
|
+
consumer: consumer,
|
|
89
|
+
method: request.method,
|
|
90
|
+
path: path,
|
|
91
|
+
type: reply.serverError.name,
|
|
92
|
+
msg: reply.serverError.message,
|
|
93
|
+
traceback: reply.serverError.stack || ""
|
|
94
|
+
});
|
|
95
|
+
}
|
|
79
96
|
}
|
|
80
97
|
done();
|
|
81
98
|
});
|
|
82
|
-
case
|
|
99
|
+
case 10:
|
|
83
100
|
case "end":
|
|
84
101
|
return _context2.stop();
|
|
85
102
|
}
|