@application-kit/observability 0.6.1 → 0.8.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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @application-kit/observability
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 49a8dd8: Вход `/tracing` ставит ESM-хук через `module.registerHooks()` (`import-in-the-middle/register-hooks.mjs`) вместо
8
+ устаревшего `module.register()`: Node 26 больше не печатает `DEP0205` на старте. Потребителю — добавить peer
9
+ `import-in-the-middle` `^3.3.3` (та же копия, что у `@opentelemetry/instrumentation`: две копии оставляют
10
+ `esmHookedModules` без спанов) и держать Node `^24.11.1 || >=25.1.0` — на более старых синхронный хук не работает.
11
+
12
+ ## 0.7.0
13
+
14
+ ### Minor Changes
15
+
16
+ - 90affe3: Вход `/tracing` — на OpenTelemetry JS SDK 3.0: peer `@opentelemetry/sdk-node`, `exporter-trace-otlp-grpc`, `instrumentation`
17
+ и `instrumentation-http` — `^0.300.0`, `@opentelemetry/api` — `^1.10.0` (SDK 3.0 требует `>=1.10.0 <1.11.0`). Устаревшие
18
+ `sdk-trace-base`, `sdk-trace-node` и `propagator-jaeger` из цепочки ушли. Потребителю — поднять эти пакеты и свои
19
+ инструментации на версии с `@opentelemetry/instrumentation@^0.300.0`; `OTEL_PROPAGATORS=jaeger` SDK 3.0 больше не понимает.
20
+
3
21
  ## 0.6.1
4
22
 
5
23
  ### Patch Changes
@@ -2,7 +2,7 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
2
2
  import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
3
3
  import { NodeSDK } from '@opentelemetry/sdk-node';
4
4
  import { ATTR_CLIENT_ADDRESS } from '@opentelemetry/semantic-conventions';
5
- import { register } from 'node:module';
5
+ import { register as registerEsmHook } from 'import-in-the-middle/register-hooks.mjs';
6
6
  import nodeProcess from 'node:process';
7
7
  import { resolveClientIp } from '../http/resolve-client-ip.js';
8
8
  import { isInfrastructurePath } from '../logging/infrastructure-paths.js';
@@ -37,9 +37,7 @@ export const startTracing = (options) => {
37
37
  if (tracesEndpoint() === '') {
38
38
  return undefined;
39
39
  }
40
- register('@opentelemetry/instrumentation/hook.mjs', import.meta.url, {
41
- data: { include: options.esmHookedModules },
42
- });
40
+ registerEsmHook({ include: options.esmHookedModules });
43
41
  const sdk = new NodeSDK({
44
42
  instrumentations: [
45
43
  createHttpInstrumentation(options.resolveClientIp),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@application-kit/observability",
3
- "version": "0.6.1",
3
+ "version": "0.8.0",
4
4
  "description": "Наблюдаемость NestJS-процесса: метрики Prometheus и RED-гистограммы, health-чеки и пробы, опции pino с request-id и trace-контекстом, логирование CQRS-шин, реальный IP клиента за прокси, трейсинг OpenTelemetry",
5
5
  "keywords": [
6
6
  "cqrs",
@@ -133,11 +133,11 @@
133
133
  "@nestjs/terminus": "^11.1.1",
134
134
  "@nestjs/testing": "^11.2.7",
135
135
  "@nestjs/typeorm": "^11.0.3",
136
- "@opentelemetry/api": "^1.9.1",
137
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.221.0",
138
- "@opentelemetry/instrumentation": "^0.221.0",
139
- "@opentelemetry/instrumentation-http": "^0.221.0",
140
- "@opentelemetry/sdk-node": "^0.221.0",
136
+ "@opentelemetry/api": "^1.10.0",
137
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.300.0",
138
+ "@opentelemetry/instrumentation": "^0.300.0",
139
+ "@opentelemetry/instrumentation-http": "^0.300.0",
140
+ "@opentelemetry/sdk-node": "^0.300.0",
141
141
  "@opentelemetry/semantic-conventions": "^1.43.0",
142
142
  "@prometheus-io/client": "^0.16.0",
143
143
  "@stryker-mutator/core": "^10.0.0",
@@ -147,6 +147,7 @@
147
147
  "class-validator": "^0.15.1",
148
148
  "fastify": "^5.12.5",
149
149
  "graphql": "^16.14.2",
150
+ "import-in-the-middle": "^3.5.2",
150
151
  "nestjs-console": "^10.0.0",
151
152
  "nestjs-pino": "^4.6.1",
152
153
  "pino": "^10.3.1",
@@ -163,17 +164,18 @@
163
164
  "@nestjs/platform-fastify": "^11.0.0",
164
165
  "@nestjs/terminus": "^11.0.0",
165
166
  "@nestjs/typeorm": "^11.0.0",
166
- "@opentelemetry/api": "^1.9.0",
167
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.221.0",
168
- "@opentelemetry/instrumentation": "^0.221.0",
169
- "@opentelemetry/instrumentation-http": "^0.221.0",
170
- "@opentelemetry/sdk-node": "^0.221.0",
167
+ "@opentelemetry/api": "^1.10.0",
168
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.300.0",
169
+ "@opentelemetry/instrumentation": "^0.300.0",
170
+ "@opentelemetry/instrumentation-http": "^0.300.0",
171
+ "@opentelemetry/sdk-node": "^0.300.0",
171
172
  "@opentelemetry/semantic-conventions": "^1.43.0",
172
173
  "@prometheus-io/client": "^0.16.0",
173
174
  "class-transformer": "^0.5.1",
174
175
  "class-validator": "^0.15.1",
175
176
  "fastify": "^5.0.0",
176
177
  "graphql": "^16.0.0",
178
+ "import-in-the-middle": "^3.3.3",
177
179
  "nestjs-console": "^10.0.0",
178
180
  "nestjs-pino": "^4.6.1",
179
181
  "pino": "^10.0.0",
@@ -225,6 +227,9 @@
225
227
  "graphql": {
226
228
  "optional": true
227
229
  },
230
+ "import-in-the-middle": {
231
+ "optional": true
232
+ },
228
233
  "nestjs-console": {
229
234
  "optional": true
230
235
  },
@@ -239,7 +244,7 @@
239
244
  }
240
245
  },
241
246
  "engines": {
242
- "node": ">=24"
247
+ "node": "^24.11.1 || >=25.1.0"
243
248
  },
244
249
  "publishConfig": {
245
250
  "access": "public"