@resolveio/server-lib 20.11.16 → 20.12.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/managers/mongo.manager.js +53 -8
- package/managers/mongo.manager.js.map +1 -1
- package/models/slow-query-report.model.d.ts +22 -0
- package/models/slow-query-report.model.js +4 -0
- package/models/slow-query-report.model.js.map +1 -0
- package/package.json +1 -1
- package/util/slow-query-reporter.d.ts +27 -0
- package/util/slow-query-reporter.js +293 -0
- package/util/slow-query-reporter.js.map +1 -0
|
@@ -116,6 +116,7 @@ var simpl_schema_1 = require("simpl-schema");
|
|
|
116
116
|
var user_collection_1 = require("../collections/user.collection");
|
|
117
117
|
var resolveio_server_app_1 = require("../resolveio-server-app");
|
|
118
118
|
var common_1 = require("../util/common");
|
|
119
|
+
var slow_query_reporter_1 = require("../util/slow-query-reporter");
|
|
119
120
|
var subscription_dependency_context_1 = require("../util/subscription-dependency-context");
|
|
120
121
|
var monitor_manager_1 = require("./monitor.manager");
|
|
121
122
|
var crypto = require('crypto');
|
|
@@ -383,13 +384,14 @@ var MongoManager = /** @class */ (function () {
|
|
|
383
384
|
};
|
|
384
385
|
MongoManager.prototype.executeFind = function (collectionName, filter, options, cacheKey) {
|
|
385
386
|
return __awaiter(this, void 0, void 0, function () {
|
|
386
|
-
var result, collection, _a, session, safeOptions, monitor, err_1;
|
|
387
|
+
var result, collection, _a, session, safeOptions, monitor, queryStart, err_1, durationMs;
|
|
387
388
|
return __generator(this, function (_b) {
|
|
388
389
|
switch (_b.label) {
|
|
389
390
|
case 0:
|
|
390
391
|
collection = resolveio_server_app_1.ResolveIOServer.getMainDB().collection(collectionName);
|
|
391
392
|
_a = options || {}, session = _a.session, safeOptions = __rest(_a, ["session"]);
|
|
392
393
|
monitor = monitor_manager_1.MonitorMongo.create('find', collectionName, JSON.stringify([filter, safeOptions]));
|
|
394
|
+
queryStart = Date.now();
|
|
393
395
|
_b.label = 1;
|
|
394
396
|
case 1:
|
|
395
397
|
_b.trys.push([1, 3, 4, 6]);
|
|
@@ -407,9 +409,19 @@ var MongoManager = /** @class */ (function () {
|
|
|
407
409
|
}], null, 2));
|
|
408
410
|
err_1.message = "Error in Execute Find: ".concat(collectionName, " => ").concat(err_1.codeName || 'NoCodeName', " => ").concat(err_1.message);
|
|
409
411
|
throw err_1;
|
|
410
|
-
case 4:
|
|
412
|
+
case 4:
|
|
413
|
+
durationMs = Date.now() - queryStart;
|
|
414
|
+
return [4 /*yield*/, monitor.finish()];
|
|
411
415
|
case 5:
|
|
412
416
|
_b.sent();
|
|
417
|
+
slow_query_reporter_1.SlowQueryReporter.reportSlowQueryFireAndForget({
|
|
418
|
+
collection: collectionName,
|
|
419
|
+
filter: filter,
|
|
420
|
+
options: safeOptions,
|
|
421
|
+
durationMs: durationMs,
|
|
422
|
+
queryType: 'find',
|
|
423
|
+
notes: 'MongoManager executeFind'
|
|
424
|
+
});
|
|
413
425
|
return [7 /*endfinally*/];
|
|
414
426
|
case 6:
|
|
415
427
|
(0, subscription_dependency_context_1.recordDependencyResult)(collectionName, result, { filter: filter, meta: buildQueryMetaFromFindOptions(safeOptions) });
|
|
@@ -470,13 +482,14 @@ var MongoManager = /** @class */ (function () {
|
|
|
470
482
|
};
|
|
471
483
|
MongoManager.prototype.executeFindOne = function (collectionName, filter, options, cacheKey) {
|
|
472
484
|
return __awaiter(this, void 0, void 0, function () {
|
|
473
|
-
var result, collection, _a, session, safeOptions, monitor, err_2;
|
|
485
|
+
var result, collection, _a, session, safeOptions, monitor, queryStart, err_2, durationMs;
|
|
474
486
|
return __generator(this, function (_b) {
|
|
475
487
|
switch (_b.label) {
|
|
476
488
|
case 0:
|
|
477
489
|
collection = resolveio_server_app_1.ResolveIOServer.getMainDB().collection(collectionName);
|
|
478
490
|
_a = options || {}, session = _a.session, safeOptions = __rest(_a, ["session"]);
|
|
479
491
|
monitor = monitor_manager_1.MonitorMongo.create('findOne', collectionName, JSON.stringify([filter, safeOptions]));
|
|
492
|
+
queryStart = Date.now();
|
|
480
493
|
_b.label = 1;
|
|
481
494
|
case 1:
|
|
482
495
|
_b.trys.push([1, 3, 4, 6]);
|
|
@@ -494,9 +507,19 @@ var MongoManager = /** @class */ (function () {
|
|
|
494
507
|
}], null, 2));
|
|
495
508
|
err_2.message = "Error in Execute Find One: ".concat(collectionName, " => ").concat(err_2.codeName || 'NoCodeName', " => ").concat(err_2.message);
|
|
496
509
|
throw err_2;
|
|
497
|
-
case 4:
|
|
510
|
+
case 4:
|
|
511
|
+
durationMs = Date.now() - queryStart;
|
|
512
|
+
return [4 /*yield*/, monitor.finish()];
|
|
498
513
|
case 5:
|
|
499
514
|
_b.sent();
|
|
515
|
+
slow_query_reporter_1.SlowQueryReporter.reportSlowQueryFireAndForget({
|
|
516
|
+
collection: collectionName,
|
|
517
|
+
filter: filter,
|
|
518
|
+
options: safeOptions,
|
|
519
|
+
durationMs: durationMs,
|
|
520
|
+
queryType: 'findOne',
|
|
521
|
+
notes: 'MongoManager executeFindOne'
|
|
522
|
+
});
|
|
500
523
|
return [7 /*endfinally*/];
|
|
501
524
|
case 6:
|
|
502
525
|
(0, subscription_dependency_context_1.recordDependencyResult)(collectionName, result, { filter: filter, meta: buildQueryMetaFromFindOptions(safeOptions) });
|
|
@@ -557,13 +580,14 @@ var MongoManager = /** @class */ (function () {
|
|
|
557
580
|
};
|
|
558
581
|
MongoManager.prototype.executeAggregate = function (collectionName, pipeline, options, cacheKey, collections) {
|
|
559
582
|
return __awaiter(this, void 0, void 0, function () {
|
|
560
|
-
var result, collection, _a, session, safeOptions, monitor, err_3;
|
|
583
|
+
var result, collection, _a, session, safeOptions, monitor, queryStart, err_3, durationMs;
|
|
561
584
|
return __generator(this, function (_b) {
|
|
562
585
|
switch (_b.label) {
|
|
563
586
|
case 0:
|
|
564
587
|
collection = resolveio_server_app_1.ResolveIOServer.getMainDB().collection(collectionName);
|
|
565
588
|
_a = options || {}, session = _a.session, safeOptions = __rest(_a, ["session"]);
|
|
566
589
|
monitor = monitor_manager_1.MonitorMongo.create('aggregate', collectionName, JSON.stringify([pipeline, safeOptions]));
|
|
590
|
+
queryStart = Date.now();
|
|
567
591
|
_b.label = 1;
|
|
568
592
|
case 1:
|
|
569
593
|
_b.trys.push([1, 3, 4, 6]);
|
|
@@ -581,9 +605,19 @@ var MongoManager = /** @class */ (function () {
|
|
|
581
605
|
}], null, 2));
|
|
582
606
|
err_3.message = "Error in Execute Aggregate: ".concat(collectionName, " => ").concat(err_3.codeName || 'NoCodeName', " => ").concat(err_3.message);
|
|
583
607
|
throw err_3;
|
|
584
|
-
case 4:
|
|
608
|
+
case 4:
|
|
609
|
+
durationMs = Date.now() - queryStart;
|
|
610
|
+
return [4 /*yield*/, monitor.finish()];
|
|
585
611
|
case 5:
|
|
586
612
|
_b.sent();
|
|
613
|
+
slow_query_reporter_1.SlowQueryReporter.reportSlowQueryFireAndForget({
|
|
614
|
+
collection: collectionName,
|
|
615
|
+
pipeline: pipeline,
|
|
616
|
+
options: safeOptions,
|
|
617
|
+
durationMs: durationMs,
|
|
618
|
+
queryType: 'aggregate',
|
|
619
|
+
notes: 'MongoManager executeAggregate'
|
|
620
|
+
});
|
|
587
621
|
return [7 /*endfinally*/];
|
|
588
622
|
case 6:
|
|
589
623
|
(0, subscription_dependency_context_1.recordAggregateDependencies)(collectionName, pipeline, result);
|
|
@@ -629,13 +663,14 @@ var MongoManager = /** @class */ (function () {
|
|
|
629
663
|
};
|
|
630
664
|
MongoManager.prototype.executeCountDocuments = function (collectionName, filter, options, cacheKey) {
|
|
631
665
|
return __awaiter(this, void 0, void 0, function () {
|
|
632
|
-
var result, collection, _a, session, safeOptions, monitor, err_4;
|
|
666
|
+
var result, collection, _a, session, safeOptions, monitor, queryStart, err_4, durationMs;
|
|
633
667
|
return __generator(this, function (_b) {
|
|
634
668
|
switch (_b.label) {
|
|
635
669
|
case 0:
|
|
636
670
|
collection = resolveio_server_app_1.ResolveIOServer.getMainDB().collection(collectionName);
|
|
637
671
|
_a = options || {}, session = _a.session, safeOptions = __rest(_a, ["session"]);
|
|
638
672
|
monitor = monitor_manager_1.MonitorMongo.create('countDocuments', collectionName, JSON.stringify([filter, safeOptions]));
|
|
673
|
+
queryStart = Date.now();
|
|
639
674
|
_b.label = 1;
|
|
640
675
|
case 1:
|
|
641
676
|
_b.trys.push([1, 3, 4, 6]);
|
|
@@ -653,9 +688,19 @@ var MongoManager = /** @class */ (function () {
|
|
|
653
688
|
}], null, 2));
|
|
654
689
|
err_4.message = "Error in Execute Count Documents: ".concat(collectionName, " => ").concat(err_4.codeName || 'NoCodeName', " => ").concat(err_4.message);
|
|
655
690
|
throw err_4;
|
|
656
|
-
case 4:
|
|
691
|
+
case 4:
|
|
692
|
+
durationMs = Date.now() - queryStart;
|
|
693
|
+
return [4 /*yield*/, monitor.finish()];
|
|
657
694
|
case 5:
|
|
658
695
|
_b.sent();
|
|
696
|
+
slow_query_reporter_1.SlowQueryReporter.reportSlowQueryFireAndForget({
|
|
697
|
+
collection: collectionName,
|
|
698
|
+
filter: filter,
|
|
699
|
+
options: safeOptions,
|
|
700
|
+
durationMs: durationMs,
|
|
701
|
+
queryType: 'countDocuments',
|
|
702
|
+
notes: 'MongoManager executeCountDocuments'
|
|
703
|
+
});
|
|
659
704
|
return [7 /*endfinally*/];
|
|
660
705
|
case 6:
|
|
661
706
|
(0, subscription_dependency_context_1.recordDependencyResult)(collectionName, result, { filter: filter });
|