plutin 1.8.5 → 1.8.7
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/dist/index.cjs +56 -67
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -20
- package/dist/index.d.ts +13 -20
- package/dist/index.mjs +55 -66
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1086,6 +1086,38 @@ var import_fastify = __toESM(require("fastify"), 1);
|
|
|
1086
1086
|
var import_node_crypto2 = require("crypto");
|
|
1087
1087
|
var import_qs = __toESM(require("qs"), 1);
|
|
1088
1088
|
|
|
1089
|
+
// src/infra/adapters/observability/otel/span-manager.ts
|
|
1090
|
+
var import_api = require("@opentelemetry/api");
|
|
1091
|
+
var NullSpan = class NullSpan2 {
|
|
1092
|
+
static {
|
|
1093
|
+
__name(this, "NullSpan");
|
|
1094
|
+
}
|
|
1095
|
+
setAttributes() {
|
|
1096
|
+
return;
|
|
1097
|
+
}
|
|
1098
|
+
setAttribute() {
|
|
1099
|
+
return;
|
|
1100
|
+
}
|
|
1101
|
+
setStatus() {
|
|
1102
|
+
return;
|
|
1103
|
+
}
|
|
1104
|
+
recordException() {
|
|
1105
|
+
return;
|
|
1106
|
+
}
|
|
1107
|
+
};
|
|
1108
|
+
var SpanManager = class SpanManager2 {
|
|
1109
|
+
static {
|
|
1110
|
+
__name(this, "SpanManager");
|
|
1111
|
+
}
|
|
1112
|
+
static getActiveSpan() {
|
|
1113
|
+
if (process.env.OTEL_ENABLE === "false" || !process.env.OTEL_ENABLE) {
|
|
1114
|
+
return new NullSpan();
|
|
1115
|
+
}
|
|
1116
|
+
const span = import_api.trace.getActiveSpan();
|
|
1117
|
+
return span || new NullSpan();
|
|
1118
|
+
}
|
|
1119
|
+
};
|
|
1120
|
+
|
|
1089
1121
|
// src/infra/adapters/http/validate-controller-metadata.ts
|
|
1090
1122
|
var import_reflect_metadata3 = require("reflect-metadata");
|
|
1091
1123
|
function validateControllerMetadata(controller) {
|
|
@@ -1127,12 +1159,10 @@ var FastifyAdapter = class {
|
|
|
1127
1159
|
__name(this, "FastifyAdapter");
|
|
1128
1160
|
}
|
|
1129
1161
|
logger;
|
|
1130
|
-
span;
|
|
1131
1162
|
metrics;
|
|
1132
1163
|
instance;
|
|
1133
|
-
constructor(logger,
|
|
1164
|
+
constructor(logger, metrics2) {
|
|
1134
1165
|
this.logger = logger;
|
|
1135
|
-
this.span = span;
|
|
1136
1166
|
this.metrics = metrics2;
|
|
1137
1167
|
this.instance = (0, import_fastify.default)({
|
|
1138
1168
|
bodyLimit: 10 * 1024 * 1024,
|
|
@@ -1143,8 +1173,8 @@ var FastifyAdapter = class {
|
|
|
1143
1173
|
});
|
|
1144
1174
|
this.instance.register(import_cors.default);
|
|
1145
1175
|
this.instance.addHook("onRequest", async (request) => {
|
|
1146
|
-
const
|
|
1147
|
-
|
|
1176
|
+
const span = SpanManager.getActiveSpan();
|
|
1177
|
+
span.setAttributes({
|
|
1148
1178
|
httpMethod: request.method,
|
|
1149
1179
|
httpUrl: request.url,
|
|
1150
1180
|
httpRoute: request.routeOptions.url || request.url,
|
|
@@ -1168,9 +1198,9 @@ var FastifyAdapter = class {
|
|
|
1168
1198
|
});
|
|
1169
1199
|
this.instance.addHook("onResponse", async (request, reply) => {
|
|
1170
1200
|
const route = this.getNormalizedRoute(request);
|
|
1171
|
-
const
|
|
1201
|
+
const span = SpanManager.getActiveSpan();
|
|
1172
1202
|
const responseTime = reply.elapsedTime || 0;
|
|
1173
|
-
|
|
1203
|
+
span.setAttributes({
|
|
1174
1204
|
httpStatusCode: reply.statusCode
|
|
1175
1205
|
});
|
|
1176
1206
|
this.logger.info({
|
|
@@ -1211,7 +1241,7 @@ var FastifyAdapter = class {
|
|
|
1211
1241
|
headers: request.headers,
|
|
1212
1242
|
query: request.query
|
|
1213
1243
|
};
|
|
1214
|
-
const activeSpan =
|
|
1244
|
+
const activeSpan = SpanManager.getActiveSpan();
|
|
1215
1245
|
try {
|
|
1216
1246
|
activeSpan.setAttributes({
|
|
1217
1247
|
controllerName: controllerClass.constructor.name,
|
|
@@ -1277,12 +1307,10 @@ var FastifyAdapter = class {
|
|
|
1277
1307
|
};
|
|
1278
1308
|
FastifyAdapter = _ts_decorate([
|
|
1279
1309
|
_ts_param(0, Inject("Logger")),
|
|
1280
|
-
_ts_param(1, Inject("
|
|
1281
|
-
_ts_param(2, Inject("Metrics")),
|
|
1310
|
+
_ts_param(1, Inject("Metrics")),
|
|
1282
1311
|
_ts_metadata("design:type", Function),
|
|
1283
1312
|
_ts_metadata("design:paramtypes", [
|
|
1284
1313
|
typeof ILogger === "undefined" ? Object : ILogger,
|
|
1285
|
-
typeof ISpanManager === "undefined" ? Object : ISpanManager,
|
|
1286
1314
|
typeof IMetricsManager === "undefined" ? Object : IMetricsManager
|
|
1287
1315
|
])
|
|
1288
1316
|
], FastifyAdapter);
|
|
@@ -1635,7 +1663,7 @@ var Logger = class {
|
|
|
1635
1663
|
};
|
|
1636
1664
|
|
|
1637
1665
|
// src/infra/adapters/observability/otel/metric.ts
|
|
1638
|
-
var
|
|
1666
|
+
var import_api2 = require("@opentelemetry/api");
|
|
1639
1667
|
var import_node_os = require("os");
|
|
1640
1668
|
var import_node_perf_hooks = require("perf_hooks");
|
|
1641
1669
|
var import_node_v8 = __toESM(require("v8"), 1);
|
|
@@ -1643,10 +1671,7 @@ var MetricsManager = class {
|
|
|
1643
1671
|
static {
|
|
1644
1672
|
__name(this, "MetricsManager");
|
|
1645
1673
|
}
|
|
1646
|
-
meter = null;
|
|
1647
|
-
constructor() {
|
|
1648
|
-
this.meter = process.env.OTEL_ENABLE === "true" ? import_api.metrics.getMeter(process.env.OTEL_SERVICE_NAME || "plutin-boilerplate-common", process.env.OTEL_SERVICE_VERSION || "1.0.0") : null;
|
|
1649
|
-
}
|
|
1674
|
+
meter = process.env.OTEL_ENABLE === "true" ? import_api2.metrics.getMeter(process.env.OTEL_SERVICE_NAME || "plutin-boilerplate-common", process.env.OTEL_SERVICE_VERSION || "1.0.0") : null;
|
|
1650
1675
|
httpRequestsTotal = this.meter?.createCounter("http_requests_total", {
|
|
1651
1676
|
description: "Total de requisi\xE7\xF5es HTTP",
|
|
1652
1677
|
unit: "1"
|
|
@@ -1758,7 +1783,7 @@ var MetricsManager = class {
|
|
|
1758
1783
|
collectionInterval;
|
|
1759
1784
|
gcObserver;
|
|
1760
1785
|
recordHttpRequest(params) {
|
|
1761
|
-
if (
|
|
1786
|
+
if (!this.meter) {
|
|
1762
1787
|
return;
|
|
1763
1788
|
}
|
|
1764
1789
|
const { method, route, statusCode, durationSeconds, responseSizeBytes } = params;
|
|
@@ -1782,7 +1807,7 @@ var MetricsManager = class {
|
|
|
1782
1807
|
}
|
|
1783
1808
|
}
|
|
1784
1809
|
recordDbQueryError(params) {
|
|
1785
|
-
if (
|
|
1810
|
+
if (!this.meter) {
|
|
1786
1811
|
return;
|
|
1787
1812
|
}
|
|
1788
1813
|
if (!this.isValidDbQueryErrorParams(params)) {
|
|
@@ -1797,7 +1822,7 @@ var MetricsManager = class {
|
|
|
1797
1822
|
});
|
|
1798
1823
|
}
|
|
1799
1824
|
recordDbQuery(params) {
|
|
1800
|
-
if (
|
|
1825
|
+
if (!this.meter) {
|
|
1801
1826
|
return;
|
|
1802
1827
|
}
|
|
1803
1828
|
if (!this.isValidDbQueryParams(params)) {
|
|
@@ -1831,7 +1856,7 @@ var MetricsManager = class {
|
|
|
1831
1856
|
return true;
|
|
1832
1857
|
}
|
|
1833
1858
|
recordDbTransaction(params) {
|
|
1834
|
-
if (
|
|
1859
|
+
if (!this.meter) {
|
|
1835
1860
|
return;
|
|
1836
1861
|
}
|
|
1837
1862
|
const { operation, repository, durationSeconds } = params;
|
|
@@ -1847,7 +1872,7 @@ var MetricsManager = class {
|
|
|
1847
1872
|
});
|
|
1848
1873
|
}
|
|
1849
1874
|
recordDbDeadlock(params) {
|
|
1850
|
-
if (
|
|
1875
|
+
if (!this.meter) {
|
|
1851
1876
|
return;
|
|
1852
1877
|
}
|
|
1853
1878
|
const { operation, repository, errorMessage } = params;
|
|
@@ -1859,7 +1884,7 @@ var MetricsManager = class {
|
|
|
1859
1884
|
});
|
|
1860
1885
|
}
|
|
1861
1886
|
recordHttpRequestBytes(bytes, attributes) {
|
|
1862
|
-
if (
|
|
1887
|
+
if (!this.meter) {
|
|
1863
1888
|
return;
|
|
1864
1889
|
}
|
|
1865
1890
|
this.httpRequestBytesTotal?.add(bytes, {
|
|
@@ -1869,7 +1894,7 @@ var MetricsManager = class {
|
|
|
1869
1894
|
});
|
|
1870
1895
|
}
|
|
1871
1896
|
recordProcessingDuration(params) {
|
|
1872
|
-
if (
|
|
1897
|
+
if (!this.meter) {
|
|
1873
1898
|
return;
|
|
1874
1899
|
}
|
|
1875
1900
|
const { operation, durationSeconds } = params;
|
|
@@ -1879,7 +1904,7 @@ var MetricsManager = class {
|
|
|
1879
1904
|
});
|
|
1880
1905
|
}
|
|
1881
1906
|
recordProcessingError(params) {
|
|
1882
|
-
if (
|
|
1907
|
+
if (!this.meter) {
|
|
1883
1908
|
return;
|
|
1884
1909
|
}
|
|
1885
1910
|
const { operation, errorType } = params;
|
|
@@ -1890,7 +1915,7 @@ var MetricsManager = class {
|
|
|
1890
1915
|
});
|
|
1891
1916
|
}
|
|
1892
1917
|
recordHttpClientRequest(params) {
|
|
1893
|
-
if (
|
|
1918
|
+
if (!this.meter) {
|
|
1894
1919
|
return;
|
|
1895
1920
|
}
|
|
1896
1921
|
const { method, url, statusCode, durationSeconds, error, timeout } = params;
|
|
@@ -1914,7 +1939,7 @@ var MetricsManager = class {
|
|
|
1914
1939
|
}
|
|
1915
1940
|
}
|
|
1916
1941
|
recordValidationError(params) {
|
|
1917
|
-
if (
|
|
1942
|
+
if (!this.meter) {
|
|
1918
1943
|
return;
|
|
1919
1944
|
}
|
|
1920
1945
|
const { field, errorType } = params;
|
|
@@ -1925,7 +1950,7 @@ var MetricsManager = class {
|
|
|
1925
1950
|
});
|
|
1926
1951
|
}
|
|
1927
1952
|
startSystemMetricsCollection(intervalMs = 5e3) {
|
|
1928
|
-
if (
|
|
1953
|
+
if (!this.meter) {
|
|
1929
1954
|
return;
|
|
1930
1955
|
}
|
|
1931
1956
|
this.eventLoopMonitor.enable();
|
|
@@ -1947,7 +1972,7 @@ var MetricsManager = class {
|
|
|
1947
1972
|
this.collectPeriodicMetrics();
|
|
1948
1973
|
}
|
|
1949
1974
|
stopSystemMetricsCollection() {
|
|
1950
|
-
if (
|
|
1975
|
+
if (!this.meter) {
|
|
1951
1976
|
return;
|
|
1952
1977
|
}
|
|
1953
1978
|
if (this.collectionInterval) {
|
|
@@ -1961,7 +1986,7 @@ var MetricsManager = class {
|
|
|
1961
1986
|
}
|
|
1962
1987
|
}
|
|
1963
1988
|
collectSystemMetrics(observableResult) {
|
|
1964
|
-
if (
|
|
1989
|
+
if (!this.meter) {
|
|
1965
1990
|
return;
|
|
1966
1991
|
}
|
|
1967
1992
|
const attributes = {
|
|
@@ -2002,7 +2027,7 @@ var MetricsManager = class {
|
|
|
2002
2027
|
observableResult.observe(this.processUptimeSeconds, process.uptime(), attributes);
|
|
2003
2028
|
}
|
|
2004
2029
|
collectPeriodicMetrics() {
|
|
2005
|
-
if (
|
|
2030
|
+
if (!this.meter) {
|
|
2006
2031
|
return;
|
|
2007
2032
|
}
|
|
2008
2033
|
const attributes = {
|
|
@@ -2026,7 +2051,7 @@ var MetricsManager = class {
|
|
|
2026
2051
|
}
|
|
2027
2052
|
}
|
|
2028
2053
|
setupGCObserver() {
|
|
2029
|
-
if (
|
|
2054
|
+
if (!this.meter) {
|
|
2030
2055
|
return;
|
|
2031
2056
|
}
|
|
2032
2057
|
try {
|
|
@@ -2210,42 +2235,6 @@ var OtelManager = class {
|
|
|
2210
2235
|
}
|
|
2211
2236
|
};
|
|
2212
2237
|
|
|
2213
|
-
// src/infra/adapters/observability/otel/span-manager.ts
|
|
2214
|
-
var import_api2 = require("@opentelemetry/api");
|
|
2215
|
-
var NullSpan = class NullSpan2 {
|
|
2216
|
-
static {
|
|
2217
|
-
__name(this, "NullSpan");
|
|
2218
|
-
}
|
|
2219
|
-
setAttributes() {
|
|
2220
|
-
return;
|
|
2221
|
-
}
|
|
2222
|
-
setAttribute() {
|
|
2223
|
-
return;
|
|
2224
|
-
}
|
|
2225
|
-
setStatus() {
|
|
2226
|
-
return;
|
|
2227
|
-
}
|
|
2228
|
-
recordException() {
|
|
2229
|
-
return;
|
|
2230
|
-
}
|
|
2231
|
-
};
|
|
2232
|
-
var SpanManager = class SpanManager2 {
|
|
2233
|
-
static {
|
|
2234
|
-
__name(this, "SpanManager");
|
|
2235
|
-
}
|
|
2236
|
-
env;
|
|
2237
|
-
constructor(env) {
|
|
2238
|
-
this.env = env;
|
|
2239
|
-
}
|
|
2240
|
-
getActiveSpan() {
|
|
2241
|
-
if (!this.env.OTEL_ENABLE) {
|
|
2242
|
-
return new NullSpan();
|
|
2243
|
-
}
|
|
2244
|
-
const span = import_api2.trace.getActiveSpan();
|
|
2245
|
-
return span || new NullSpan();
|
|
2246
|
-
}
|
|
2247
|
-
};
|
|
2248
|
-
|
|
2249
2238
|
// src/infra/decorators/base-instrumentation-strategy.ts
|
|
2250
2239
|
var import_api3 = require("@opentelemetry/api");
|
|
2251
2240
|
var MILLISECONDS_TO_SECONDS = 1e3;
|