@wizeworks/lens-node 0.3.0-alpha.3 → 0.3.0-alpha.4
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/adapters/elasticsearch.d.ts +21 -0
- package/dist/adapters/elasticsearch.d.ts.map +1 -0
- package/dist/adapters/elasticsearch.js +93 -0
- package/dist/adapters/elasticsearch.js.map +1 -0
- package/dist/adapters/ioredis.d.ts +4 -0
- package/dist/adapters/ioredis.d.ts.map +1 -0
- package/dist/adapters/ioredis.js +60 -0
- package/dist/adapters/ioredis.js.map +1 -0
- package/dist/adapters/mongodb-shape.d.ts +16 -0
- package/dist/adapters/mongodb-shape.d.ts.map +1 -0
- package/dist/adapters/mongodb-shape.js +81 -0
- package/dist/adapters/mongodb-shape.js.map +1 -0
- package/dist/adapters/mongodb.d.ts +4 -0
- package/dist/adapters/mongodb.d.ts.map +1 -0
- package/dist/adapters/mongodb.js +95 -0
- package/dist/adapters/mongodb.js.map +1 -0
- package/dist/adapters/nosql.d.ts +14 -0
- package/dist/adapters/nosql.d.ts.map +1 -0
- package/dist/adapters/nosql.js +61 -0
- package/dist/adapters/nosql.js.map +1 -0
- package/dist/adapters/redis-shape.d.ts +31 -0
- package/dist/adapters/redis-shape.d.ts.map +1 -0
- package/dist/adapters/redis-shape.js +80 -0
- package/dist/adapters/redis-shape.js.map +1 -0
- package/dist/adapters/redis.d.ts +4 -0
- package/dist/adapters/redis.d.ts.map +1 -0
- package/dist/adapters/redis.js +93 -0
- package/dist/adapters/redis.js.map +1 -0
- package/dist/adapters/registry.d.ts +2 -0
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +2 -0
- package/dist/adapters/registry.js.map +1 -1
- package/dist/api.d.ts +5 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +19 -7
- package/dist/api.js.map +1 -1
- package/dist/auto/config.d.ts +14 -0
- package/dist/auto/config.d.ts.map +1 -0
- package/dist/auto/config.js +51 -0
- package/dist/auto/config.js.map +1 -0
- package/dist/auto/esm-loader.d.ts +10 -0
- package/dist/auto/esm-loader.d.ts.map +1 -0
- package/dist/auto/esm-loader.js +10 -0
- package/dist/auto/esm-loader.js.map +1 -0
- package/dist/auto/esm-source.d.ts +15 -0
- package/dist/auto/esm-source.d.ts.map +1 -0
- package/dist/auto/esm-source.js +23 -0
- package/dist/auto/esm-source.js.map +1 -0
- package/dist/auto/frameworks.d.ts +3 -0
- package/dist/auto/frameworks.d.ts.map +1 -0
- package/dist/auto/frameworks.js +112 -0
- package/dist/auto/frameworks.js.map +1 -0
- package/dist/auto/handle.d.ts +7 -0
- package/dist/auto/handle.d.ts.map +1 -0
- package/dist/auto/handle.js +47 -0
- package/dist/auto/handle.js.map +1 -0
- package/dist/auto/hono.d.ts +3 -0
- package/dist/auto/hono.d.ts.map +1 -0
- package/dist/auto/hono.js +43 -0
- package/dist/auto/hono.js.map +1 -0
- package/dist/auto/http.d.ts +18 -0
- package/dist/auto/http.d.ts.map +1 -0
- package/dist/auto/http.js +77 -0
- package/dist/auto/http.js.map +1 -0
- package/dist/auto/install.d.ts +5 -0
- package/dist/auto/install.d.ts.map +1 -0
- package/dist/auto/install.js +26 -0
- package/dist/auto/install.js.map +1 -0
- package/dist/auto/libraries.d.ts +3 -0
- package/dist/auto/libraries.d.ts.map +1 -0
- package/dist/auto/libraries.js +108 -0
- package/dist/auto/libraries.js.map +1 -0
- package/dist/auto/module-hooks.d.ts +14 -0
- package/dist/auto/module-hooks.d.ts.map +1 -0
- package/dist/auto/module-hooks.js +90 -0
- package/dist/auto/module-hooks.js.map +1 -0
- package/dist/auto/nest.d.ts +7 -0
- package/dist/auto/nest.d.ts.map +1 -0
- package/dist/auto/nest.js +26 -0
- package/dist/auto/nest.js.map +1 -0
- package/dist/auto/owner.d.ts +19 -0
- package/dist/auto/owner.d.ts.map +1 -0
- package/dist/auto/owner.js +52 -0
- package/dist/auto/owner.js.map +1 -0
- package/dist/auto/prisma.d.ts +3 -0
- package/dist/auto/prisma.d.ts.map +1 -0
- package/dist/auto/prisma.js +55 -0
- package/dist/auto/prisma.js.map +1 -0
- package/dist/auto/sqlite.d.ts +3 -0
- package/dist/auto/sqlite.d.ts.map +1 -0
- package/dist/auto/sqlite.js +31 -0
- package/dist/auto/sqlite.js.map +1 -0
- package/dist/auto/state.d.ts +14 -0
- package/dist/auto/state.d.ts.map +1 -0
- package/dist/auto/state.js +16 -0
- package/dist/auto/state.js.map +1 -0
- package/dist/auto.d.ts +2 -0
- package/dist/auto.d.ts.map +1 -0
- package/dist/auto.js +4 -0
- package/dist/auto.js.map +1 -0
- package/dist/capture.d.ts +3 -1
- package/dist/capture.d.ts.map +1 -1
- package/dist/capture.js +1 -1
- package/dist/capture.js.map +1 -1
- package/dist/client-attributes.d.ts +19 -0
- package/dist/client-attributes.d.ts.map +1 -0
- package/dist/client-attributes.js +56 -0
- package/dist/client-attributes.js.map +1 -0
- package/dist/db.js +1 -1
- package/dist/db.js.map +1 -1
- package/dist/frameworks/hono.d.ts +16 -0
- package/dist/frameworks/hono.d.ts.map +1 -1
- package/dist/frameworks/hono.js +1 -1
- package/dist/frameworks/hono.js.map +1 -1
- package/dist/frameworks/koa.d.ts +2 -0
- package/dist/frameworks/koa.d.ts.map +1 -1
- package/dist/frameworks/koa.js +1 -1
- package/dist/frameworks/koa.js.map +1 -1
- package/dist/frameworks/nest-errors.d.ts +10 -0
- package/dist/frameworks/nest-errors.d.ts.map +1 -0
- package/dist/frameworks/nest-errors.js +75 -0
- package/dist/frameworks/nest-errors.js.map +1 -0
- package/dist/frameworks/nest-route.d.ts +31 -0
- package/dist/frameworks/nest-route.d.ts.map +1 -0
- package/dist/frameworks/nest-route.js +58 -0
- package/dist/frameworks/nest-route.js.map +1 -0
- package/dist/frameworks/nest.d.ts +16 -0
- package/dist/frameworks/nest.d.ts.map +1 -0
- package/dist/frameworks/nest.js +73 -0
- package/dist/frameworks/nest.js.map +1 -0
- package/dist/frameworks/node-server.d.ts +3 -0
- package/dist/frameworks/node-server.d.ts.map +1 -1
- package/dist/frameworks/node-server.js +1 -1
- package/dist/frameworks/node-server.js.map +1 -1
- package/dist/graphql/document.d.ts +13 -0
- package/dist/graphql/document.d.ts.map +1 -0
- package/dist/graphql/document.js +62 -0
- package/dist/graphql/document.js.map +1 -0
- package/dist/graphql/index.d.ts +11 -0
- package/dist/graphql/index.d.ts.map +1 -0
- package/dist/graphql/index.js +83 -0
- package/dist/graphql/index.js.map +1 -0
- package/dist/graphql/operation.d.ts +37 -0
- package/dist/graphql/operation.d.ts.map +1 -0
- package/dist/graphql/operation.js +58 -0
- package/dist/graphql/operation.js.map +1 -0
- package/dist/graphql/resolvers.d.ts +5 -0
- package/dist/graphql/resolvers.d.ts.map +1 -0
- package/dist/graphql/resolvers.js +79 -0
- package/dist/graphql/resolvers.js.map +1 -0
- package/dist/graphql/shared.d.ts +14 -0
- package/dist/graphql/shared.d.ts.map +1 -0
- package/dist/graphql/shared.js +21 -0
- package/dist/graphql/shared.js.map +1 -0
- package/dist/http-client.d.ts +8 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +132 -0
- package/dist/http-client.js.map +1 -0
- package/dist/hub-connect.d.ts +2 -0
- package/dist/hub-connect.d.ts.map +1 -1
- package/dist/hub-connect.js +3 -1
- package/dist/hub-connect.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/info.d.ts +2 -0
- package/dist/info.d.ts.map +1 -1
- package/dist/info.js +1 -1
- package/dist/info.js.map +1 -1
- package/dist/kit.d.ts +3 -1
- package/dist/kit.d.ts.map +1 -1
- package/dist/kit.js +1 -0
- package/dist/kit.js.map +1 -1
- package/dist/logger.d.ts +4 -4
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +11 -7
- package/dist/logger.js.map +1 -1
- package/dist/logs/bunyan.d.ts +1 -1
- package/dist/logs/bunyan.d.ts.map +1 -1
- package/dist/logs/bunyan.js +2 -3
- package/dist/logs/bunyan.js.map +1 -1
- package/dist/logs/consola.d.ts +1 -1
- package/dist/logs/consola.d.ts.map +1 -1
- package/dist/logs/consola.js +1 -1
- package/dist/logs/consola.js.map +1 -1
- package/dist/logs/console.d.ts +1 -1
- package/dist/logs/console.d.ts.map +1 -1
- package/dist/logs/console.js +5 -3
- package/dist/logs/console.js.map +1 -1
- package/dist/logs/otel.d.ts.map +1 -1
- package/dist/logs/otel.js +1 -3
- package/dist/logs/otel.js.map +1 -1
- package/dist/logs/pino.d.ts +1 -1
- package/dist/logs/pino.d.ts.map +1 -1
- package/dist/logs/pino.js +2 -3
- package/dist/logs/pino.js.map +1 -1
- package/dist/logs/winston.d.ts +1 -1
- package/dist/logs/winston.d.ts.map +1 -1
- package/dist/logs/winston.js +2 -3
- package/dist/logs/winston.js.map +1 -1
- package/dist/loose-logs.d.ts +13 -0
- package/dist/loose-logs.d.ts.map +1 -0
- package/dist/loose-logs.js +21 -0
- package/dist/loose-logs.js.map +1 -0
- package/dist/mcp-find.d.ts.map +1 -1
- package/dist/mcp-find.js +40 -8
- package/dist/mcp-find.js.map +1 -1
- package/dist/mcp-memory.d.ts +7 -0
- package/dist/mcp-memory.d.ts.map +1 -0
- package/dist/mcp-memory.js +10 -0
- package/dist/mcp-memory.js.map +1 -0
- package/dist/mcp-overview.d.ts +5 -0
- package/dist/mcp-overview.d.ts.map +1 -0
- package/dist/mcp-overview.js +71 -0
- package/dist/mcp-overview.js.map +1 -0
- package/dist/mcp-page.d.ts +28 -0
- package/dist/mcp-page.d.ts.map +1 -0
- package/dist/mcp-page.js +77 -0
- package/dist/mcp-page.js.map +1 -0
- package/dist/mcp-problems.d.ts +5 -0
- package/dist/mcp-problems.d.ts.map +1 -0
- package/dist/mcp-problems.js +56 -0
- package/dist/mcp-problems.js.map +1 -0
- package/dist/mcp-projects.d.ts.map +1 -1
- package/dist/mcp-projects.js +7 -2
- package/dist/mcp-projects.js.map +1 -1
- package/dist/mcp-search.d.ts.map +1 -1
- package/dist/mcp-search.js +9 -5
- package/dist/mcp-search.js.map +1 -1
- package/dist/mcp-shared.d.ts +37 -1
- package/dist/mcp-shared.d.ts.map +1 -1
- package/dist/mcp-shared.js +3 -0
- package/dist/mcp-shared.js.map +1 -1
- package/dist/mcp-store.d.ts +2 -2
- package/dist/mcp-store.d.ts.map +1 -1
- package/dist/mcp-store.js +6 -5
- package/dist/mcp-store.js.map +1 -1
- package/dist/mcp-tags.d.ts +8 -0
- package/dist/mcp-tags.d.ts.map +1 -0
- package/dist/mcp-tags.js +22 -0
- package/dist/mcp-tags.js.map +1 -0
- package/dist/mcp-traffic.d.ts +5 -0
- package/dist/mcp-traffic.d.ts.map +1 -0
- package/dist/mcp-traffic.js +87 -0
- package/dist/mcp-traffic.js.map +1 -0
- package/dist/mcp.d.ts +4 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +14 -3
- package/dist/mcp.js.map +1 -1
- package/dist/messaging/bullmq.d.ts +4 -0
- package/dist/messaging/bullmq.d.ts.map +1 -0
- package/dist/messaging/bullmq.js +137 -0
- package/dist/messaging/bullmq.js.map +1 -0
- package/dist/messaging/shared.d.ts +10 -4
- package/dist/messaging/shared.d.ts.map +1 -1
- package/dist/messaging/shared.js +13 -4
- package/dist/messaging/shared.js.map +1 -1
- package/dist/messaging/sqs-message.d.ts +35 -0
- package/dist/messaging/sqs-message.d.ts.map +1 -0
- package/dist/messaging/sqs-message.js +66 -0
- package/dist/messaging/sqs-message.js.map +1 -0
- package/dist/messaging/sqs.d.ts +4 -0
- package/dist/messaging/sqs.d.ts.map +1 -0
- package/dist/messaging/sqs.js +104 -0
- package/dist/messaging/sqs.js.map +1 -0
- package/dist/processor.d.ts +2 -1
- package/dist/processor.d.ts.map +1 -1
- package/dist/processor.js +8 -3
- package/dist/processor.js.map +1 -1
- package/dist/request-capture.d.ts.map +1 -1
- package/dist/request-capture.js +2 -1
- package/dist/request-capture.js.map +1 -1
- package/dist/request-naming.d.ts +8 -0
- package/dist/request-naming.d.ts.map +1 -0
- package/dist/request-naming.js +29 -0
- package/dist/request-naming.js.map +1 -0
- package/dist/sampling.d.ts.map +1 -1
- package/dist/sampling.js +2 -2
- package/dist/sampling.js.map +1 -1
- package/dist/search-api.d.ts +4 -3
- package/dist/search-api.d.ts.map +1 -1
- package/dist/search-api.js +8 -7
- package/dist/search-api.js.map +1 -1
- package/dist/sourcemaps.d.ts +15 -0
- package/dist/sourcemaps.d.ts.map +1 -0
- package/dist/sourcemaps.js +68 -0
- package/dist/sourcemaps.js.map +1 -0
- package/dist/spans.d.ts +3 -0
- package/dist/spans.d.ts.map +1 -1
- package/dist/spans.js +9 -1
- package/dist/spans.js.map +1 -1
- package/dist/store-entries.d.ts +34 -0
- package/dist/store-entries.d.ts.map +1 -0
- package/dist/store-entries.js +70 -0
- package/dist/store-entries.js.map +1 -0
- package/dist/store.d.ts +4 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +19 -22
- package/dist/store.js.map +1 -1
- package/dist/tags-api.d.ts +9 -0
- package/dist/tags-api.d.ts.map +1 -0
- package/dist/tags-api.js +16 -0
- package/dist/tags-api.js.map +1 -0
- package/dist/tracing.d.ts +6 -0
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +11 -7
- package/dist/tracing.js.map +1 -1
- package/dist/types.d.ts +16 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +3 -2
- package/dist/ui.js.map +1 -1
- package/dist/wizelens.d.ts +3 -1
- package/dist/wizelens.d.ts.map +1 -1
- package/dist/wizelens.js +28 -12
- package/dist/wizelens.js.map +1 -1
- package/package.json +14 -4
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { subscribe } from "node:diagnostics_channel";
|
|
2
|
+
import { trace } from "@opentelemetry/api";
|
|
3
|
+
import { patchMethod } from "../adapters/registry.js";
|
|
4
|
+
import { keepHeaders } from "../frameworks/koa.js";
|
|
5
|
+
import { nextIgnore } from "../frameworks/next.js";
|
|
6
|
+
import { preciseProvider } from "../precise.js";
|
|
7
|
+
import { requestSpan } from "../request-capture.js";
|
|
8
|
+
import { markRouted, watchRoute } from "../route-timing.js";
|
|
9
|
+
import { skipped } from "./config.js";
|
|
10
|
+
import { hookHono } from "./hono.js";
|
|
11
|
+
import { hookNest } from "./nest.js";
|
|
12
|
+
import { beforeFirstRequest, ignorePaths, recordRequestError, setRouteOf, startedAtOf, watchExpressRoutes } from "./http.js";
|
|
13
|
+
import { onLoad } from "./module-hooks.js";
|
|
14
|
+
import { currentOwner } from "./owner.js";
|
|
15
|
+
/** Express 4 and 5 (the router package): errors passed to `next(err)`, and the ones nobody handled. */
|
|
16
|
+
function hookExpress() {
|
|
17
|
+
const layer = (name) => (Layer) => {
|
|
18
|
+
watchExpressRoutes();
|
|
19
|
+
patchMethod(Layer.prototype, name, (original) => function (err, req, ...rest) {
|
|
20
|
+
recordRequestError(req, err);
|
|
21
|
+
return original.call(this, err, req, ...rest);
|
|
22
|
+
}, "auto-error");
|
|
23
|
+
};
|
|
24
|
+
onLoad(/\/node_modules\/router\/lib\/layer\.js$/, layer("handleError"));
|
|
25
|
+
onLoad(/\/node_modules\/express\/lib\/router\/layer\.js$/, layer("handle_error"));
|
|
26
|
+
onLoad(/\/node_modules\/finalhandler\/index\.js$/, (finalhandler) => {
|
|
27
|
+
if (typeof finalhandler !== "function")
|
|
28
|
+
return undefined;
|
|
29
|
+
const wrapped = function (req, ...rest) {
|
|
30
|
+
const done = finalhandler.call(this, req, ...rest);
|
|
31
|
+
return function (err) {
|
|
32
|
+
if (err)
|
|
33
|
+
recordRequestError(req, err);
|
|
34
|
+
return done.call(this, err);
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
return Object.assign(wrapped, finalhandler);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/** Koa: the @koa/router route, and errors (keeping the WizeLens headers Koa would remove). */
|
|
41
|
+
function hookKoa() {
|
|
42
|
+
onLoad(/\/node_modules\/koa\/lib\/application\.js$/, (App) => {
|
|
43
|
+
patchMethod(App.prototype, "createContext", (original) => function (...args) {
|
|
44
|
+
const ctx = original.apply(this, args);
|
|
45
|
+
setRouteOf(ctx.req, () => (typeof ctx._matchedRoute === "string" ? ctx._matchedRoute : undefined));
|
|
46
|
+
const span = requestSpan(ctx.req);
|
|
47
|
+
const startedAt = startedAtOf(ctx.req);
|
|
48
|
+
if (span && startedAt !== undefined)
|
|
49
|
+
watchRoute(ctx, "_matchedRoute", span, startedAt);
|
|
50
|
+
return ctx;
|
|
51
|
+
}, "auto-koa");
|
|
52
|
+
});
|
|
53
|
+
onLoad(/\/node_modules\/koa\/lib\/context\.js$/, (proto) => {
|
|
54
|
+
patchMethod(proto, "onerror", (original) => function (err) {
|
|
55
|
+
if (err && this.req) {
|
|
56
|
+
recordRequestError(this.req, err);
|
|
57
|
+
if (currentOwner()?.auto)
|
|
58
|
+
keepHeaders(err, this.res);
|
|
59
|
+
}
|
|
60
|
+
return original.call(this, err);
|
|
61
|
+
}, "auto-koa");
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function addFastifyHooks(app) {
|
|
65
|
+
app.addHook("onRequest", (request, _reply, done) => {
|
|
66
|
+
setRouteOf(request.raw, () => request.routeOptions?.url);
|
|
67
|
+
done();
|
|
68
|
+
});
|
|
69
|
+
app.addHook("preHandler", (request, _reply, done) => {
|
|
70
|
+
const span = requestSpan(request.raw);
|
|
71
|
+
const startedAt = startedAtOf(request.raw);
|
|
72
|
+
if (span && startedAt !== undefined)
|
|
73
|
+
markRouted(span, startedAt);
|
|
74
|
+
done();
|
|
75
|
+
});
|
|
76
|
+
app.addHook("onError", (request, _reply, error, done) => {
|
|
77
|
+
recordRequestError(request.raw, error);
|
|
78
|
+
done();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** Fastify announces every new instance on a diagnostics channel, before the app adds its routes. */
|
|
82
|
+
function hookFastify() {
|
|
83
|
+
subscribe("fastify.initialization", (message) => {
|
|
84
|
+
const app = message.fastify;
|
|
85
|
+
if (app && typeof app.addHook === "function")
|
|
86
|
+
addFastifyHooks(app);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/** Next.js: skip its build files, and give its own spans (render, route handlers, fetch) to WizeLens. */
|
|
90
|
+
function hookNext() {
|
|
91
|
+
onLoad(/\/node_modules\/next\/dist\/server\/(next|next-server|lib\/start-server)\.js$/, () => {
|
|
92
|
+
ignorePaths(nextIgnore);
|
|
93
|
+
// At the first request, so an OpenTelemetry SDK the app registers in instrumentation.ts keeps its place.
|
|
94
|
+
beforeFirstRequest((owner) => void trace.setGlobalTracerProvider(preciseProvider(owner.parts.provider)));
|
|
95
|
+
return undefined;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
const FRAMEWORKS = [
|
|
99
|
+
["express", hookExpress],
|
|
100
|
+
["koa", hookKoa],
|
|
101
|
+
["fastify", hookFastify],
|
|
102
|
+
["hono", hookHono],
|
|
103
|
+
["next", hookNext],
|
|
104
|
+
["nest", hookNest],
|
|
105
|
+
];
|
|
106
|
+
/** Hook every framework the add-on supports, except the ones listed in WIZELENS_AUTO_SKIP. */
|
|
107
|
+
export function hookFrameworks() {
|
|
108
|
+
for (const [name, hook] of FRAMEWORKS)
|
|
109
|
+
if (!skipped(name))
|
|
110
|
+
hook();
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=frameworks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/auto/frameworks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Tracer } from "@opentelemetry/api";
|
|
2
|
+
import type { WizeLens } from "../types.js";
|
|
3
|
+
/** A tracer that starts each span on the owner's tracer, or a no-op one when WizeLens is off. */
|
|
4
|
+
export declare const autoTracer: Tracer;
|
|
5
|
+
/** The instance the auto hooks hand to the adapters. Every read goes to the current owner. */
|
|
6
|
+
export declare const autoHandle: WizeLens;
|
|
7
|
+
//# sourceMappingURL=handle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../src/auto/handle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,MAAM,EAAuB,MAAM,oBAAoB,CAAC;AAQ3G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAS5C,iGAAiG;AACjG,eAAO,MAAM,UAAU,EAAE,MAGxB,CAAC;AAkCF,8FAA8F;AAC9F,eAAO,MAAM,UAAU,EAAE,QAEvB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { context, ProxyTracerProvider, trace } from "@opentelemetry/api";
|
|
2
|
+
import { W3CTraceContextPropagator } from "@opentelemetry/core";
|
|
3
|
+
import { DEFAULT_BASE_PATH } from "@wizeworks/lens-core";
|
|
4
|
+
import { registerParts } from "../adapters/registry.js";
|
|
5
|
+
import { disabledWizeLens } from "../disabled.js";
|
|
6
|
+
import { currentOwner } from "./owner.js";
|
|
7
|
+
// Adapters keep the instance they patch with, so they get this handle: it points at whoever owns the data now.
|
|
8
|
+
const NOOP_TRACER = new ProxyTracerProvider().getTracer("@wizeworks/lens-node");
|
|
9
|
+
const tracerNow = () => currentOwner()?.parts.capture.tracer ?? NOOP_TRACER;
|
|
10
|
+
/** A tracer that starts each span on the owner's tracer, or a no-op one when WizeLens is off. */
|
|
11
|
+
export const autoTracer = {
|
|
12
|
+
startSpan: (name, options, ctx) => tracerNow().startSpan(name, options, ctx),
|
|
13
|
+
startActiveSpan: ((...args) => tracerNow().startActiveSpan(...args)),
|
|
14
|
+
};
|
|
15
|
+
const provider = { getTracer: () => autoTracer };
|
|
16
|
+
const fallbackCapture = {
|
|
17
|
+
tracer: NOOP_TRACER,
|
|
18
|
+
basePath: DEFAULT_BASE_PATH,
|
|
19
|
+
publicEndpoint: undefined,
|
|
20
|
+
selfEndpoints: new Set(),
|
|
21
|
+
w3c: new W3CTraceContextPropagator(),
|
|
22
|
+
captureResponseBody: false,
|
|
23
|
+
handler: async () => false,
|
|
24
|
+
};
|
|
25
|
+
const capture = new Proxy(fallbackCapture, {
|
|
26
|
+
get: (fallback, key) => (key === "tracer" ? autoTracer : Reflect.get(currentOwner()?.parts.capture ?? fallback, key)),
|
|
27
|
+
});
|
|
28
|
+
// A query outside any request starts nothing, so a script that only runs migrations never starts WizeLens.
|
|
29
|
+
const dbSpans = (info, sql, params) => {
|
|
30
|
+
if (info.requireParent && !trace.getSpan(context.active()))
|
|
31
|
+
return null;
|
|
32
|
+
return currentOwner()?.parts.dbSpans(info, sql, params) ?? null;
|
|
33
|
+
};
|
|
34
|
+
// Log lines go to the auto instance only. A code install hooks its loggers itself.
|
|
35
|
+
const logs = (entry) => {
|
|
36
|
+
const owner = currentOwner();
|
|
37
|
+
if (owner?.auto)
|
|
38
|
+
owner.parts.logs(entry);
|
|
39
|
+
};
|
|
40
|
+
const parts = { dbSpans, capture, logs, metrics: null, provider };
|
|
41
|
+
const disabled = disabledWizeLens({ serviceName: "auto" }, DEFAULT_BASE_PATH);
|
|
42
|
+
/** The instance the auto hooks hand to the adapters. Every read goes to the current owner. */
|
|
43
|
+
export const autoHandle = new Proxy(disabled, {
|
|
44
|
+
get: (off, key) => (key === "tracer" ? autoTracer : Reflect.get(currentOwner()?.wizelens ?? off, key)),
|
|
45
|
+
});
|
|
46
|
+
registerParts(autoHandle, parts);
|
|
47
|
+
//# sourceMappingURL=handle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handle.js","sourceRoot":"","sources":["../../src/auto/handle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../src/auto/hono.ts"],"names":[],"mappings":"AAqCA,2EAA2E;AAC3E,wBAAgB,QAAQ,IAAI,IAAI,CAQ/B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { honoRoute } from "../frameworks/hono.js";
|
|
2
|
+
import { esmPatch } from "./esm-source.js";
|
|
3
|
+
import { recordRequestError, setRouteOf } from "./http.js";
|
|
4
|
+
import { onEsm, onEsmBinding, onLoad } from "./module-hooks.js";
|
|
5
|
+
const MARK = Symbol.for("wizeworks.wizelens.auto.hono");
|
|
6
|
+
const routers = new WeakSet();
|
|
7
|
+
/** Names the route and records the error. Hono only sets `c.error` for requests that pass a middleware, so this is one. */
|
|
8
|
+
async function autoMiddleware(c, next) {
|
|
9
|
+
const incoming = c.env?.incoming;
|
|
10
|
+
if (incoming)
|
|
11
|
+
setRouteOf(incoming, () => honoRoute(c));
|
|
12
|
+
await next();
|
|
13
|
+
if (incoming && c.error)
|
|
14
|
+
recordRequestError(incoming, c.error);
|
|
15
|
+
}
|
|
16
|
+
/** The Hono class, with the middleware added first on every app that has its own router. */
|
|
17
|
+
function honoClass(Base) {
|
|
18
|
+
if (typeof Base !== "function" || Base[MARK])
|
|
19
|
+
return undefined;
|
|
20
|
+
class Hono extends Base {
|
|
21
|
+
constructor(...args) {
|
|
22
|
+
super(...args);
|
|
23
|
+
if (!this.router || routers.has(this.router) || typeof this.use !== "function")
|
|
24
|
+
return;
|
|
25
|
+
routers.add(this.router);
|
|
26
|
+
this.use(autoMiddleware);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
Object.defineProperty(Hono, MARK, { value: true });
|
|
30
|
+
return Hono;
|
|
31
|
+
}
|
|
32
|
+
/** Hono on @hono/node-server, from its CommonJS or its ES module build. */
|
|
33
|
+
export function hookHono() {
|
|
34
|
+
onLoad(/\/node_modules\/hono\/dist\/cjs\/hono\.js$/, (exports) => {
|
|
35
|
+
const e = exports;
|
|
36
|
+
const next = honoClass(e.Hono);
|
|
37
|
+
if (next)
|
|
38
|
+
e.Hono = next;
|
|
39
|
+
});
|
|
40
|
+
onEsm(esmPatch(/\/node_modules\/hono\/dist\/hono\.js$/, "hono", "Hono", true));
|
|
41
|
+
onEsmBinding("hono", honoClass);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=hono.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hono.js","sourceRoot":"","sources":["../../src/auto/hono.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQhE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AACxD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;AAEtC,2HAA2H;AAC3H,KAAK,UAAU,cAAc,CAAC,CAAkB,EAAE,IAAc;IAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC;IACjC,IAAI,QAAQ;QAAE,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,EAAE,CAAC;IACb,IAAI,QAAQ,IAAI,CAAC,CAAC,KAAK;QAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,4FAA4F;AAC5F,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,OAAO,IAAI,KAAK,UAAU,IAAK,IAA2C,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvG,MAAM,IAAK,SAAS,IAA6C;QAC/D,YAAY,GAAG,IAAe;YAC5B,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU;gBAAE,OAAO;YACvF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;KACF;IACD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,QAAQ;IACtB,MAAM,CAAC,4CAA4C,EAAE,CAAC,OAAO,EAAE,EAAE;QAC/D,MAAM,CAAC,GAAG,OAA6B,CAAC;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI;YAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,QAAQ,CAAC,uCAAuC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type IncomingMessage } from "node:http";
|
|
2
|
+
import { type IgnorePath } from "../frameworks/node-server.js";
|
|
3
|
+
import { type Owner } from "./owner.js";
|
|
4
|
+
/** When the auto install started this request, in performance.now() time. */
|
|
5
|
+
export declare const startedAtOf: (req: IncomingMessage) => number | undefined;
|
|
6
|
+
/** How a framework names the route of this request ("/orders/:id"), read when the response is done. */
|
|
7
|
+
export declare const setRouteOf: (req: IncomingMessage, fn: () => string | undefined) => void;
|
|
8
|
+
/** Put a framework's error on the request span, once, when the auto install owns the request. */
|
|
9
|
+
export declare function recordRequestError(req: IncomingMessage, err: unknown): void;
|
|
10
|
+
/** Skip these paths, for example the Next.js build files. */
|
|
11
|
+
export declare const ignorePaths: (ignore: IgnorePath) => void;
|
|
12
|
+
/** Express is loaded: watch `req.route` for the routing time. */
|
|
13
|
+
export declare const watchExpressRoutes: () => void;
|
|
14
|
+
/** Run `fn` once, before the first request the auto install captures. */
|
|
15
|
+
export declare const beforeFirstRequest: (fn: (owner: Owner) => void) => void;
|
|
16
|
+
/** Trace every request of every node:http and node:https server, and start WizeLens when a server starts listening. */
|
|
17
|
+
export declare function hookServers(): void;
|
|
18
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/auto/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,WAAW,CAAC;AAK5F,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK5E,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAQtD,6EAA6E;AAC7E,eAAO,MAAM,WAAW,QAAS,eAAe,KAAG,MAAM,GAAG,SAAqC,CAAC;AAElG,uGAAuG;AACvG,eAAO,MAAM,UAAU,QAAS,eAAe,MAAM,MAAM,MAAM,GAAG,SAAS,KAAG,IAA6C,CAAC;AAE9H,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAM3E;AAID,6DAA6D;AAC7D,eAAO,MAAM,WAAW,WAAY,UAAU,KAAG,IAAuC,CAAC;AAEzF,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,QAAO,IAAsC,CAAC;AAE7E,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,OAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,KAAG,IAAyC,CAAC;AA4B1G,uHAAuH;AACvH,wBAAgB,WAAW,IAAI,IAAI,CAwBlC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Server as HttpServer } from "node:http";
|
|
2
|
+
import { Server as HttpsServer } from "node:https";
|
|
3
|
+
import { context } from "@opentelemetry/api";
|
|
4
|
+
import { patchMethod } from "../adapters/registry.js";
|
|
5
|
+
import { expressRoute } from "../capture.js";
|
|
6
|
+
import { attributeOf } from "../frameworks/node-server.js";
|
|
7
|
+
import { captureRequest, isOwnPath, isUntraced, pathOf, requestSpan, serveOwnPath, withoutTracing } from "../request-capture.js";
|
|
8
|
+
import { watchRoute } from "../route-timing.js";
|
|
9
|
+
import { recordOn } from "../spans.js";
|
|
10
|
+
import { currentOwner } from "./owner.js";
|
|
11
|
+
const ROUTE_OF = Symbol.for("wizeworks.wizelens.auto.route");
|
|
12
|
+
const RECORDED = Symbol.for("wizeworks.wizelens.auto.recorded");
|
|
13
|
+
const STARTED = Symbol.for("wizeworks.wizelens.auto.started");
|
|
14
|
+
/** When the auto install started this request, in performance.now() time. */
|
|
15
|
+
export const startedAtOf = (req) => req[STARTED];
|
|
16
|
+
/** How a framework names the route of this request ("/orders/:id"), read when the response is done. */
|
|
17
|
+
export const setRouteOf = (req, fn) => void (req[ROUTE_OF] = fn);
|
|
18
|
+
/** Put a framework's error on the request span, once, when the auto install owns the request. */
|
|
19
|
+
export function recordRequestError(req, err) {
|
|
20
|
+
const span = requestSpan(req);
|
|
21
|
+
const marked = req;
|
|
22
|
+
if (!span || err === undefined || marked[RECORDED] === err || currentOwner()?.auto !== true)
|
|
23
|
+
return;
|
|
24
|
+
marked[RECORDED] = err;
|
|
25
|
+
recordOn(span, err);
|
|
26
|
+
}
|
|
27
|
+
const settings = { ignore: (() => false), express: false, firstRequest: null };
|
|
28
|
+
/** Skip these paths, for example the Next.js build files. */
|
|
29
|
+
export const ignorePaths = (ignore) => void (settings.ignore = ignore);
|
|
30
|
+
/** Express is loaded: watch `req.route` for the routing time. */
|
|
31
|
+
export const watchExpressRoutes = () => void (settings.express = true);
|
|
32
|
+
/** Run `fn` once, before the first request the auto install captures. */
|
|
33
|
+
export const beforeFirstRequest = (fn) => void (settings.firstRequest = fn);
|
|
34
|
+
function routeOf(req, span) {
|
|
35
|
+
return () => attributeOf(span(), "http.route") ?? expressRoute(req) ?? req[ROUTE_OF]?.();
|
|
36
|
+
}
|
|
37
|
+
function capture(owner, req, res, emit) {
|
|
38
|
+
const d = owner.parts.capture;
|
|
39
|
+
const rawUrl = req.url ?? "/";
|
|
40
|
+
const path = pathOf(rawUrl);
|
|
41
|
+
if (isOwnPath(d, path))
|
|
42
|
+
return (void serveOwnPath(d, req, res), true);
|
|
43
|
+
if (isUntraced(req) || settings.ignore(path))
|
|
44
|
+
return withoutTracing(emit);
|
|
45
|
+
const captured = captureRequest(d, req, res, rawUrl, routeOf(req, () => captured.span));
|
|
46
|
+
req[STARTED] = captured.startedAt;
|
|
47
|
+
if (settings.express)
|
|
48
|
+
watchRoute(req, "route", captured.span, captured.startedAt);
|
|
49
|
+
return context.with(captured.ctx, emit);
|
|
50
|
+
}
|
|
51
|
+
function onRequest(req, res, emit) {
|
|
52
|
+
if (requestSpan(req))
|
|
53
|
+
return emit();
|
|
54
|
+
const owner = currentOwner();
|
|
55
|
+
if (!owner?.auto)
|
|
56
|
+
return emit();
|
|
57
|
+
const first = settings.firstRequest;
|
|
58
|
+
settings.firstRequest = null;
|
|
59
|
+
first?.(owner);
|
|
60
|
+
return capture(owner, req, res, emit);
|
|
61
|
+
}
|
|
62
|
+
/** Trace every request of every node:http and node:https server, and start WizeLens when a server starts listening. */
|
|
63
|
+
export function hookServers() {
|
|
64
|
+
for (const proto of [HttpServer.prototype, HttpsServer.prototype]) {
|
|
65
|
+
patchMethod(proto, "emit", (emit) => function wizelensAutoEmit(...args) {
|
|
66
|
+
const [event, req, res] = args;
|
|
67
|
+
if (event !== "request")
|
|
68
|
+
return emit.apply(this, args);
|
|
69
|
+
return onRequest(req, res, () => emit.apply(this, args));
|
|
70
|
+
}, "auto-server-emit");
|
|
71
|
+
patchMethod(proto, "listen", (listen) => function wizelensAutoListen(...args) {
|
|
72
|
+
currentOwner();
|
|
73
|
+
return listen.apply(this, args);
|
|
74
|
+
}, "auto-server-listen");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/auto/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** What the auto install did: "on", or why it stayed off. */
|
|
2
|
+
export type AutoResult = "on" | "off" | "worker" | "taken";
|
|
3
|
+
/** Install WizeLens with no app code: hook servers, frameworks, and libraries as the app loads them. Driven by variables only. */
|
|
4
|
+
export declare function installAuto(env?: Record<string, string | undefined>): AutoResult;
|
|
5
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/auto/install.ts"],"names":[],"mappings":"AAUA,6DAA6D;AAC7D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3D,kIAAkI;AAClI,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,UAAU,CAW7F"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isMainThread } from "node:worker_threads";
|
|
2
|
+
import { isEnabled } from "../mode.js";
|
|
3
|
+
import { autoOptions } from "./config.js";
|
|
4
|
+
import { hookFrameworks } from "./frameworks.js";
|
|
5
|
+
import { hookServers } from "./http.js";
|
|
6
|
+
import { hookLibraries } from "./libraries.js";
|
|
7
|
+
import { installModuleHooks } from "./module-hooks.js";
|
|
8
|
+
import { configureAuto, handOver } from "./owner.js";
|
|
9
|
+
import { claimAuto } from "./state.js";
|
|
10
|
+
/** Install WizeLens with no app code: hook servers, frameworks, and libraries as the app loads them. Driven by variables only. */
|
|
11
|
+
export function installAuto(env = process.env) {
|
|
12
|
+
if (!isMainThread)
|
|
13
|
+
return "worker";
|
|
14
|
+
const options = autoOptions(env);
|
|
15
|
+
if (!isEnabled(options))
|
|
16
|
+
return "off";
|
|
17
|
+
if (!claimAuto({ codeInstall: handOver }))
|
|
18
|
+
return "taken";
|
|
19
|
+
configureAuto(options);
|
|
20
|
+
hookServers();
|
|
21
|
+
hookFrameworks();
|
|
22
|
+
hookLibraries();
|
|
23
|
+
installModuleHooks();
|
|
24
|
+
return "on";
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/auto/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAKvC,kIAAkI;AAClI,MAAM,UAAU,WAAW,CAAC,GAAG,GAAuC,OAAO,CAAC,GAAG;IAC/E,IAAI,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IACnC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1D,aAAa,CAAC,OAAO,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC;IACd,cAAc,EAAE,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,kBAAkB,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libraries.d.ts","sourceRoot":"","sources":["../../src/auto/libraries.ts"],"names":[],"mappings":"AAiHA,gIAAgI;AAChI,wBAAgB,aAAa,IAAI,IAAI,CAEpC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { patchMethod } from "../adapters/registry.js";
|
|
2
|
+
import { instrumentElasticsearch } from "../adapters/elasticsearch.js";
|
|
3
|
+
import { instrumentIoRedis } from "../adapters/ioredis.js";
|
|
4
|
+
import { instrumentMongoDb } from "../adapters/mongodb.js";
|
|
5
|
+
import { instrumentMysql2 } from "../adapters/mysql2.js";
|
|
6
|
+
import { instrumentPg } from "../adapters/pg.js";
|
|
7
|
+
import { instrumentRedis } from "../adapters/redis.js";
|
|
8
|
+
import { instrumentGraphql, traceGraphqlFunction } from "../graphql/index.js";
|
|
9
|
+
import { instrumentGrpc } from "../grpc/index.js";
|
|
10
|
+
import { instrumentBunyan } from "../logs/bunyan.js";
|
|
11
|
+
import { instrumentPino } from "../logs/pino.js";
|
|
12
|
+
import { instrumentWinston } from "../logs/winston.js";
|
|
13
|
+
import { instrumentAmqplib } from "../messaging/amqplib.js";
|
|
14
|
+
import { instrumentBullMq } from "../messaging/bullmq.js";
|
|
15
|
+
import { instrumentKafkaJs } from "../messaging/kafkajs.js";
|
|
16
|
+
import { instrumentServiceBus } from "../messaging/servicebus.js";
|
|
17
|
+
import { instrumentSqs } from "../messaging/sqs.js";
|
|
18
|
+
import { skipped } from "./config.js";
|
|
19
|
+
import { esmPatch } from "./esm-source.js";
|
|
20
|
+
import { autoHandle } from "./handle.js";
|
|
21
|
+
import { onEsm, onEsmBinding, onLoad } from "./module-hooks.js";
|
|
22
|
+
import { hookPrisma } from "./prisma.js";
|
|
23
|
+
import { hookSqlite } from "./sqlite.js";
|
|
24
|
+
const nm = (path) => new RegExp(`/node_modules/${path.replaceAll(".", "\\.")}$`);
|
|
25
|
+
/** A factory that returns a logger: hook each logger it makes. */
|
|
26
|
+
function wrapFactory(factory, hook) {
|
|
27
|
+
if (typeof factory !== "function")
|
|
28
|
+
return undefined;
|
|
29
|
+
const wrapped = function (...args) {
|
|
30
|
+
const made = factory.apply(this, args);
|
|
31
|
+
hook(made);
|
|
32
|
+
return made;
|
|
33
|
+
};
|
|
34
|
+
return Object.assign(wrapped, factory, { default: wrapped, pino: wrapped });
|
|
35
|
+
}
|
|
36
|
+
/** Patch `name` on an object so each logger it makes is hooked. */
|
|
37
|
+
function patchFactory(target, name, hook) {
|
|
38
|
+
patchMethod(target, name, (original) => function (...args) {
|
|
39
|
+
const made = original.apply(this, args);
|
|
40
|
+
hook(made);
|
|
41
|
+
return made;
|
|
42
|
+
}, "auto-logger");
|
|
43
|
+
}
|
|
44
|
+
const DATABASES = [
|
|
45
|
+
["pg", () => onLoad(nm("pg/lib/index.js"), (pg) => void instrumentPg(autoHandle, pg))],
|
|
46
|
+
["mysql2", () => {
|
|
47
|
+
onLoad(nm("mysql2/lib/connection.js"), (Connection) => void instrumentMysql2(autoHandle, { Connection }));
|
|
48
|
+
onLoad(nm("mysql2/lib/pool.js"), (Connection) => void instrumentMysql2(autoHandle, { Connection }));
|
|
49
|
+
}],
|
|
50
|
+
["sqlite", hookSqlite],
|
|
51
|
+
["prisma", hookPrisma],
|
|
52
|
+
["ioredis", () => onLoad(nm("ioredis/built/index.js"), (mod) => void instrumentIoRedis(autoHandle, mod))],
|
|
53
|
+
["redis", () => onLoad(nm("@redis/client/dist/lib/client/index.js"), (mod) => void instrumentRedis(autoHandle, mod))],
|
|
54
|
+
["mongodb", () => onLoad(nm("mongodb/lib/collection.js"), (mod) => void instrumentMongoDb(autoHandle, mod))],
|
|
55
|
+
["elasticsearch", () => onLoad(nm("@elastic/transport/lib/Transport.js"), (mod) => void instrumentElasticsearch(autoHandle, mod))],
|
|
56
|
+
];
|
|
57
|
+
/** BullMQ's ES build keeps each class in its own file. */
|
|
58
|
+
const BULLMQ_ESM = [["queue", "Queue"], ["worker", "Worker"], ["flow-producer", "FlowProducer"]];
|
|
59
|
+
const MESSAGING = [
|
|
60
|
+
["amqplib", () => onLoad(nm("amqplib/channel_api.js"), (mod) => void instrumentAmqplib(autoHandle, mod))],
|
|
61
|
+
["kafkajs", () => onLoad(nm("kafkajs/index.js"), (mod) => void instrumentKafkaJs(autoHandle, mod))],
|
|
62
|
+
["servicebus", () => {
|
|
63
|
+
onLoad(nm("@azure/service-bus/dist/commonjs/index.js"), (mod) => void instrumentServiceBus(autoHandle, mod));
|
|
64
|
+
onEsm(esmPatch(nm("@azure/service-bus/dist/esm/serviceBusClient.js"), "servicebus", "ServiceBusClient"));
|
|
65
|
+
onEsmBinding("servicebus", (ServiceBusClient) => void instrumentServiceBus(autoHandle, { ServiceBusClient }));
|
|
66
|
+
}],
|
|
67
|
+
["bullmq", () => {
|
|
68
|
+
onLoad(nm("bullmq/dist/cjs/index.js"), (mod) => void instrumentBullMq(autoHandle, mod));
|
|
69
|
+
for (const [file, binding] of BULLMQ_ESM) {
|
|
70
|
+
onEsm(esmPatch(nm(`bullmq/dist/esm/classes/${file}.js`), `bullmq-${file}`, binding));
|
|
71
|
+
onEsmBinding(`bullmq-${file}`, (value) => void instrumentBullMq(autoHandle, { [binding]: value }));
|
|
72
|
+
}
|
|
73
|
+
}],
|
|
74
|
+
["sqs", () => {
|
|
75
|
+
onLoad(nm("@aws-sdk/client-sqs/dist-cjs/index.js"), (mod) => void instrumentSqs(autoHandle, mod));
|
|
76
|
+
onEsm(esmPatch(nm("@aws-sdk/client-sqs/dist-es/SQSClient.js"), "sqs", "SQSClient"));
|
|
77
|
+
onEsmBinding("sqs", (SQSClient) => void instrumentSqs(autoHandle, { SQSClient }));
|
|
78
|
+
}],
|
|
79
|
+
["grpc", () => onLoad(nm("@grpc/grpc-js/build/src/index.js"), (grpc) => void instrumentGrpc(autoHandle, grpc))],
|
|
80
|
+
];
|
|
81
|
+
// The CommonJS file, the ES module file, and the function that runs operations: graphql-js, and GraphQL Yoga's executor.
|
|
82
|
+
const GRAPHQL_FILES = [
|
|
83
|
+
["graphql/execution/execute.js", "graphql/execution/execute.mjs", "execute"],
|
|
84
|
+
["graphql/subscription/subscribe.js", "graphql/subscription/subscribe.mjs", "subscribe"],
|
|
85
|
+
["@graphql-tools/executor/cjs/execution/normalizedExecutor.js", "@graphql-tools/executor/esm/execution/normalizedExecutor.js", "normalizedExecutor"],
|
|
86
|
+
];
|
|
87
|
+
/** GraphQL: CommonJS builds are patched on load; ES module builds hand over the function. */
|
|
88
|
+
function hookGraphql() {
|
|
89
|
+
for (const [cjs, esm, binding] of GRAPHQL_FILES) {
|
|
90
|
+
const id = `graphql-${binding}`;
|
|
91
|
+
onLoad(nm(cjs), (mod) => void instrumentGraphql(autoHandle, mod));
|
|
92
|
+
onEsm(esmPatch(nm(esm), id, binding, true));
|
|
93
|
+
onEsmBinding(id, (fn) => traceGraphqlFunction(autoHandle, fn));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
const APIS = [["graphql", hookGraphql]];
|
|
97
|
+
const LOGGERS = [
|
|
98
|
+
["pino", () => onLoad(nm("pino/pino.js"), (pino) => wrapFactory(pino, (logger) => instrumentPino(autoHandle, logger)))],
|
|
99
|
+
["winston", () => onLoad(nm("winston/lib/winston.js"), (w) => patchFactory(w, "createLogger", (logger) => instrumentWinston(autoHandle, logger)))],
|
|
100
|
+
["bunyan", () => onLoad(nm("bunyan/lib/bunyan.js"), (b) => patchFactory(b, "createLogger", (logger) => instrumentBunyan(autoHandle, logger)))],
|
|
101
|
+
];
|
|
102
|
+
/** Hook every database, queue, RPC, GraphQL, and logging library the add-on supports, except the ones in WIZELENS_AUTO_SKIP. */
|
|
103
|
+
export function hookLibraries() {
|
|
104
|
+
for (const [name, hook] of [...DATABASES, ...MESSAGING, ...APIS, ...LOGGERS])
|
|
105
|
+
if (!skipped(name))
|
|
106
|
+
hook();
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=libraries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libraries.js","sourceRoot":"","sources":["../../src/auto/libraries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type EsmPatch } from "./esm-source.js";
|
|
2
|
+
/** Called with a module's exports right after it ran. A returned value replaces the exports. */
|
|
3
|
+
export type OnLoad = (exports: unknown, file: string) => unknown;
|
|
4
|
+
/** Install the module hooks. Call once, after every onLoad, onBuiltin, and onEsm call. */
|
|
5
|
+
export declare function installModuleHooks(): void;
|
|
6
|
+
/** Run `fn` with a binding an ES module patch hands over (see replaceBinding). A returned value replaces it. */
|
|
7
|
+
export declare const onEsmBinding: (id: string, fn: (value: unknown) => unknown) => void;
|
|
8
|
+
/** Run `fn` with the exports of every CommonJS file whose path (forward slashes) matches. */
|
|
9
|
+
export declare const onLoad: (pattern: RegExp, fn: OnLoad) => void;
|
|
10
|
+
/** Run `fn` once with a built-in module ("sqlite"), when the app first loads it. */
|
|
11
|
+
export declare const onBuiltin: (name: string, fn: OnLoad) => void;
|
|
12
|
+
/** Add `code` to the end of every ES module whose URL matches. */
|
|
13
|
+
export declare const onEsm: (patch: EsmPatch) => void;
|
|
14
|
+
//# sourceMappingURL=module-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-hooks.d.ts","sourceRoot":"","sources":["../../src/auto/module-hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAmB,MAAM,iBAAiB,CAAC;AAEjE,gGAAgG;AAChG,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AA6FjE,0FAA0F;AAC1F,wBAAgB,kBAAkB,IAAI,IAAI,CAIzC;AAED,gHAAgH;AAChH,eAAO,MAAM,YAAY,OAAQ,MAAM,MAAM,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,KAAG,IAAiC,CAAC;AAE7G,6FAA6F;AAC7F,eAAO,MAAM,MAAM,YAAa,MAAM,MAAM,MAAM,KAAG,IAAsC,CAAC;AAE5F,oFAAoF;AACpF,eAAO,MAAM,SAAS,SAAU,MAAM,MAAM,MAAM,KAAG,IAAmC,CAAC;AAEzF,kEAAkE;AAClE,eAAO,MAAM,KAAK,UAAW,QAAQ,KAAG,IAA4B,CAAC"}
|