@vtex/api 6.48.0 → 6.48.1-beta.2
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/gen/manifest.schema +2 -3
- package/lib/HttpClient/GraphQLClient.d.ts +1 -1
- package/lib/HttpClient/GraphQLClient.js +1 -0
- package/lib/HttpClient/HttpClient.d.ts +4 -3
- package/lib/HttpClient/HttpClient.js +15 -14
- package/lib/HttpClient/agents.d.ts +5 -2
- package/lib/HttpClient/agents.js +23 -4
- package/lib/HttpClient/index.js +22 -10
- package/lib/HttpClient/middlewares/cache.d.ts +1 -1
- package/lib/HttpClient/middlewares/cache.js +48 -42
- package/lib/HttpClient/middlewares/cancellationToken.d.ts +1 -1
- package/lib/HttpClient/middlewares/cancellationToken.js +3 -1
- package/lib/HttpClient/middlewares/inflight.d.ts +1 -1
- package/lib/HttpClient/middlewares/inflight.js +7 -3
- package/lib/HttpClient/middlewares/memoization.d.ts +1 -1
- package/lib/HttpClient/middlewares/memoization.js +10 -8
- package/lib/HttpClient/middlewares/metrics.js +13 -7
- package/lib/HttpClient/middlewares/notFound.d.ts +1 -1
- package/lib/HttpClient/middlewares/notFound.js +5 -2
- package/lib/HttpClient/middlewares/recorder.js +7 -1
- package/lib/HttpClient/middlewares/request/HttpAgentSingleton.js +2 -1
- package/lib/HttpClient/middlewares/request/index.d.ts +1 -1
- package/lib/HttpClient/middlewares/request/index.js +13 -9
- package/lib/HttpClient/middlewares/request/setupAxios/index.js +6 -4
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/exponentialBackoff.js +7 -5
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/index.js +4 -3
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/index.js +9 -6
- package/lib/HttpClient/middlewares/request/setupAxios/interceptors/tracing/spanSetup.js +10 -7
- package/lib/HttpClient/middlewares/tracing.js +16 -10
- package/lib/HttpClient/typings.d.ts +3 -3
- package/lib/HttpClient/typings.js +1 -0
- package/lib/caches/DiskCache.d.ts +1 -1
- package/lib/caches/DiskCache.js +3 -2
- package/lib/caches/LRUCache.d.ts +3 -3
- package/lib/caches/LRUCache.js +1 -0
- package/lib/caches/LRUDiskCache.d.ts +2 -2
- package/lib/caches/LRUDiskCache.js +3 -2
- package/lib/caches/MultilayeredCache.d.ts +2 -2
- package/lib/caches/MultilayeredCache.js +8 -7
- package/lib/caches/index.js +20 -7
- package/lib/caches/typings.d.ts +5 -5
- package/lib/clients/IOClient.d.ts +1 -1
- package/lib/clients/IOClient.js +1 -0
- package/lib/clients/IOClients.d.ts +1 -1
- package/lib/clients/IOClients.js +1 -0
- package/lib/clients/IOGraphQLClient.js +1 -0
- package/lib/clients/apps/AppClient.js +2 -1
- package/lib/clients/apps/AppGraphQLClient.js +2 -1
- package/lib/clients/apps/Billing.d.ts +1 -1
- package/lib/clients/apps/Billing.js +1 -0
- package/lib/clients/apps/Builder.d.ts +7 -7
- package/lib/clients/apps/Builder.js +2 -1
- package/lib/clients/apps/MessagesGraphQL.d.ts +1 -1
- package/lib/clients/apps/MessagesGraphQL.js +4 -3
- package/lib/clients/apps/Settings.js +4 -3
- package/lib/clients/apps/catalogGraphQL/brand.js +1 -0
- package/lib/clients/apps/catalogGraphQL/category.js +1 -0
- package/lib/clients/apps/catalogGraphQL/index.d.ts +4 -4
- package/lib/clients/apps/catalogGraphQL/index.js +5 -4
- package/lib/clients/apps/catalogGraphQL/product.js +1 -0
- package/lib/clients/apps/catalogGraphQL/sku.js +1 -0
- package/lib/clients/apps/index.js +21 -10
- package/lib/clients/external/ExternalClient.js +1 -0
- package/lib/clients/external/ID.d.ts +4 -4
- package/lib/clients/external/ID.js +1 -0
- package/lib/clients/external/Masterdata.js +1 -0
- package/lib/clients/external/PaymentProvider.d.ts +2 -2
- package/lib/clients/external/PaymentProvider.js +1 -0
- package/lib/clients/external/index.js +18 -7
- package/lib/clients/index.js +22 -10
- package/lib/clients/infra/Apps.d.ts +32 -27
- package/lib/clients/infra/Apps.js +19 -16
- package/lib/clients/infra/Assets.d.ts +6 -5
- package/lib/clients/infra/Assets.js +12 -11
- package/lib/clients/infra/BillingMetrics.d.ts +1 -1
- package/lib/clients/infra/BillingMetrics.js +1 -0
- package/lib/clients/infra/Events.d.ts +1 -1
- package/lib/clients/infra/Events.js +2 -1
- package/lib/clients/infra/Housekeeper.d.ts +3 -3
- package/lib/clients/infra/Housekeeper.js +1 -0
- package/lib/clients/infra/InfraClient.js +1 -0
- package/lib/clients/infra/Registry.d.ts +23 -17
- package/lib/clients/infra/Registry.js +5 -3
- package/lib/clients/infra/Router.d.ts +8 -8
- package/lib/clients/infra/Router.js +1 -0
- package/lib/clients/infra/Sphinx.d.ts +2 -2
- package/lib/clients/infra/Sphinx.js +1 -0
- package/lib/clients/infra/VBase.d.ts +15 -14
- package/lib/clients/infra/VBase.js +4 -3
- package/lib/clients/infra/Workspaces.d.ts +7 -7
- package/lib/clients/infra/Workspaces.js +1 -0
- package/lib/clients/infra/index.js +25 -14
- package/lib/clients/janus/JanusClient.d.ts +1 -1
- package/lib/clients/janus/JanusClient.js +1 -0
- package/lib/clients/janus/LicenseManager.js +2 -1
- package/lib/clients/janus/Segment.d.ts +3 -3
- package/lib/clients/janus/Segment.js +3 -2
- package/lib/clients/janus/Session.d.ts +2 -2
- package/lib/clients/janus/Session.js +1 -0
- package/lib/clients/janus/Tenant.d.ts +1 -1
- package/lib/clients/janus/Tenant.js +1 -0
- package/lib/clients/janus/index.js +19 -8
- package/lib/constants.d.ts +1 -1
- package/lib/constants.js +2 -1
- package/lib/errors/AuthenticationError.js +1 -0
- package/lib/errors/ForbiddenError.js +1 -0
- package/lib/errors/NotFoundError.js +1 -0
- package/lib/errors/RequestCancelledError.js +1 -0
- package/lib/errors/ResolverError.js +2 -1
- package/lib/errors/ResolverWarning.js +1 -0
- package/lib/errors/TooManyRequestsError.js +1 -0
- package/lib/errors/UserInputError.js +1 -0
- package/lib/errors/index.js +22 -11
- package/lib/index.js +31 -18
- package/lib/metrics/MetricsAccumulator.d.ts +2 -2
- package/lib/metrics/MetricsAccumulator.js +10 -9
- package/lib/responses.d.ts +4 -4
- package/lib/service/index.js +11 -6
- package/lib/service/loaders.js +9 -6
- package/lib/service/logger/console.js +8 -4
- package/lib/service/logger/index.js +16 -5
- package/lib/service/logger/logger.js +3 -2
- package/lib/service/logger/metricsLogger.js +11 -10
- package/lib/service/master.js +8 -6
- package/lib/service/metrics/requestMetricsMiddleware.d.ts +1 -1
- package/lib/service/metrics/requestMetricsMiddleware.js +15 -13
- package/lib/service/tracing/TracerSingleton.js +10 -9
- package/lib/service/tracing/metrics/MetricNames.js +13 -12
- package/lib/service/tracing/metrics/instruments.js +15 -7
- package/lib/service/tracing/metrics/measurers/EventLoopLagMeasurer.js +6 -5
- package/lib/service/tracing/tracingMiddlewares.d.ts +3 -3
- package/lib/service/tracing/tracingMiddlewares.js +25 -15
- package/lib/service/worker/index.js +25 -23
- package/lib/service/worker/listeners.js +3 -1
- package/lib/service/worker/runtime/Service.js +2 -1
- package/lib/service/worker/runtime/builtIn/handlers.d.ts +3 -3
- package/lib/service/worker/runtime/builtIn/handlers.js +7 -3
- package/lib/service/worker/runtime/builtIn/middlewares.d.ts +2 -2
- package/lib/service/worker/runtime/builtIn/middlewares.js +6 -3
- package/lib/service/worker/runtime/events/index.d.ts +2 -2
- package/lib/service/worker/runtime/events/index.js +12 -10
- package/lib/service/worker/runtime/events/middlewares/body.js +6 -2
- package/lib/service/worker/runtime/events/middlewares/context.js +2 -1
- package/lib/service/worker/runtime/events/router.d.ts +2 -2
- package/lib/service/worker/runtime/events/router.js +4 -2
- package/lib/service/worker/runtime/graphql/index.js +9 -7
- package/lib/service/worker/runtime/graphql/middlewares/context.js +1 -0
- package/lib/service/worker/runtime/graphql/middlewares/error.js +9 -5
- package/lib/service/worker/runtime/graphql/middlewares/query.d.ts +2 -1
- package/lib/service/worker/runtime/graphql/middlewares/query.js +8 -6
- package/lib/service/worker/runtime/graphql/middlewares/response.js +2 -1
- package/lib/service/worker/runtime/graphql/middlewares/run.d.ts +2 -2
- package/lib/service/worker/runtime/graphql/middlewares/run.js +4 -2
- package/lib/service/worker/runtime/graphql/middlewares/updateSchema.d.ts +2 -1
- package/lib/service/worker/runtime/graphql/middlewares/updateSchema.js +5 -3
- package/lib/service/worker/runtime/graphql/middlewares/upload.js +2 -1
- package/lib/service/worker/runtime/graphql/schema/index.d.ts +1 -1
- package/lib/service/worker/runtime/graphql/schema/index.js +9 -7
- package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.d.ts +2 -2
- package/lib/service/worker/runtime/graphql/schema/messagesLoaderV2.js +5 -3
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Auth.js +2 -1
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/CacheControl.js +1 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Deprecated.js +2 -1
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Metric.js +1 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Sanitize.js +1 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/Settings.js +2 -1
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/SmartCacheDirective.js +1 -0
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslatableV2.js +3 -2
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/TranslateTo.js +3 -2
- package/lib/service/worker/runtime/graphql/schema/schemaDirectives/index.js +3 -2
- package/lib/service/worker/runtime/graphql/schema/typeDefs/index.d.ts +2 -1
- package/lib/service/worker/runtime/graphql/schema/typeDefs/index.js +3 -1
- package/lib/service/worker/runtime/graphql/schema/typeDefs/ioUpload.js +1 -0
- package/lib/service/worker/runtime/graphql/schema/typeDefs/sanitizedString.js +3 -2
- package/lib/service/worker/runtime/graphql/typings.d.ts +3 -3
- package/lib/service/worker/runtime/graphql/utils/cacheControl.d.ts +2 -1
- package/lib/service/worker/runtime/graphql/utils/cacheControl.js +3 -1
- package/lib/service/worker/runtime/graphql/utils/error.d.ts +2 -1
- package/lib/service/worker/runtime/graphql/utils/error.js +11 -9
- package/lib/service/worker/runtime/graphql/utils/pathname.js +4 -2
- package/lib/service/worker/runtime/graphql/utils/translations.d.ts +1 -1
- package/lib/service/worker/runtime/graphql/utils/translations.js +8 -4
- package/lib/service/worker/runtime/http/index.d.ts +3 -3
- package/lib/service/worker/runtime/http/index.js +23 -20
- package/lib/service/worker/runtime/http/middlewares/authTokens.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/cancellationToken.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/clients.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/context.js +8 -5
- package/lib/service/worker/runtime/http/middlewares/error.js +10 -6
- package/lib/service/worker/runtime/http/middlewares/rateLimit.js +2 -1
- package/lib/service/worker/runtime/http/middlewares/requestStats.js +1 -0
- package/lib/service/worker/runtime/http/middlewares/setCookie.js +6 -5
- package/lib/service/worker/runtime/http/middlewares/settings.d.ts +1 -1
- package/lib/service/worker/runtime/http/middlewares/settings.js +14 -9
- package/lib/service/worker/runtime/http/middlewares/timings.js +4 -3
- package/lib/service/worker/runtime/http/middlewares/vary.js +1 -0
- package/lib/service/worker/runtime/http/router.d.ts +1 -1
- package/lib/service/worker/runtime/http/router.js +4 -2
- package/lib/service/worker/runtime/http/routes.js +9 -5
- package/lib/service/worker/runtime/method.d.ts +2 -2
- package/lib/service/worker/runtime/method.js +2 -1
- package/lib/service/worker/runtime/statusTrack.d.ts +2 -2
- package/lib/service/worker/runtime/statusTrack.js +11 -5
- package/lib/service/worker/runtime/typings.d.ts +10 -10
- package/lib/service/worker/runtime/utils/compose.d.ts +3 -3
- package/lib/service/worker/runtime/utils/compose.js +5 -2
- package/lib/service/worker/runtime/utils/context.d.ts +4 -1
- package/lib/service/worker/runtime/utils/context.js +6 -4
- package/lib/service/worker/runtime/utils/diff.js +1 -0
- package/lib/service/worker/runtime/utils/recorder.js +2 -1
- package/lib/service/worker/runtime/utils/toArray.js +3 -1
- package/lib/service/worker/runtime/utils/tokenBucket.js +1 -0
- package/lib/tracing/Tags.js +2 -1
- package/lib/tracing/UserLandTracer.js +4 -2
- package/lib/tracing/errorReporting/ErrorReport.js +14 -13
- package/lib/tracing/index.js +10 -9
- package/lib/tracing/spanReference/SpanReferenceTypes.js +1 -0
- package/lib/tracing/spanReference/createSpanReference.js +1 -0
- package/lib/tracing/utils.js +6 -4
- package/lib/utils/MineWinsConflictsResolver.d.ts +4 -4
- package/lib/utils/MineWinsConflictsResolver.js +11 -10
- package/lib/utils/app.js +40 -23
- package/lib/utils/appsStaleIfError.d.ts +1 -0
- package/lib/utils/appsStaleIfError.js +33 -12
- package/lib/utils/billingOptions.js +3 -1
- package/lib/utils/binding.js +5 -2
- package/lib/utils/cancel.js +1 -0
- package/lib/utils/conflicts.mock.js +1 -0
- package/lib/utils/domain.js +2 -1
- package/lib/utils/error.js +6 -4
- package/lib/utils/index.js +23 -12
- package/lib/utils/json.js +1 -0
- package/lib/utils/log.js +4 -2
- package/lib/utils/message.js +9 -5
- package/lib/utils/renameBy.js +3 -1
- package/lib/utils/retry.js +10 -7
- package/lib/utils/status.js +3 -1
- package/lib/utils/tenant.js +5 -2
- package/lib/utils/throwOnGraphQLErrors.js +1 -0
- package/lib/utils/time.d.ts +3 -5
- package/lib/utils/time.js +24 -14
- package/package.json +4 -4
- package/CHANGELOG.md +0 -1858
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
5
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
7
|
-
|
|
17
|
+
__exportStar(require("./console"), exports);
|
|
18
|
+
__exportStar(require("./logger"), exports);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logger = exports.LogLevel = void 0;
|
|
3
4
|
const constants_1 = require("../../constants");
|
|
4
5
|
const error_1 = require("../../utils/error");
|
|
5
6
|
const log_1 = require("../../utils/log");
|
|
@@ -21,8 +22,8 @@ class Logger {
|
|
|
21
22
|
this.error = (error) => this.log(error, LogLevel.Error);
|
|
22
23
|
this.log = (message, level) => {
|
|
23
24
|
var _a;
|
|
24
|
-
const data = message ? error_1.cleanError(message) : EMPTY_MESSAGE;
|
|
25
|
-
log_1.cleanLog(data);
|
|
25
|
+
const data = message ? (0, error_1.cleanError)(message) : EMPTY_MESSAGE;
|
|
26
|
+
(0, log_1.cleanLog)(data);
|
|
26
27
|
/* tslint:disable:object-literal-sort-keys */
|
|
27
28
|
const inflatedLog = {
|
|
28
29
|
__VTEX_IO_LOG: true,
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.MetricsLogger = void 0;
|
|
6
7
|
const fast_json_stable_stringify_1 = __importDefault(require("fast-json-stable-stringify"));
|
|
7
8
|
const ramda_1 = require("ramda");
|
|
8
9
|
const stats_lite_1 = require("stats-lite");
|
|
@@ -20,11 +21,11 @@ class MetricsLogger {
|
|
|
20
21
|
// private attributes
|
|
21
22
|
//////////////////////
|
|
22
23
|
let samples = {};
|
|
23
|
-
let lastCpu = diff_1.cpuSnapshot();
|
|
24
|
+
let lastCpu = (0, diff_1.cpuSnapshot)();
|
|
24
25
|
//////////////////////
|
|
25
26
|
// private methods definitions
|
|
26
27
|
//////////////////////
|
|
27
|
-
const summaries = ramda_1.compose(ramda_1.reject(ramda_1.isNil), ramda_1.values, ramda_1.mapObjIndexed(getSummary));
|
|
28
|
+
const summaries = (0, ramda_1.compose)((0, ramda_1.reject)(ramda_1.isNil), ramda_1.values, (0, ramda_1.mapObjIndexed)(getSummary));
|
|
28
29
|
function getDefaultStoredashProperties() {
|
|
29
30
|
return {
|
|
30
31
|
Count: 1,
|
|
@@ -46,8 +47,8 @@ class MetricsLogger {
|
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
function getCpuUsage() {
|
|
49
|
-
const cpu = diff_1.cpuSnapshot();
|
|
50
|
-
const cpuDiff = diff_1.snapshotDiff(cpu, lastCpu);
|
|
50
|
+
const cpu = (0, diff_1.cpuSnapshot)();
|
|
51
|
+
const cpuDiff = (0, diff_1.snapshotDiff)(cpu, lastCpu);
|
|
51
52
|
lastCpu = cpu;
|
|
52
53
|
const metric = {
|
|
53
54
|
Data: {
|
|
@@ -102,7 +103,7 @@ class MetricsLogger {
|
|
|
102
103
|
return false;
|
|
103
104
|
}
|
|
104
105
|
try {
|
|
105
|
-
fast_json_stable_stringify_1.default(key);
|
|
106
|
+
(0, fast_json_stable_stringify_1.default)(key);
|
|
106
107
|
}
|
|
107
108
|
catch {
|
|
108
109
|
return false;
|
|
@@ -110,17 +111,17 @@ class MetricsLogger {
|
|
|
110
111
|
return true;
|
|
111
112
|
}
|
|
112
113
|
function getStrKey(key) {
|
|
113
|
-
return fast_json_stable_stringify_1.default(key);
|
|
114
|
+
return (0, fast_json_stable_stringify_1.default)(key);
|
|
114
115
|
}
|
|
115
116
|
function getNumericSummary(vals) {
|
|
116
117
|
return {
|
|
117
118
|
count: vals.length,
|
|
118
119
|
max: Math.max(...vals),
|
|
119
|
-
median: stats_lite_1.median(vals),
|
|
120
|
+
median: (0, stats_lite_1.median)(vals),
|
|
120
121
|
min: Math.min(...vals),
|
|
121
|
-
percentile95: stats_lite_1.percentile(vals, 0.95),
|
|
122
|
-
percentile99: stats_lite_1.percentile(vals, 0.99),
|
|
123
|
-
sum: stats_lite_1.sum(vals),
|
|
122
|
+
percentile95: (0, stats_lite_1.percentile)(vals, 0.95),
|
|
123
|
+
percentile99: (0, stats_lite_1.percentile)(vals, 0.99),
|
|
124
|
+
sum: (0, stats_lite_1.sum)(vals),
|
|
124
125
|
};
|
|
125
126
|
}
|
|
126
127
|
//////////////////////
|
package/lib/service/master.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.startMaster = void 0;
|
|
6
7
|
const cluster_1 = __importDefault(require("cluster"));
|
|
7
8
|
const os_1 = require("os");
|
|
8
9
|
const constants_1 = require("../constants");
|
|
@@ -11,12 +12,12 @@ const listeners_1 = require("./worker/listeners");
|
|
|
11
12
|
const statusTrack_1 = require("./worker/runtime/statusTrack");
|
|
12
13
|
let handledSignal;
|
|
13
14
|
const onMessage = (worker, message) => {
|
|
14
|
-
if (logger_1.isLog(message)) {
|
|
15
|
-
logger_1.logOnceToDevConsole(message.message, message.level);
|
|
15
|
+
if ((0, logger_1.isLog)(message)) {
|
|
16
|
+
(0, logger_1.logOnceToDevConsole)(message.message, message.level);
|
|
16
17
|
}
|
|
17
|
-
else if (statusTrack_1.isStatusTrackBroadcast(message)) {
|
|
18
|
-
statusTrack_1.trackStatus();
|
|
19
|
-
statusTrack_1.broadcastStatusTrack();
|
|
18
|
+
else if ((0, statusTrack_1.isStatusTrackBroadcast)(message)) {
|
|
19
|
+
(0, statusTrack_1.trackStatus)();
|
|
20
|
+
(0, statusTrack_1.broadcastStatusTrack)();
|
|
20
21
|
}
|
|
21
22
|
else {
|
|
22
23
|
listeners_1.logger.warn({
|
|
@@ -64,7 +65,7 @@ const handleSignal = (timeout) => (signal) => {
|
|
|
64
65
|
process.exit(os_1.constants.signals[signal]);
|
|
65
66
|
}, waitTimeToForceKill);
|
|
66
67
|
};
|
|
67
|
-
|
|
68
|
+
const startMaster = (service) => {
|
|
68
69
|
const { workers: numWorkers, timeout = GRACEFULLY_SHUTDOWN_TIMEOUT_S } = service;
|
|
69
70
|
if (service.deterministicVary) {
|
|
70
71
|
process.env.DETERMINISTIC_VARY = 'true';
|
|
@@ -85,3 +86,4 @@ exports.startMaster = (service) => {
|
|
|
85
86
|
process.on('SIGINT', handleSignal(SIGINT_TIMEOUT_S));
|
|
86
87
|
process.on('SIGTERM', handleSignal(shutdownTimeout));
|
|
87
88
|
};
|
|
89
|
+
exports.startMaster = startMaster;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ServiceContext } from '../worker/runtime/typings';
|
|
2
|
-
export declare const addRequestMetricsMiddleware: () => (ctx: ServiceContext
|
|
2
|
+
export declare const addRequestMetricsMiddleware: () => (ctx: ServiceContext, next: () => Promise<void>) => Promise<void>;
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addRequestMetricsMiddleware = void 0;
|
|
3
4
|
const stream_1 = require("stream");
|
|
4
5
|
const utils_1 = require("../../utils");
|
|
5
6
|
const instruments_1 = require("../tracing/metrics/instruments");
|
|
6
|
-
|
|
7
|
-
const concurrentRequests = instruments_1.createConcurrentRequestsInstrument();
|
|
8
|
-
const requestTimings = instruments_1.createRequestsTimingsInstrument();
|
|
9
|
-
const totalRequests = instruments_1.createTotalRequestsInstrument();
|
|
10
|
-
const responseSizes = instruments_1.createRequestsResponseSizesInstrument();
|
|
11
|
-
const abortedRequests = instruments_1.createTotalAbortedRequestsInstrument();
|
|
7
|
+
const addRequestMetricsMiddleware = () => {
|
|
8
|
+
const concurrentRequests = (0, instruments_1.createConcurrentRequestsInstrument)();
|
|
9
|
+
const requestTimings = (0, instruments_1.createRequestsTimingsInstrument)();
|
|
10
|
+
const totalRequests = (0, instruments_1.createTotalRequestsInstrument)();
|
|
11
|
+
const responseSizes = (0, instruments_1.createRequestsResponseSizesInstrument)();
|
|
12
|
+
const abortedRequests = (0, instruments_1.createTotalAbortedRequestsInstrument)();
|
|
12
13
|
return async function addRequestMetrics(ctx, next) {
|
|
13
14
|
const start = process.hrtime();
|
|
14
15
|
concurrentRequests.inc(1);
|
|
15
|
-
ctx.req.once('aborted', () => abortedRequests.inc({ ["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName }, 1));
|
|
16
|
+
ctx.req.once('aborted', () => abortedRequests.inc({ ["handler" /* RequestsMetricLabels.REQUEST_HANDLER */]: ctx.requestHandlerName }, 1));
|
|
16
17
|
let responseClosed = false;
|
|
17
18
|
ctx.res.once('close', () => (responseClosed = true));
|
|
18
19
|
try {
|
|
@@ -21,24 +22,25 @@ exports.addRequestMetricsMiddleware = () => {
|
|
|
21
22
|
finally {
|
|
22
23
|
const responseLength = ctx.response.length;
|
|
23
24
|
if (responseLength) {
|
|
24
|
-
responseSizes.observe({ ["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName }, responseLength);
|
|
25
|
+
responseSizes.observe({ ["handler" /* RequestsMetricLabels.REQUEST_HANDLER */]: ctx.requestHandlerName }, responseLength);
|
|
25
26
|
}
|
|
26
27
|
totalRequests.inc({
|
|
27
|
-
["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName,
|
|
28
|
-
["status_code" /* STATUS_CODE */]: ctx.response.status,
|
|
28
|
+
["handler" /* RequestsMetricLabels.REQUEST_HANDLER */]: ctx.requestHandlerName,
|
|
29
|
+
["status_code" /* RequestsMetricLabels.STATUS_CODE */]: ctx.response.status,
|
|
29
30
|
}, 1);
|
|
30
31
|
const onResFinished = () => {
|
|
31
32
|
requestTimings.observe({
|
|
32
|
-
["handler" /* REQUEST_HANDLER */]: ctx.requestHandlerName,
|
|
33
|
-
}, utils_1.hrToMillisFloat(process.hrtime(start)));
|
|
33
|
+
["handler" /* RequestsMetricLabels.REQUEST_HANDLER */]: ctx.requestHandlerName,
|
|
34
|
+
}, (0, utils_1.hrToMillisFloat)(process.hrtime(start)));
|
|
34
35
|
concurrentRequests.dec(1);
|
|
35
36
|
};
|
|
36
37
|
if (responseClosed) {
|
|
37
38
|
onResFinished();
|
|
38
39
|
}
|
|
39
40
|
else {
|
|
40
|
-
stream_1.finished(ctx.res, onResFinished);
|
|
41
|
+
(0, stream_1.finished)(ctx.res, onResFinished);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
};
|
|
46
|
+
exports.addRequestMetricsMiddleware = addRequestMetricsMiddleware;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TracerSingleton = void 0;
|
|
6
7
|
const jaeger_client_1 = require("jaeger-client");
|
|
7
8
|
const prom_client_1 = __importDefault(require("prom-client"));
|
|
8
9
|
const constants_1 = require("../../constants");
|
|
@@ -15,14 +16,14 @@ class TracerSingleton {
|
|
|
15
16
|
return TracerSingleton.singleton;
|
|
16
17
|
}
|
|
17
18
|
static initServiceTracer() {
|
|
18
|
-
return TracerSingleton.createJaegerTracer(utils_1.appIdToAppAtMajor(constants_1.APP.ID), {
|
|
19
|
-
["app.linked" /* VTEX_APP_LINKED */]: constants_1.LINKED,
|
|
20
|
-
["app.node_vtex_api_version" /* VTEX_APP_NODE_VTEX_API_VERSION */]: constants_1.NODE_VTEX_API_VERSION,
|
|
21
|
-
["app.production" /* VTEX_APP_PRODUCTION */]: constants_1.PRODUCTION,
|
|
22
|
-
["app.region" /* VTEX_APP_REGION */]: constants_1.REGION,
|
|
23
|
-
["app.version" /* VTEX_APP_VERSION */]: constants_1.APP.VERSION,
|
|
24
|
-
["app.workspace" /* VTEX_APP_WORKSPACE */]: constants_1.WORKSPACE,
|
|
25
|
-
["app.node_env" /* VTEX_APP_NODE_ENV */]: constants_1.NODE_ENV !== null && constants_1.NODE_ENV !== void 0 ? constants_1.NODE_ENV : 'undefined',
|
|
19
|
+
return TracerSingleton.createJaegerTracer((0, utils_1.appIdToAppAtMajor)(constants_1.APP.ID), {
|
|
20
|
+
["app.linked" /* AppTags.VTEX_APP_LINKED */]: constants_1.LINKED,
|
|
21
|
+
["app.node_vtex_api_version" /* AppTags.VTEX_APP_NODE_VTEX_API_VERSION */]: constants_1.NODE_VTEX_API_VERSION,
|
|
22
|
+
["app.production" /* AppTags.VTEX_APP_PRODUCTION */]: constants_1.PRODUCTION,
|
|
23
|
+
["app.region" /* AppTags.VTEX_APP_REGION */]: constants_1.REGION,
|
|
24
|
+
["app.version" /* AppTags.VTEX_APP_VERSION */]: constants_1.APP.VERSION,
|
|
25
|
+
["app.workspace" /* AppTags.VTEX_APP_WORKSPACE */]: constants_1.WORKSPACE,
|
|
26
|
+
["app.node_env" /* AppTags.VTEX_APP_NODE_ENV */]: constants_1.NODE_ENV !== null && constants_1.NODE_ENV !== void 0 ? constants_1.NODE_ENV : 'undefined',
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
29
|
static createJaegerTracer(serviceName, defaultTags) {
|
|
@@ -42,7 +43,7 @@ class TracerSingleton {
|
|
|
42
43
|
metrics: new jaeger_client_1.PrometheusMetricsFactory(prom_client_1.default, 'runtime'),
|
|
43
44
|
tags: defaultTags,
|
|
44
45
|
};
|
|
45
|
-
return jaeger_client_1.initTracer(config, options);
|
|
46
|
+
return (0, jaeger_client_1.initTracer)(config, options);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
exports.TracerSingleton = TracerSingleton;
|
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BETWEEN_SCRAPES_EVENT_LOOP_LAG_PERCENTILES = exports.BETWEEN_SCRAPES_EVENT_LOOP_LAG_MAX = exports.REQUEST_RESPONSE_SIZES = exports.REQUEST_TIMINGS = exports.REQUESTS_ABORTED = exports.REQUESTS_TOTAL = exports.CONCURRENT_REQUESTS = void 0;
|
|
3
4
|
exports.CONCURRENT_REQUESTS = {
|
|
4
5
|
name: 'io_http_requests_current',
|
|
5
6
|
help: 'The current number of requests in course.',
|
|
6
|
-
type: "gauge" /* GAUGE */,
|
|
7
|
+
type: "gauge" /* METRIC_TYPES.GAUGE */,
|
|
7
8
|
};
|
|
8
9
|
exports.REQUESTS_TOTAL = {
|
|
9
10
|
name: 'runtime_http_requests_total',
|
|
10
11
|
help: 'The total number of HTTP requests.',
|
|
11
|
-
labelNames: ["status_code" /* STATUS_CODE */, "handler" /* REQUEST_HANDLER */],
|
|
12
|
-
type: "counter" /* COUNTER */,
|
|
12
|
+
labelNames: ["status_code" /* RequestsMetricLabels.STATUS_CODE */, "handler" /* RequestsMetricLabels.REQUEST_HANDLER */],
|
|
13
|
+
type: "counter" /* METRIC_TYPES.COUNTER */,
|
|
13
14
|
};
|
|
14
15
|
exports.REQUESTS_ABORTED = {
|
|
15
16
|
name: 'runtime_http_aborted_requests_total',
|
|
16
17
|
help: 'The total number of HTTP requests aborted.',
|
|
17
|
-
labelNames: ["handler" /* REQUEST_HANDLER */],
|
|
18
|
-
type: "counter" /* COUNTER */,
|
|
18
|
+
labelNames: ["handler" /* RequestsMetricLabels.REQUEST_HANDLER */],
|
|
19
|
+
type: "counter" /* METRIC_TYPES.COUNTER */,
|
|
19
20
|
};
|
|
20
21
|
exports.REQUEST_TIMINGS = {
|
|
21
22
|
name: 'runtime_http_requests_duration_milliseconds',
|
|
22
23
|
help: 'The incoming http requests total duration.',
|
|
23
|
-
labelNames: ["handler" /* REQUEST_HANDLER */],
|
|
24
|
+
labelNames: ["handler" /* RequestsMetricLabels.REQUEST_HANDLER */],
|
|
24
25
|
buckets: [10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120],
|
|
25
|
-
type: "histogram" /* HISTOGRAM */,
|
|
26
|
+
type: "histogram" /* METRIC_TYPES.HISTOGRAM */,
|
|
26
27
|
};
|
|
27
28
|
exports.REQUEST_RESPONSE_SIZES = {
|
|
28
29
|
name: 'runtime_http_response_size_bytes',
|
|
29
30
|
help: `The outgoing response sizes (only applicable when the response isn't a stream).`,
|
|
30
|
-
labelNames: ["handler" /* REQUEST_HANDLER */],
|
|
31
|
+
labelNames: ["handler" /* RequestsMetricLabels.REQUEST_HANDLER */],
|
|
31
32
|
buckets: [500, 2000, 8000, 16000, 64000, 256000, 1024000, 4096000],
|
|
32
|
-
type: "histogram" /* HISTOGRAM */,
|
|
33
|
+
type: "histogram" /* METRIC_TYPES.HISTOGRAM */,
|
|
33
34
|
};
|
|
34
35
|
exports.BETWEEN_SCRAPES_EVENT_LOOP_LAG_MAX = {
|
|
35
36
|
name: 'runtime_event_loop_lag_max_between_scrapes_seconds',
|
|
36
37
|
help: 'The max event loop lag that occurred between this and the previous scrape',
|
|
37
|
-
type: "gauge" /* GAUGE */,
|
|
38
|
+
type: "gauge" /* METRIC_TYPES.GAUGE */,
|
|
38
39
|
};
|
|
39
40
|
exports.BETWEEN_SCRAPES_EVENT_LOOP_LAG_PERCENTILES = {
|
|
40
41
|
name: 'runtime_event_loop_lag_percentiles_between_scrapes_seconds',
|
|
41
42
|
help: 'Event loop lag percentiles from the observations that occurred between this and the previous scrape',
|
|
42
|
-
labelNames: ["percentile" /* PERCENTILE */],
|
|
43
|
-
type: "gauge" /* GAUGE */,
|
|
43
|
+
labelNames: ["percentile" /* EventLoopMetricLabels.PERCENTILE */],
|
|
44
|
+
type: "gauge" /* METRIC_TYPES.GAUGE */,
|
|
44
45
|
};
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createEventLoopLagPercentilesInstrument = exports.createEventLoopLagMaxInstrument = exports.createConcurrentRequestsInstrument = exports.createRequestsResponseSizesInstrument = exports.createRequestsTimingsInstrument = exports.createTotalAbortedRequestsInstrument = exports.createTotalRequestsInstrument = void 0;
|
|
3
4
|
const prom_client_1 = require("prom-client");
|
|
4
5
|
const MetricNames_1 = require("./MetricNames");
|
|
5
|
-
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
exports.
|
|
9
|
-
|
|
10
|
-
exports.
|
|
11
|
-
|
|
6
|
+
const createTotalRequestsInstrument = () => new prom_client_1.Counter(MetricNames_1.REQUESTS_TOTAL);
|
|
7
|
+
exports.createTotalRequestsInstrument = createTotalRequestsInstrument;
|
|
8
|
+
const createTotalAbortedRequestsInstrument = () => new prom_client_1.Counter(MetricNames_1.REQUESTS_ABORTED);
|
|
9
|
+
exports.createTotalAbortedRequestsInstrument = createTotalAbortedRequestsInstrument;
|
|
10
|
+
const createRequestsTimingsInstrument = () => new prom_client_1.Histogram(MetricNames_1.REQUEST_TIMINGS);
|
|
11
|
+
exports.createRequestsTimingsInstrument = createRequestsTimingsInstrument;
|
|
12
|
+
const createRequestsResponseSizesInstrument = () => new prom_client_1.Histogram(MetricNames_1.REQUEST_RESPONSE_SIZES);
|
|
13
|
+
exports.createRequestsResponseSizesInstrument = createRequestsResponseSizesInstrument;
|
|
14
|
+
const createConcurrentRequestsInstrument = () => new prom_client_1.Gauge(MetricNames_1.CONCURRENT_REQUESTS);
|
|
15
|
+
exports.createConcurrentRequestsInstrument = createConcurrentRequestsInstrument;
|
|
16
|
+
const createEventLoopLagMaxInstrument = () => new prom_client_1.Gauge(MetricNames_1.BETWEEN_SCRAPES_EVENT_LOOP_LAG_MAX);
|
|
17
|
+
exports.createEventLoopLagMaxInstrument = createEventLoopLagMaxInstrument;
|
|
18
|
+
const createEventLoopLagPercentilesInstrument = () => new prom_client_1.Gauge(MetricNames_1.BETWEEN_SCRAPES_EVENT_LOOP_LAG_PERCENTILES);
|
|
19
|
+
exports.createEventLoopLagPercentilesInstrument = createEventLoopLagPercentilesInstrument;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventLoopLagMeasurer = void 0;
|
|
3
4
|
const perf_hooks_1 = require("perf_hooks");
|
|
4
5
|
const utils_1 = require("../../../../utils");
|
|
5
6
|
const instruments_1 = require("../instruments");
|
|
6
7
|
class EventLoopLagMeasurer {
|
|
7
8
|
constructor() {
|
|
8
|
-
this.eventLoopDelayMonitor = perf_hooks_1.monitorEventLoopDelay({ resolution: 10 });
|
|
9
|
-
this.percentilesInstrument = instruments_1.createEventLoopLagPercentilesInstrument();
|
|
10
|
-
this.maxInstrument = instruments_1.createEventLoopLagMaxInstrument();
|
|
9
|
+
this.eventLoopDelayMonitor = (0, perf_hooks_1.monitorEventLoopDelay)({ resolution: 10 });
|
|
10
|
+
this.percentilesInstrument = (0, instruments_1.createEventLoopLagPercentilesInstrument)();
|
|
11
|
+
this.maxInstrument = (0, instruments_1.createEventLoopLagMaxInstrument)();
|
|
11
12
|
}
|
|
12
13
|
start() {
|
|
13
14
|
this.eventLoopDelayMonitor.enable();
|
|
14
15
|
}
|
|
15
16
|
async updateInstrumentsAndReset() {
|
|
16
|
-
this.maxInstrument.set(utils_1.nanosecondsToSeconds(this.eventLoopDelayMonitor.max));
|
|
17
|
+
this.maxInstrument.set((0, utils_1.nanosecondsToSeconds)(this.eventLoopDelayMonitor.max));
|
|
17
18
|
this.setPercentileObservation(95);
|
|
18
19
|
this.setPercentileObservation(99);
|
|
19
20
|
this.eventLoopDelayMonitor.reset();
|
|
20
21
|
}
|
|
21
22
|
setPercentileObservation(percentile) {
|
|
22
|
-
this.percentilesInstrument.set({ ["percentile" /* PERCENTILE */]: percentile }, utils_1.nanosecondsToSeconds(this.eventLoopDelayMonitor.percentile(percentile)));
|
|
23
|
+
this.percentilesInstrument.set({ ["percentile" /* EventLoopMetricLabels.PERCENTILE */]: percentile }, (0, utils_1.nanosecondsToSeconds)(this.eventLoopDelayMonitor.percentile(percentile)));
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
exports.EventLoopLagMeasurer = EventLoopLagMeasurer;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tracer } from 'opentracing';
|
|
2
2
|
import { ServiceContext } from '../worker/runtime/typings';
|
|
3
|
-
export declare const addTracingMiddleware: (tracer: Tracer) => (ctx: ServiceContext
|
|
4
|
-
export declare const nameSpanOperationMiddleware: (operationType: string, operationName: string) => (ctx: ServiceContext
|
|
5
|
-
export declare const traceUserLandRemainingPipelineMiddleware: () => (ctx: ServiceContext
|
|
3
|
+
export declare const addTracingMiddleware: (tracer: Tracer) => (ctx: ServiceContext, next: () => Promise<void>) => Promise<void>;
|
|
4
|
+
export declare const nameSpanOperationMiddleware: (operationType: string, operationName: string) => (ctx: ServiceContext, next: () => Promise<void>) => Promise<void>;
|
|
5
|
+
export declare const traceUserLandRemainingPipelineMiddleware: () => (ctx: ServiceContext, next: () => Promise<void>) => Promise<void>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.traceUserLandRemainingPipelineMiddleware = exports.nameSpanOperationMiddleware = exports.addTracingMiddleware = void 0;
|
|
3
4
|
const opentracing_1 = require("opentracing");
|
|
4
5
|
const stream_1 = require("stream");
|
|
5
6
|
const constants_1 = require("../../constants");
|
|
@@ -8,7 +9,7 @@ const Tags_1 = require("../../tracing/Tags");
|
|
|
8
9
|
const utils_1 = require("../../tracing/utils");
|
|
9
10
|
const utils_2 = require("../../utils");
|
|
10
11
|
const PATHS_BLACKLISTED_FOR_TRACING = ['/_status', '/healthcheck'];
|
|
11
|
-
|
|
12
|
+
const addTracingMiddleware = (tracer) => {
|
|
12
13
|
return async function addTracing(ctx, next) {
|
|
13
14
|
var _a;
|
|
14
15
|
const rootSpan = tracer.extract(opentracing_1.FORMAT_HTTP_HEADERS, ctx.request.headers);
|
|
@@ -21,7 +22,7 @@ exports.addTracingMiddleware = (tracer) => {
|
|
|
21
22
|
childOf: rootSpan,
|
|
22
23
|
tags: { [Tags_1.OpentracingTags.SPAN_KIND]: Tags_1.OpentracingTags.SPAN_KIND_RPC_SERVER },
|
|
23
24
|
});
|
|
24
|
-
const initialSamplingDecision = tracing_1.getTraceInfo(currentSpan).isSampled;
|
|
25
|
+
const initialSamplingDecision = (0, tracing_1.getTraceInfo)(currentSpan).isSampled;
|
|
25
26
|
ctx.tracing = { currentSpan, tracer };
|
|
26
27
|
let responseClosed = false;
|
|
27
28
|
ctx.res.once('close', () => (responseClosed = true));
|
|
@@ -29,11 +30,14 @@ exports.addTracingMiddleware = (tracer) => {
|
|
|
29
30
|
await next();
|
|
30
31
|
}
|
|
31
32
|
catch (err) {
|
|
33
|
+
if (!(err instanceof Error)) {
|
|
34
|
+
throw err;
|
|
35
|
+
}
|
|
32
36
|
tracing_1.ErrorReport.create({ originalError: err }).injectOnSpan(currentSpan, (_a = ctx.vtex) === null || _a === void 0 ? void 0 : _a.logger);
|
|
33
37
|
throw err;
|
|
34
38
|
}
|
|
35
39
|
finally {
|
|
36
|
-
const traceInfo = tracing_1.getTraceInfo(currentSpan);
|
|
40
|
+
const traceInfo = (0, tracing_1.getTraceInfo)(currentSpan);
|
|
37
41
|
if (traceInfo === null || traceInfo === void 0 ? void 0 : traceInfo.isSampled) {
|
|
38
42
|
if (!initialSamplingDecision) {
|
|
39
43
|
currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.setTag(Tags_1.OpentracingTags.SPAN_KIND, Tags_1.OpentracingTags.SPAN_KIND_RPC_SERVER);
|
|
@@ -42,13 +46,13 @@ exports.addTracingMiddleware = (tracer) => {
|
|
|
42
46
|
[Tags_1.OpentracingTags.HTTP_URL]: ctx.request.href,
|
|
43
47
|
[Tags_1.OpentracingTags.HTTP_METHOD]: ctx.request.method,
|
|
44
48
|
[Tags_1.OpentracingTags.HTTP_STATUS_CODE]: ctx.response.status,
|
|
45
|
-
["http.path" /* HTTP_PATH */]: ctx.request.path,
|
|
46
|
-
["vtex.request_id" /* VTEX_REQUEST_ID */]: ctx.get(constants_1.REQUEST_ID_HEADER),
|
|
47
|
-
["vtex.incoming.workspace" /* VTEX_WORKSPACE */]: ctx.get(constants_1.WORKSPACE_HEADER),
|
|
48
|
-
["vtex.incoming.account" /* VTEX_ACCOUNT */]: ctx.get(constants_1.ACCOUNT_HEADER),
|
|
49
|
+
["http.path" /* CustomHttpTags.HTTP_PATH */]: ctx.request.path,
|
|
50
|
+
["vtex.request_id" /* VTEXIncomingRequestTags.VTEX_REQUEST_ID */]: ctx.get(constants_1.REQUEST_ID_HEADER),
|
|
51
|
+
["vtex.incoming.workspace" /* VTEXIncomingRequestTags.VTEX_WORKSPACE */]: ctx.get(constants_1.WORKSPACE_HEADER),
|
|
52
|
+
["vtex.incoming.account" /* VTEXIncomingRequestTags.VTEX_ACCOUNT */]: ctx.get(constants_1.ACCOUNT_HEADER),
|
|
49
53
|
});
|
|
50
|
-
currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.log(utils_1.cloneAndSanitizeHeaders(ctx.request.headers, 'req.headers.'));
|
|
51
|
-
currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.log(utils_1.cloneAndSanitizeHeaders(ctx.response.headers, 'res.headers.'));
|
|
54
|
+
currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.log((0, utils_1.cloneAndSanitizeHeaders)(ctx.request.headers, 'req.headers.'));
|
|
55
|
+
currentSpan === null || currentSpan === void 0 ? void 0 : currentSpan.log((0, utils_1.cloneAndSanitizeHeaders)(ctx.response.headers, 'res.headers.'));
|
|
52
56
|
ctx.set(constants_1.TRACE_ID_HEADER, traceInfo.traceId);
|
|
53
57
|
}
|
|
54
58
|
const onResFinished = () => {
|
|
@@ -58,12 +62,13 @@ exports.addTracingMiddleware = (tracer) => {
|
|
|
58
62
|
onResFinished();
|
|
59
63
|
}
|
|
60
64
|
else {
|
|
61
|
-
stream_1.finished(ctx.res, onResFinished);
|
|
65
|
+
(0, stream_1.finished)(ctx.res, onResFinished);
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
68
|
};
|
|
65
69
|
};
|
|
66
|
-
exports.
|
|
70
|
+
exports.addTracingMiddleware = addTracingMiddleware;
|
|
71
|
+
const nameSpanOperationMiddleware = (operationType, operationName) => {
|
|
67
72
|
return function nameSpanOperation(ctx, next) {
|
|
68
73
|
var _a, _b;
|
|
69
74
|
ctx.requestHandlerName = `${operationType}:${operationName}`;
|
|
@@ -71,7 +76,8 @@ exports.nameSpanOperationMiddleware = (operationType, operationName) => {
|
|
|
71
76
|
return next();
|
|
72
77
|
};
|
|
73
78
|
};
|
|
74
|
-
exports.
|
|
79
|
+
exports.nameSpanOperationMiddleware = nameSpanOperationMiddleware;
|
|
80
|
+
const traceUserLandRemainingPipelineMiddleware = () => {
|
|
75
81
|
return async function traceUserLandRemainingPipeline(ctx, next) {
|
|
76
82
|
const tracingCtx = ctx.tracing;
|
|
77
83
|
ctx.tracing = undefined;
|
|
@@ -81,22 +87,26 @@ exports.traceUserLandRemainingPipelineMiddleware = () => {
|
|
|
81
87
|
userLandTracer.lockFallbackSpan();
|
|
82
88
|
const startTime = process.hrtime();
|
|
83
89
|
try {
|
|
84
|
-
span === null || span === void 0 ? void 0 : span.log({ event: "user-middlewares-start" /* USER_MIDDLEWARES_START */ });
|
|
90
|
+
span === null || span === void 0 ? void 0 : span.log({ event: "user-middlewares-start" /* RuntimeLogEvents.USER_MIDDLEWARES_START */ });
|
|
85
91
|
await next();
|
|
86
92
|
}
|
|
87
93
|
catch (err) {
|
|
94
|
+
if (!(err instanceof Error)) {
|
|
95
|
+
throw err;
|
|
96
|
+
}
|
|
88
97
|
tracing_1.ErrorReport.create({ originalError: err }).injectOnSpan(span, ctx.vtex.logger);
|
|
89
98
|
throw err;
|
|
90
99
|
}
|
|
91
100
|
finally {
|
|
92
101
|
span === null || span === void 0 ? void 0 : span.log({
|
|
93
|
-
event: "user-middlewares-finish" /* USER_MIDDLEWARES_FINISH */,
|
|
94
|
-
["user-middlewares-duration" /* USER_MIDDLEWARES_DURATION */]: utils_2.hrToMillis(process.hrtime(startTime)),
|
|
102
|
+
event: "user-middlewares-finish" /* RuntimeLogEvents.USER_MIDDLEWARES_FINISH */,
|
|
103
|
+
["user-middlewares-duration" /* RuntimeLogFields.USER_MIDDLEWARES_DURATION */]: (0, utils_2.hrToMillis)(process.hrtime(startTime)),
|
|
95
104
|
});
|
|
96
105
|
ctx.tracing = tracingCtx;
|
|
97
106
|
}
|
|
98
107
|
};
|
|
99
108
|
};
|
|
109
|
+
exports.traceUserLandRemainingPipelineMiddleware = traceUserLandRemainingPipelineMiddleware;
|
|
100
110
|
function shouldTrace(ctx, rootSpan) {
|
|
101
111
|
var _a, _b, _c;
|
|
102
112
|
/** Should trace if path isnt blacklisted and sampling decision came from the edge
|