@davidilie/telemetry-next 0.2.0 → 0.3.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/README.md CHANGED
@@ -168,7 +168,8 @@ reaches VictoriaLogs with active `trace_id`, `span_id`, service, and release.
168
168
 
169
169
  In long-running Next server processes the framework owns the provider
170
170
  lifecycle. Do not call `shutdown()` during an ordinary request. Use `flush()`
171
- only at a real lifecycle boundary; it drains core sends, not every private
172
- batch inside `@vercel/otel`.
171
+ only when queued telemetry must leave before returning or exiting. It drains
172
+ core sends and invokes public `forceFlush()` on registered trace, log, and
173
+ metric providers when supported. It does not shut down the framework provider.
173
174
 
174
175
  See the [web adapter](https://www.npmjs.com/package/@davidilie/telemetry-web), [Node adapter](https://www.npmjs.com/package/@davidilie/telemetry-node), [project onboarding](https://github.com/DavidIlie/davidapps-telemetry/blob/main/docs/adding-a-project.md), and [troubleshooting](https://github.com/DavidIlie/davidapps-telemetry/blob/main/docs/troubleshooting.md).
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_request_error = require("./request-error-CtYIz296.cjs");
2
+ const require_request_error = require("./request-error-DR7VrDk_.cjs");
3
3
  exports.createNextRequestErrorHandler = require_request_error.createNextRequestErrorHandler;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as createNextRequestErrorHandler } from "./request-error-6cvJ4jpq.mjs";
1
+ import { t as createNextRequestErrorHandler } from "./request-error-BWohGji2.mjs";
2
2
  export { createNextRequestErrorHandler };
package/dist/node.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_request_error = require("./request-error-CtYIz296.cjs");
3
- let _vercel_otel = require("@vercel/otel");
2
+ const require_request_error = require("./request-error-DR7VrDk_.cjs");
4
3
  let _davidilie_telemetry_core = require("@davidilie/telemetry-core");
4
+ let _vercel_otel = require("@vercel/otel");
5
5
  let _davidilie_telemetry_node = require("@davidilie/telemetry-node");
6
6
  let _opentelemetry_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
7
7
  //#region src/node.ts
package/dist/node.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { t as createNextRequestErrorHandler } from "./request-error-6cvJ4jpq.mjs";
2
- import { registerOTel } from "@vercel/otel";
1
+ import { t as createNextRequestErrorHandler } from "./request-error-BWohGji2.mjs";
3
2
  import { sanitizeResource } from "@davidilie/telemetry-core";
3
+ import { registerOTel } from "@vercel/otel";
4
4
  import { DynamicTelemetrySampler, NodeTelemetryClient, telemetryResourceAttributes } from "@davidilie/telemetry-node";
5
5
  import { ParentBasedSampler, TraceIdRatioBasedSampler } from "@opentelemetry/sdk-trace-base";
6
6
  //#region src/node.ts
@@ -1,3 +1,4 @@
1
+ import { sanitizeAttributes, sanitizeUrl } from "@davidilie/telemetry-core";
1
2
  //#region src/request-error.ts
2
3
  async function reportFailure(config, error, stage) {
3
4
  try {
@@ -15,20 +16,20 @@ function createNextRequestErrorHandler(config) {
15
16
  await reportFailure(config, hookError, "beforeCapture");
16
17
  return;
17
18
  }
18
- const digest = errorDigest(error);
19
19
  try {
20
- config.telemetry.captureException(error, {
20
+ const digest = errorDigest(error);
21
+ config.telemetry.captureException(error, sanitizeAttributes({
21
22
  ...config.attributes,
22
23
  "http.request.method": request.method,
23
- "url.path": request.path,
24
+ "url.path": sanitizeUrl(request.path),
24
25
  "next.router.kind": context.routerKind,
25
- "next.route.path": context.routePath,
26
+ "next.route.path": sanitizeUrl(context.routePath),
26
27
  "next.route.type": context.routeType,
27
28
  ...context.renderSource ? { "next.render.source": context.renderSource } : {},
28
29
  ...context.revalidateReason ? { "next.revalidate.reason": context.revalidateReason } : {},
29
30
  ...context.renderType ? { "next.render.type": context.renderType } : {},
30
31
  ...digest ? { "next.error.digest": digest } : {}
31
- });
32
+ }));
32
33
  } catch (captureError) {
33
34
  await reportFailure(config, captureError, "capture");
34
35
  return;
@@ -1,3 +1,4 @@
1
+ let _davidilie_telemetry_core = require("@davidilie/telemetry-core");
1
2
  //#region src/request-error.ts
2
3
  async function reportFailure(config, error, stage) {
3
4
  try {
@@ -15,20 +16,20 @@ function createNextRequestErrorHandler(config) {
15
16
  await reportFailure(config, hookError, "beforeCapture");
16
17
  return;
17
18
  }
18
- const digest = errorDigest(error);
19
19
  try {
20
- config.telemetry.captureException(error, {
20
+ const digest = errorDigest(error);
21
+ config.telemetry.captureException(error, (0, _davidilie_telemetry_core.sanitizeAttributes)({
21
22
  ...config.attributes,
22
23
  "http.request.method": request.method,
23
- "url.path": request.path,
24
+ "url.path": (0, _davidilie_telemetry_core.sanitizeUrl)(request.path),
24
25
  "next.router.kind": context.routerKind,
25
- "next.route.path": context.routePath,
26
+ "next.route.path": (0, _davidilie_telemetry_core.sanitizeUrl)(context.routePath),
26
27
  "next.route.type": context.routeType,
27
28
  ...context.renderSource ? { "next.render.source": context.renderSource } : {},
28
29
  ...context.revalidateReason ? { "next.revalidate.reason": context.revalidateReason } : {},
29
30
  ...context.renderType ? { "next.render.type": context.renderType } : {},
30
31
  ...digest ? { "next.error.digest": digest } : {}
31
- });
32
+ }));
32
33
  } catch (captureError) {
33
34
  await reportFailure(config, captureError, "capture");
34
35
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@davidilie/telemetry-next",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Runtime-safe Next.js telemetry backed by @vercel/otel.",
5
5
  "keywords": [
6
6
  "analytics",
@@ -66,8 +66,8 @@
66
66
  "clean": "rm -rf dist coverage"
67
67
  },
68
68
  "dependencies": {
69
- "@davidilie/telemetry-core": "0.2.0",
70
- "@davidilie/telemetry-node": "0.2.0",
69
+ "@davidilie/telemetry-core": "0.3.0",
70
+ "@davidilie/telemetry-node": "0.3.0",
71
71
  "@opentelemetry/sdk-trace-base": "2.10.0",
72
72
  "@vercel/otel": "2.1.3"
73
73
  },
@@ -83,7 +83,7 @@
83
83
  "devDependencies": {
84
84
  "@opentelemetry/api": "1.9.0",
85
85
  "@types/node": "25.0.10",
86
- "next": "16.3.1"
86
+ "next": "16.3.5"
87
87
  },
88
88
  "publishConfig": {
89
89
  "access": "public",