@davidilie/telemetry-next 0.1.3 → 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 +3 -2
- package/THIRD_PARTY_NOTICES.md +2 -1
- package/UPSTREAM.yml +5 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/node.cjs +2 -2
- package/dist/node.mjs +2 -2
- package/dist/{request-error-6cvJ4jpq.mjs → request-error-BWohGji2.mjs} +6 -5
- package/dist/{request-error-CtYIz296.cjs → request-error-DR7VrDk_.cjs} +6 -5
- package/package.json +4 -4
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
|
|
172
|
-
|
|
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/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -7,5 +7,6 @@ DavidApps Telemetry depends on permissively licensed open-source projects and us
|
|
|
7
7
|
- Vercel Analytics and Vercel OTEL — MIT License — Copyright Vercel, Inc.
|
|
8
8
|
- PostHog JavaScript SDKs — Apache-2.0/MIT — API reference only; no source is vendored.
|
|
9
9
|
- Honeycomb OpenTelemetry React Native — MIT License — Copyright Honeycomb.io.
|
|
10
|
+
- Stripe Node.js SDK — MIT License — Copyright Ask Bjørn Hansen and Stripe, Inc.; API reference only.
|
|
10
11
|
|
|
11
|
-
Reference license texts are retained in `licenses/` so future adaptations cannot accidentally lose their attribution obligations. The current source tree does not vendor code from PostHog, Vercel, Honeycomb, or the OpenTelemetry demo.
|
|
12
|
+
Reference license texts are retained in `licenses/` so future adaptations cannot accidentally lose their attribution obligations. The current source tree does not vendor code from PostHog, Vercel, Honeycomb, Stripe, or the OpenTelemetry demo.
|
package/UPSTREAM.yml
CHANGED
|
@@ -54,3 +54,8 @@ sources:
|
|
|
54
54
|
license: MIT
|
|
55
55
|
commit: 07d144459177a58a347e18be762cf8f04e63cb1d
|
|
56
56
|
use: api-reference
|
|
57
|
+
- name: stripe-node
|
|
58
|
+
repository: https://github.com/stripe/stripe-node
|
|
59
|
+
license: MIT
|
|
60
|
+
commit: 8adba1d35fdb76ba4104e5d7ae1ac999649c7061
|
|
61
|
+
use: api-reference
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
70
|
-
"@davidilie/telemetry-node": "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.
|
|
86
|
+
"next": "16.3.5"
|
|
87
87
|
},
|
|
88
88
|
"publishConfig": {
|
|
89
89
|
"access": "public",
|