@resolveio/server-lib 20.11.15 → 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.
@@ -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: return [4 /*yield*/, monitor.finish()];
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: return [4 /*yield*/, monitor.finish()];
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: return [4 /*yield*/, monitor.finish()];
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: return [4 /*yield*/, monitor.finish()];
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 });