@tracepanel/js 0.6.0 → 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/README.md +44 -2
- package/dist/browser.d.ts +4 -1
- package/dist/browser.js +33 -3
- package/dist/browser.js.map +1 -1
- package/dist/express.js +43 -3
- package/dist/express.js.map +1 -1
- package/dist/graphql.d.ts +39 -0
- package/dist/graphql.js +337 -0
- package/dist/graphql.js.map +1 -0
- package/dist/processor.d.ts +10 -1
- package/dist/processor.js +37 -1
- package/dist/processor.js.map +1 -1
- package/dist/propagation.d.ts +12 -0
- package/dist/propagation.js +48 -0
- package/dist/propagation.js.map +1 -0
- package/dist/setup.js +5 -1
- package/dist/setup.js.map +1 -1
- package/dist/widget.js +9 -0
- package/dist/widget.js.map +1 -1
- package/package.json +15 -3
package/README.md
CHANGED
|
@@ -22,6 +22,7 @@ It runs while you develop, and everything stays on your machine.
|
|
|
22
22
|
| --- | --- |
|
|
23
23
|
| **Runtimes** | Node.js 20.19 and later, tested in CI on 20.19, 22, 24 and 26. Bun. |
|
|
24
24
|
| **Frameworks** | Express 4.18 and later, Fastify 5, Koa 3 with `@koa/router`, Hono 4.8 and later on Node and on Bun, NestJS on Express, Next.js in its Node.js runtime, Nuxt, and `Bun.serve`. On Bun also any fetch handler, such as Elysia's. Any other server on Node's `node:http` at the request level. |
|
|
25
|
+
| **GraphQL** | GraphQL Yoga and Apollo Server, through their plugins: each request named after its operation, the app's resolvers as steps with their calls under them, resolver errors behind HTTP 200. |
|
|
25
26
|
| **Databases** | `pg` and `mysql2`, and so Drizzle, Knex, Sequelize, TypeORM and Prisma's driver adapters, with Prisma's operations as steps. SQLite through `better-sqlite3`, `node:sqlite` and `libsql`. Transactions and their savepoints. EXPLAIN on PostgreSQL, MySQL and SQLite. |
|
|
26
27
|
| **Redis and MongoDB** | `ioredis` and `redis`, and the MongoDB driver, with their own N+1 and duplicates. |
|
|
27
28
|
| **HTTP clients** | `fetch()`, and `node:http` clients such as axios, on Node and on Bun. |
|
|
@@ -193,6 +194,38 @@ app.use(tracepanel());
|
|
|
193
194
|
await app.listen(3000);
|
|
194
195
|
```
|
|
195
196
|
|
|
197
|
+
### GraphQL
|
|
198
|
+
|
|
199
|
+
Add the plugin of your GraphQL server; load Tracepanel and its framework's
|
|
200
|
+
middleware as above. GraphQL Yoga, on Express or any other server:
|
|
201
|
+
|
|
202
|
+
```js
|
|
203
|
+
import { createYoga } from "graphql-yoga";
|
|
204
|
+
import { tracepanelYogaPlugin } from "@tracepanel/js/graphql";
|
|
205
|
+
|
|
206
|
+
const yoga = createYoga({ schema, plugins: [tracepanelYogaPlugin()] });
|
|
207
|
+
app.use(yoga.graphqlEndpoint, yoga);
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Apollo Server:
|
|
211
|
+
|
|
212
|
+
```js
|
|
213
|
+
import { ApolloServer } from "@apollo/server";
|
|
214
|
+
import { tracepanelApolloPlugin } from "@tracepanel/js/graphql";
|
|
215
|
+
|
|
216
|
+
const server = new ApolloServer({ typeDefs, resolvers, plugins: [tracepanelApolloPlugin()] });
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Each request is named after its operation, such as `GraphQL query Books`, so
|
|
220
|
+
traffic groups by operation rather than `POST /graphql`, and the console's
|
|
221
|
+
GraphQL page lists them. The operation is a step with its parse and validate
|
|
222
|
+
phases, and each of your resolvers is a step, such as `Book.author`, with
|
|
223
|
+
the queries and calls it makes under it: an N+1 shows which field runs it.
|
|
224
|
+
Fields without a resolver of their own are left out. An exception a resolver
|
|
225
|
+
throws is the request's error though the client gets it with a 200; a
|
|
226
|
+
`GraphQLError` you answer with, and a client's syntax or validation error,
|
|
227
|
+
are not. The variables are in the request's body, their secrets masked.
|
|
228
|
+
|
|
196
229
|
### Next.js
|
|
197
230
|
|
|
198
231
|
Next.js starts its own server: Tracepanel goes in from the instrumentation
|
|
@@ -319,8 +352,12 @@ its actions under it, and the badge's panel lists each action over the
|
|
|
319
352
|
requests it made.
|
|
320
353
|
|
|
321
354
|
A call to the page's own origin carries a W3C `traceparent`, so the console
|
|
322
|
-
links it to the API's trace.
|
|
323
|
-
|
|
355
|
+
links it to the API's trace. While the panel's Profile toggle is on, the
|
|
356
|
+
same calls carry `X-Tracepanel-Profile` (`1`, or `memory`), so an API on
|
|
357
|
+
another origin, which never gets the toggle's cookie, profiles the request
|
|
358
|
+
too, and so does each app it calls in turn. `propagateTo` names other
|
|
359
|
+
origins, whose CORS must allow both headers (`cors()` and
|
|
360
|
+
`allow_headers=["*"]` do):
|
|
324
361
|
|
|
325
362
|
```ts
|
|
326
363
|
tracepanel({ dir: "../backend", browser: { service: "shop-web", propagateTo: ["http://127.0.0.1:8000"] } });
|
|
@@ -410,6 +447,11 @@ the line that ran it and the fix:
|
|
|
410
447
|
request was the only one running, and counts the rest
|
|
411
448
|
(`tracepanel.dropped_samples`). Time spent waiting on I/O is not in it.
|
|
412
449
|
Every profile counts the garbage collector's runs and their pauses.
|
|
450
|
+
A request profiled because it asked asks the same of the apps it calls:
|
|
451
|
+
each call that carries a `traceparent` (fetch, node:http, axios, got)
|
|
452
|
+
carries `X-Tracepanel-Profile` too, so the panel's toggle profiles the
|
|
453
|
+
whole chain. `TRACEPANEL_PROFILE=1` asks nothing of them: each app's own
|
|
454
|
+
setting decides.
|
|
413
455
|
- A profile's memory too, when asked: `X-Tracepanel-Profile: memory`, the
|
|
414
456
|
`tracepanel_profile=memory` cookie (the panel's Profile toggle offers
|
|
415
457
|
it), or `TRACEPANEL_PROFILE_MEMORY=1`. V8's sampling heap profiler takes
|
package/dist/browser.d.ts
CHANGED
|
@@ -3,7 +3,10 @@ export interface BrowserOptions {
|
|
|
3
3
|
api?: string;
|
|
4
4
|
/** The app's name in the console. "browser" by default. */
|
|
5
5
|
service?: string;
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Other origins whose calls carry a traceparent, and X-Tracepanel-Profile while the panel's Profile is on: their
|
|
8
|
+
* CORS must allow both headers (`cors()` and `allow_headers=["*"]` do).
|
|
9
|
+
*/
|
|
7
10
|
propagateTo?: string[];
|
|
8
11
|
/**
|
|
9
12
|
* Scripts whose console isn't the page's, by a part of their path: a dev server's own client ("/@vite/").
|
package/dist/browser.js
CHANGED
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
// route change, named by its path ("/books"); an action is what the user did that called the API or threw, named
|
|
3
3
|
// after it on its page ("/books › click "Save""), and "background" when nobody did anything (a timer, polling). Each
|
|
4
4
|
// has its fetch() and XMLHttpRequest calls, the errors the page throws and its console, and lasts until its last call
|
|
5
|
-
// answered (a view: until the page's load too). Calls to the page's own origin
|
|
6
|
-
//
|
|
5
|
+
// answered (a view: until the page's load too). Calls to the page's own origin (and to `propagateTo`'s) carry a W3C
|
|
6
|
+
// traceparent, so the agent links each to the backend's trace of it. While the panel's Profile is on (its
|
|
7
|
+
// tracepanel_profile cookie, on the page's origin), those calls carry X-Tracepanel-Profile with the cookie's value
|
|
8
|
+
// too ("1", or "memory"): a backend on another origin never gets the cookie, and is profiled all the same, and so is
|
|
9
|
+
// each app it calls in turn. The traces go to the console's address (`api`), which the dev server serves on the
|
|
10
|
+
// page's origin.
|
|
7
11
|
//
|
|
8
12
|
// import { record } from "@tracepanel/js/browser";
|
|
9
13
|
// record({ api: "/__tracepanel__/", service: "shop-web" });
|
|
@@ -49,6 +53,9 @@ const CONTROL = "[data-tracepanel-name],button,a,[role=button],[role=link],[role
|
|
|
49
53
|
"input[type=button],input[type=checkbox],input[type=radio],select,summary,label";
|
|
50
54
|
const CROCKFORD = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
|
|
51
55
|
const SECRET = /(token|key|secret|password|passwd|pwd|auth|signature|sig|session|credential)/i;
|
|
56
|
+
// The panel's Profile toggle: its cookie on the page's origin, and the header a call asks a backend with.
|
|
57
|
+
const PROFILE_COOKIE = "tracepanel_profile";
|
|
58
|
+
const PROFILE_HEADER = "X-Tracepanel-Profile";
|
|
52
59
|
function hex(bytes) {
|
|
53
60
|
return Array.from(crypto.getRandomValues(new Uint8Array(bytes)), (b) => b.toString(16).padStart(2, "0")).join("");
|
|
54
61
|
}
|
|
@@ -90,6 +97,22 @@ function safeUrl(raw) {
|
|
|
90
97
|
return undefined;
|
|
91
98
|
}
|
|
92
99
|
}
|
|
100
|
+
/** What the panel's Profile toggle asks for now: "1", "memory", or nothing while it is off. */
|
|
101
|
+
function profileAsked() {
|
|
102
|
+
let cookies = "";
|
|
103
|
+
try {
|
|
104
|
+
cookies = document.cookie;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// A sandboxed page has no cookies.
|
|
108
|
+
}
|
|
109
|
+
for (const pair of cookies.split(";")) {
|
|
110
|
+
const [name, value] = pair.trim().split("=", 2);
|
|
111
|
+
if (name === PROFILE_COOKIE)
|
|
112
|
+
return value === "1" || value === "memory" ? value : undefined;
|
|
113
|
+
}
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
93
116
|
function clip(text) {
|
|
94
117
|
const flat = text.replace(/\s+/g, " ").trim();
|
|
95
118
|
return flat.length > LABEL_LENGTH ? `${flat.slice(0, LABEL_LENGTH - 1)}…` : flat;
|
|
@@ -320,8 +343,11 @@ export function record(options = {}) {
|
|
|
320
343
|
};
|
|
321
344
|
if (current.trace.spans.length < MAX_SPANS)
|
|
322
345
|
current.trace.spans.push(span);
|
|
346
|
+
const propagated = propagate.has(url.origin);
|
|
323
347
|
return {
|
|
324
|
-
traceparent:
|
|
348
|
+
traceparent: propagated ? `00-${current.w3cTraceId}-${spanId}-01` : undefined,
|
|
349
|
+
// Where a traceparent goes, the panel's Profile asks for a profile too.
|
|
350
|
+
profile: propagated ? profileAsked() : undefined,
|
|
325
351
|
page: current.trace.id,
|
|
326
352
|
finish(status, failed) {
|
|
327
353
|
span.duration = nowUs() - span.start;
|
|
@@ -340,6 +366,8 @@ export function record(options = {}) {
|
|
|
340
366
|
const headers = new Headers(request.headers);
|
|
341
367
|
if (out.traceparent && !headers.has("traceparent"))
|
|
342
368
|
headers.set("traceparent", out.traceparent);
|
|
369
|
+
if (out.profile && !headers.has(PROFILE_HEADER))
|
|
370
|
+
headers.set(PROFILE_HEADER, out.profile);
|
|
343
371
|
try {
|
|
344
372
|
// Marked as it arrives, before anything else runs: a wrapper of fetch around this one (the widget's) reads the
|
|
345
373
|
// mark as soon as the Response reaches it.
|
|
@@ -369,6 +397,8 @@ export function record(options = {}) {
|
|
|
369
397
|
const out = call(target.method, target.url);
|
|
370
398
|
if (out.traceparent)
|
|
371
399
|
this.setRequestHeader("traceparent", out.traceparent);
|
|
400
|
+
if (out.profile)
|
|
401
|
+
this.setRequestHeader(PROFILE_HEADER, out.profile);
|
|
372
402
|
if (out.page)
|
|
373
403
|
Object.defineProperty(this, PAGE, { value: out.page, configurable: true });
|
|
374
404
|
this.addEventListener("loadend", () => out.finish(this.status, this.status === 0));
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/express.js
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
// pieces without a Content-Length is a stream, and goes out as it comes, an HTML page with the script put in as it
|
|
4
4
|
// passes. What the request carried goes into its trace as the response goes out: its headers, query, cookies, the
|
|
5
5
|
// body a body parser read (`req.body`, an upload's files), the session (`req.session`), and the response's headers. A redirect that answers a
|
|
6
|
-
// page's navigation (a form's POST) sets the cookie that shows it in the next page's panel.
|
|
6
|
+
// page's navigation (a form's POST) sets the cookie that shows it in the next page's panel. A handler that reads the
|
|
7
|
+
// body from the stream itself (GraphQL Yoga) has it recorded as it read it. One that writes its headers itself with
|
|
8
|
+
// `res.writeHead()` before its body (Yoga, a Node handler under `app.use()`) gets the badge's headers then, and its
|
|
9
|
+
// HTML page no script.
|
|
10
|
+
import { tapIncoming, tapOf } from "./body.js";
|
|
7
11
|
import { hasBody, parsedBody, redirectCookie, requestAttrs, responseHeaders, searchOf } from "./request.js";
|
|
8
12
|
import { runtime } from "./runtime.js";
|
|
9
13
|
import { expressSession } from "./session.js";
|
|
@@ -21,14 +25,16 @@ function toBuffer(chunk, encoding) {
|
|
|
21
25
|
*/
|
|
22
26
|
function carried(req, res) {
|
|
23
27
|
const upload = req;
|
|
24
|
-
const
|
|
28
|
+
const parsed = req.body !== undefined || upload.file !== undefined || upload.files !== undefined
|
|
25
29
|
? parsedBody({
|
|
26
30
|
contentType: req.headers["content-type"] ?? "",
|
|
27
31
|
body: req.body,
|
|
28
32
|
file: upload.file,
|
|
29
33
|
files: upload.files,
|
|
30
34
|
})
|
|
31
|
-
:
|
|
35
|
+
: undefined;
|
|
36
|
+
// No body parser read it: as far as the handler read it from the stream.
|
|
37
|
+
const body = hasBody(req.headers) ? (parsed ?? tapOf(req)?.attrs() ?? {}) : {};
|
|
32
38
|
return {
|
|
33
39
|
...requestAttrs(req.headers, searchOf(req.originalUrl ?? req.url)),
|
|
34
40
|
...body,
|
|
@@ -36,6 +42,12 @@ function carried(req, res) {
|
|
|
36
42
|
...responseHeaders(Object.entries(res.getHeaders())),
|
|
37
43
|
};
|
|
38
44
|
}
|
|
45
|
+
function pairsOf(flat) {
|
|
46
|
+
const pairs = [];
|
|
47
|
+
for (let at = 0; at + 1 < flat.length; at += 2)
|
|
48
|
+
pairs.push([String(flat[at]), String(flat[at + 1])]);
|
|
49
|
+
return pairs;
|
|
50
|
+
}
|
|
39
51
|
export function tracepanel() {
|
|
40
52
|
const tp = runtime();
|
|
41
53
|
return function tracepanelMiddleware(req, res, next) {
|
|
@@ -44,6 +56,9 @@ export function tracepanel() {
|
|
|
44
56
|
return;
|
|
45
57
|
}
|
|
46
58
|
tp.processor.setFramework("Express");
|
|
59
|
+
// A handler may read the body from the stream itself: its pieces pass the tap on their way.
|
|
60
|
+
if (tp.config.captureRequest && hasBody(req.headers) && !req.readableEnded && !tapOf(req))
|
|
61
|
+
tapIncoming(req);
|
|
47
62
|
const startedMs = performance.now();
|
|
48
63
|
const chunks = [];
|
|
49
64
|
const write = res.write.bind(res);
|
|
@@ -55,7 +70,9 @@ export function tracepanel() {
|
|
|
55
70
|
if (chunks.length > 0)
|
|
56
71
|
write(Buffer.concat(chunks.splice(0)));
|
|
57
72
|
};
|
|
73
|
+
const writeHead = res.writeHead.bind(res);
|
|
58
74
|
let recorded = false;
|
|
75
|
+
let marked = false;
|
|
59
76
|
/** What the request carried, into its trace once, before the badge's headers join the response's. */
|
|
60
77
|
const record = () => {
|
|
61
78
|
if (recorded || !tp.config.captureRequest)
|
|
@@ -66,6 +83,7 @@ export function tracepanel() {
|
|
|
66
83
|
/** The badge's headers on the response; its script tag when it is a page that gets one. */
|
|
67
84
|
const mark = (page) => {
|
|
68
85
|
record();
|
|
86
|
+
marked = true;
|
|
69
87
|
const framework = tp.processor.framework() ?? "Express";
|
|
70
88
|
const marks = badge(tp, { method: req.method, status: res.statusCode, startedMs, page, framework });
|
|
71
89
|
if (!marks)
|
|
@@ -92,6 +110,28 @@ export function tracepanel() {
|
|
|
92
110
|
if (page && tag)
|
|
93
111
|
script = new Stream(tag);
|
|
94
112
|
};
|
|
113
|
+
// A handler that writes its headers itself, before its body: the badge's go with them. Headers passed here join
|
|
114
|
+
// the response's own first, so a CORS one among them exposes the badge's.
|
|
115
|
+
res.writeHead = ((status, ...rest) => {
|
|
116
|
+
if (marked || res.headersSent)
|
|
117
|
+
return writeHead(status, ...rest);
|
|
118
|
+
const message = typeof rest[0] === "string" ? rest[0] : undefined;
|
|
119
|
+
const given = (message === undefined ? rest[0] : rest[1]);
|
|
120
|
+
res.statusCode = status;
|
|
121
|
+
if (Array.isArray(given)) {
|
|
122
|
+
// Raw headers: [name, value, ...] or [[name, value], ...].
|
|
123
|
+
const pairs = Array.isArray(given[0]) ? given : pairsOf(given);
|
|
124
|
+
for (const [name, value] of pairs)
|
|
125
|
+
res.appendHeader(name, value);
|
|
126
|
+
}
|
|
127
|
+
else if (given) {
|
|
128
|
+
for (const [name, value] of Object.entries(given))
|
|
129
|
+
if (value !== undefined)
|
|
130
|
+
res.setHeader(name, value);
|
|
131
|
+
}
|
|
132
|
+
mark(false);
|
|
133
|
+
return message === undefined ? writeHead(status) : writeHead(status, message);
|
|
134
|
+
});
|
|
95
135
|
res.write = ((chunk, encoding, callback) => {
|
|
96
136
|
// Its size declared, a body in pieces is held whole like a page ended at once; without one it is a stream.
|
|
97
137
|
if (!streaming && res.getHeader("content-length") === undefined)
|
package/dist/express.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,oHAAoH;AACpH,mHAAmH;AACnH,kHAAkH;AAClH,8IAA8I;AAC9I,
|
|
1
|
+
{"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** What tells the processor a span is GraphQL's: an operation (it has graphql.library), `parse` or `validate`. */
|
|
2
|
+
export declare const GRAPHQL = "graphql";
|
|
3
|
+
/** What tells the processor a span is a resolver of the app's. */
|
|
4
|
+
export declare const RESOLVER = "graphql.resolver";
|
|
5
|
+
/** A Yoga plugin's hooks this one has: Yoga's own types are the app's, not a dependency of the SDK. */
|
|
6
|
+
type Hook = (payload: any) => any;
|
|
7
|
+
export interface YogaPlugin {
|
|
8
|
+
instrumentation: {
|
|
9
|
+
operation: (payload: unknown, wrapped: () => unknown) => unknown;
|
|
10
|
+
};
|
|
11
|
+
onSchemaChange: Hook;
|
|
12
|
+
onParams: Hook;
|
|
13
|
+
onParse: Hook;
|
|
14
|
+
onValidate: Hook;
|
|
15
|
+
onExecute: Hook;
|
|
16
|
+
onExecutionResult: Hook;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* GraphQL Yoga's plugin: `createYoga({ schema, plugins: [tracepanelYogaPlugin()] })`. Each operation is a span named after
|
|
20
|
+
* it, and so is the request's trace; its parse and validate phases and the app's resolvers are spans under it.
|
|
21
|
+
*/
|
|
22
|
+
export declare function tracepanelYogaPlugin(): YogaPlugin;
|
|
23
|
+
export interface ApolloPlugin {
|
|
24
|
+
serverWillStart: (service: {
|
|
25
|
+
schema: unknown;
|
|
26
|
+
}) => Promise<{
|
|
27
|
+
schemaDidLoadOrUpdate: (schemaContext: {
|
|
28
|
+
apiSchema: unknown;
|
|
29
|
+
}) => void;
|
|
30
|
+
}>;
|
|
31
|
+
requestDidStart: (requestContext: any) => Promise<object | undefined>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Apollo Server's plugin: `new ApolloServer({ typeDefs, resolvers, plugins: [tracepanelApolloPlugin()] })`. Each
|
|
35
|
+
* operation is a span named after it, and so is the request's trace; its parse and validate phases and the app's
|
|
36
|
+
* resolvers are spans under it.
|
|
37
|
+
*/
|
|
38
|
+
export declare function tracepanelApolloPlugin(): ApolloPlugin;
|
|
39
|
+
export {};
|