@vtex/api 7.2.9-beta.1 → 7.3.0-beta.10
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.
|
@@ -7,7 +7,7 @@ const requestStats_1 = require("../../service/worker/runtime/http/middlewares/re
|
|
|
7
7
|
const utils_1 = require("../../utils");
|
|
8
8
|
const retry_1 = require("../../utils/retry");
|
|
9
9
|
const status_1 = require("../../utils/status");
|
|
10
|
-
const DEFAULT_ACCOUNT = '
|
|
10
|
+
const DEFAULT_ACCOUNT = 'unknown';
|
|
11
11
|
const metricsMiddleware = ({ metrics, serverTiming, name }) => {
|
|
12
12
|
const serverTimingStart = process.hrtime();
|
|
13
13
|
const serverTimingLabel = (0, utils_1.shrinkTimings)((0, utils_1.formatTimingName)({
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Types } from '@vtex/diagnostics-nodejs';
|
|
2
|
-
export declare const
|
|
3
|
-
STATUS_CODE
|
|
4
|
-
REQUEST_HANDLER
|
|
5
|
-
ACCOUNT_NAME
|
|
6
|
-
}
|
|
2
|
+
export declare const RequestsMetricLabels: {
|
|
3
|
+
readonly STATUS_CODE: "status_code";
|
|
4
|
+
readonly REQUEST_HANDLER: "handler";
|
|
5
|
+
readonly ACCOUNT_NAME: "vtex.account.name";
|
|
6
|
+
};
|
|
7
7
|
export interface OtelRequestInstruments {
|
|
8
8
|
concurrentRequests: Types.Gauge;
|
|
9
9
|
requestTimings: Types.Histogram;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getOtelInstruments = void 0;
|
|
3
|
+
exports.getOtelInstruments = exports.RequestsMetricLabels = void 0;
|
|
4
4
|
const client_1 = require("./client");
|
|
5
|
+
const constants_1 = require("../../constants");
|
|
6
|
+
exports.RequestsMetricLabels = {
|
|
7
|
+
STATUS_CODE: 'status_code',
|
|
8
|
+
REQUEST_HANDLER: 'handler',
|
|
9
|
+
ACCOUNT_NAME: constants_1.AttributeKeys.VTEX_ACCOUNT_NAME,
|
|
10
|
+
};
|
|
5
11
|
const createOtelConcurrentRequestsInstrument = async () => {
|
|
6
12
|
const metricsClient = await (0, client_1.getMetricClient)();
|
|
7
13
|
return metricsClient.createGauge('io_http_requests_current', {
|
|
@@ -31,7 +31,7 @@ const addOtelRequestMetricsMiddleware = () => {
|
|
|
31
31
|
instruments.concurrentRequests.add(1);
|
|
32
32
|
ctx.req.once('aborted', () => {
|
|
33
33
|
if (instruments) {
|
|
34
|
-
instruments.abortedRequests.add(1, { [
|
|
34
|
+
instruments.abortedRequests.add(1, { [metrics_1.RequestsMetricLabels.REQUEST_HANDLER]: ctx.requestHandlerName });
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
37
|
let responseClosed = false;
|
|
@@ -43,25 +43,25 @@ const addOtelRequestMetricsMiddleware = () => {
|
|
|
43
43
|
const responseLength = ctx.response.length;
|
|
44
44
|
if (responseLength && instruments) {
|
|
45
45
|
instruments.responseSizes.record(responseLength, {
|
|
46
|
-
[
|
|
47
|
-
[
|
|
48
|
-
[
|
|
46
|
+
[metrics_1.RequestsMetricLabels.REQUEST_HANDLER]: ctx.requestHandlerName,
|
|
47
|
+
[metrics_1.RequestsMetricLabels.STATUS_CODE]: ctx.response.status,
|
|
48
|
+
[metrics_1.RequestsMetricLabels.ACCOUNT_NAME]: ((_a = ctx.vtex) === null || _a === void 0 ? void 0 : _a.account) || 'unknown',
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
if (instruments) {
|
|
52
52
|
instruments.totalRequests.add(1, {
|
|
53
|
-
[
|
|
54
|
-
[
|
|
55
|
-
[
|
|
53
|
+
[metrics_1.RequestsMetricLabels.REQUEST_HANDLER]: ctx.requestHandlerName,
|
|
54
|
+
[metrics_1.RequestsMetricLabels.STATUS_CODE]: ctx.response.status,
|
|
55
|
+
[metrics_1.RequestsMetricLabels.ACCOUNT_NAME]: ((_b = ctx.vtex) === null || _b === void 0 ? void 0 : _b.account) || 'unknown',
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
const onResFinished = () => {
|
|
59
59
|
var _a;
|
|
60
60
|
if (instruments) {
|
|
61
61
|
instruments.requestTimings.record((0, utils_1.hrToMillisFloat)(process.hrtime(start)), {
|
|
62
|
-
[
|
|
63
|
-
[
|
|
64
|
-
[
|
|
62
|
+
[metrics_1.RequestsMetricLabels.REQUEST_HANDLER]: ctx.requestHandlerName,
|
|
63
|
+
[metrics_1.RequestsMetricLabels.STATUS_CODE]: ctx.response.status,
|
|
64
|
+
[metrics_1.RequestsMetricLabels.ACCOUNT_NAME]: ((_a = ctx.vtex) === null || _a === void 0 ? void 0 : _a.account) || 'unknown',
|
|
65
65
|
});
|
|
66
66
|
instruments.concurrentRequests.subtract(1);
|
|
67
67
|
}
|
|
@@ -19,6 +19,7 @@ class TelemetryClientSingleton {
|
|
|
19
19
|
endpoint: constants_1.OTEL_EXPORTER_OTLP_ENDPOINT,
|
|
20
20
|
interval: 60,
|
|
21
21
|
timeoutSeconds: 60,
|
|
22
|
+
temporality: 'delta',
|
|
22
23
|
}), 'otlp'),
|
|
23
24
|
});
|
|
24
25
|
this.initializeLogsClient = async (telemetryClient) => await telemetryClient.newLogsClient({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vtex/api",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0-beta.10",
|
|
4
4
|
"description": "VTEX I/O API client",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"@opentelemetry/instrumentation-koa": "0.47.1",
|
|
54
54
|
"@types/koa": "^2.11.0",
|
|
55
55
|
"@types/koa-compose": "^3.2.3",
|
|
56
|
-
"@vtex/diagnostics-nodejs": "0.1.
|
|
56
|
+
"@vtex/diagnostics-nodejs": "0.1.8-io",
|
|
57
57
|
"@vtex/diagnostics-semconv": "^1.1.2",
|
|
58
58
|
"@vtex/node-error-report": "^0.0.3",
|
|
59
59
|
"@wry/equality": "^0.1.9",
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"ramda": "^0.26.0",
|
|
89
89
|
"rwlock": "^5.0.0",
|
|
90
90
|
"semver": "^5.5.1",
|
|
91
|
-
"stats-lite": "vtex/node-stats-lite#
|
|
91
|
+
"stats-lite": "vtex/node-stats-lite#v2.2.1",
|
|
92
92
|
"tar-fs": "^2.0.0",
|
|
93
93
|
"tokenbucket": "^0.3.2",
|
|
94
94
|
"uuid": "^3.3.3",
|