@tracepanel/js 0.5.0 → 0.6.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 +221 -12
- package/dist/agent.d.ts +5 -1
- package/dist/agent.js +12 -3
- package/dist/agent.js.map +1 -1
- package/dist/aws.d.ts +27 -0
- package/dist/aws.js +368 -0
- package/dist/aws.js.map +1 -0
- package/dist/bun.js +6 -82
- package/dist/bun.js.map +1 -1
- package/dist/calls.d.ts +5 -0
- package/dist/calls.js +7 -0
- package/dist/calls.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/explain.d.ts +5 -0
- package/dist/explain.js +56 -7
- package/dist/explain.js.map +1 -1
- package/dist/fastify.d.ts +2 -0
- package/dist/fastify.js +100 -0
- package/dist/fastify.js.map +1 -0
- package/dist/frameworks.js +3 -0
- package/dist/frameworks.js.map +1 -1
- package/dist/hono.d.ts +2 -0
- package/dist/hono.js +63 -0
- package/dist/hono.js.map +1 -0
- package/dist/koa.d.ts +2 -0
- package/dist/koa.js +119 -0
- package/dist/koa.js.map +1 -0
- package/dist/llm.d.ts +20 -0
- package/dist/llm.js +632 -0
- package/dist/llm.js.map +1 -0
- package/dist/memory.d.ts +69 -0
- package/dist/memory.js +203 -0
- package/dist/memory.js.map +1 -0
- package/dist/model.d.ts +22 -1
- package/dist/model.js.map +1 -1
- package/dist/next.js +4 -4
- package/dist/next.js.map +1 -1
- package/dist/processor.d.ts +40 -4
- package/dist/processor.js +156 -29
- package/dist/processor.js.map +1 -1
- package/dist/profile.d.ts +34 -8
- package/dist/profile.js +98 -13
- package/dist/profile.js.map +1 -1
- package/dist/queries.d.ts +20 -0
- package/dist/queries.js +75 -0
- package/dist/queries.js.map +1 -0
- package/dist/respond.d.ts +12 -0
- package/dist/respond.js +85 -0
- package/dist/respond.js.map +1 -0
- package/dist/setup.js +22 -5
- package/dist/setup.js.map +1 -1
- package/dist/sql.d.ts +1 -0
- package/dist/sql.js +11 -2
- package/dist/sql.js.map +1 -1
- package/dist/sqlite.d.ts +13 -0
- package/dist/sqlite.js +291 -0
- package/dist/sqlite.js.map +1 -0
- package/dist/stack.d.ts +3 -1
- package/dist/stack.js +30 -6
- package/dist/stack.js.map +1 -1
- package/dist/testing.d.ts +128 -0
- package/dist/testing.js +362 -0
- package/dist/testing.js.map +1 -0
- package/dist/transactions.d.ts +11 -1
- package/dist/transactions.js +70 -34
- package/dist/transactions.js.map +1 -1
- package/dist/view.d.ts +17 -0
- package/dist/view.js +71 -0
- package/dist/view.js.map +1 -0
- package/dist/vitest-setup.d.ts +1 -0
- package/dist/vitest-setup.js +63 -0
- package/dist/vitest-setup.js.map +1 -0
- package/dist/vitest.d.ts +57 -0
- package/dist/vitest.js +130 -0
- package/dist/vitest.js.map +1 -0
- package/dist/widget.d.ts +16 -0
- package/dist/widget.js +33 -1
- package/dist/widget.js.map +1 -1
- package/package.json +69 -4
package/dist/aws.js
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
// AWS: every call the app makes through the AWS SDK's v3 clients (@aws-sdk/client-*), as the Python SDK records
|
|
2
|
+
// boto3's: `S3 PutObject bucket/key`.
|
|
3
|
+
//
|
|
4
|
+
// OpenTelemetry's AWS SDK instrumentation starts a span for each command a client sends, where every client's
|
|
5
|
+
// middleware stack resolves it, with the service and operation (`rpc.*`) and the region. Its hooks here add what the
|
|
6
|
+
// agent analyzes the call by, from the command's input and output: the call is the operation the app asked for, its
|
|
7
|
+
// HTTP requests (retries included) part of it, not calls of their own.
|
|
8
|
+
//
|
|
9
|
+
// Its kind says what the call does for the app:
|
|
10
|
+
// - S3: a `storage` span, `storage.system` s3 with the bucket and key as its path.
|
|
11
|
+
// - DynamoDB: a `dynamodb` span, a datastore's command. Its input's shape is `db.statement`, with the item's values
|
|
12
|
+
// as `?`, and the values are `db.params` and `db.params_hash`: the agent tells a loop's GetItem per key (N+1) from
|
|
13
|
+
// the same GetItem again (duplicates) by them. The Document client's commands (@aws-sdk/lib-dynamodb) are the same.
|
|
14
|
+
// - SQS's SendMessage and SNS's Publish (their batches too): a message sent, `sqs` and `messaging` spans.
|
|
15
|
+
// - Any other call (SQS's ReceiveMessage, Lambda, Secrets Manager…): an `rpc` span, `rpc.system` aws-api.
|
|
16
|
+
import { createHash } from "node:crypto";
|
|
17
|
+
import { AwsInstrumentation } from "@opentelemetry/instrumentation-aws-sdk";
|
|
18
|
+
/** The kind of the span a call to AWS is: what it does for the app. */
|
|
19
|
+
export const KIND = "tracepanel.aws.kind";
|
|
20
|
+
/** What a call works on (`bucket/key`, a table, a queue): the end of its span's name. */
|
|
21
|
+
export const TARGET = "tracepanel.aws.target";
|
|
22
|
+
const SENDS = { SQS: ["SendMessage", "SendMessageBatch"], SNS: ["Publish", "PublishBatch"] };
|
|
23
|
+
// Where a DynamoDB request carries the app's values (an item, a key, an expression's values): these are `?`.
|
|
24
|
+
const VALUES = new Set(["Item", "Key", "Keys", "ExclusiveStartKey", "ExpressionAttributeValues", "Parameters"]);
|
|
25
|
+
// A DynamoDB attribute value as the low-level client sends it: {"S": "alice"}.
|
|
26
|
+
const TYPES = new Set(["S", "N", "B", "BOOL", "NULL", "SS", "NS", "BS", "L", "M"]);
|
|
27
|
+
const MAX_STATEMENT = 2000;
|
|
28
|
+
const MAX_PARAMS = 200;
|
|
29
|
+
/**
|
|
30
|
+
* AWS's ids of its services, as botocore and the agent write them: the instrumentation takes their spaces out
|
|
31
|
+
* (`SecretsManager`). Any other id has none.
|
|
32
|
+
*/
|
|
33
|
+
const SPACED = [
|
|
34
|
+
"API Gateway",
|
|
35
|
+
"Bedrock Runtime",
|
|
36
|
+
"CloudWatch Logs",
|
|
37
|
+
"Cognito Identity Provider",
|
|
38
|
+
"DynamoDB Streams",
|
|
39
|
+
"RDS Data",
|
|
40
|
+
"Route 53",
|
|
41
|
+
"SageMaker Runtime",
|
|
42
|
+
"Secrets Manager",
|
|
43
|
+
];
|
|
44
|
+
const SERVICE_IDS = new Map(SPACED.map((id) => [id.replace(/\s+/g, ""), id]));
|
|
45
|
+
/** A service's id as AWS writes it in its SDKs: `S3`, `DynamoDB`, `Secrets Manager`. */
|
|
46
|
+
export function serviceId(name) {
|
|
47
|
+
return SERVICE_IDS.get(name) ?? name;
|
|
48
|
+
}
|
|
49
|
+
function text(value) {
|
|
50
|
+
return typeof value === "string" && value !== "" ? value : undefined;
|
|
51
|
+
}
|
|
52
|
+
function int(value) {
|
|
53
|
+
return typeof value === "number" && Number.isInteger(value) ? value : undefined;
|
|
54
|
+
}
|
|
55
|
+
function isObject(value) {
|
|
56
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) && !ArrayBuffer.isView(value);
|
|
57
|
+
}
|
|
58
|
+
function scalar(value) {
|
|
59
|
+
if (value === null || value === undefined)
|
|
60
|
+
return null;
|
|
61
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
62
|
+
return value;
|
|
63
|
+
if (ArrayBuffer.isView(value))
|
|
64
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString("base64");
|
|
65
|
+
return String(value);
|
|
66
|
+
}
|
|
67
|
+
// ---------- S3 ----------
|
|
68
|
+
function size(body) {
|
|
69
|
+
if (typeof body === "string")
|
|
70
|
+
return Buffer.byteLength(body);
|
|
71
|
+
if (ArrayBuffer.isView(body))
|
|
72
|
+
return body.byteLength;
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
function copySource(source) {
|
|
76
|
+
// The SDK's CopySource is `bucket/key`, URL-encoded.
|
|
77
|
+
const given = text(source);
|
|
78
|
+
if (!given)
|
|
79
|
+
return undefined;
|
|
80
|
+
try {
|
|
81
|
+
return decodeURIComponent(given);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return given;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function s3(operation, input) {
|
|
88
|
+
const bucket = text(input.Bucket);
|
|
89
|
+
const key = text(input.Key);
|
|
90
|
+
// A listing's path is the prefix it lists.
|
|
91
|
+
const inside = key ?? text(input.Prefix);
|
|
92
|
+
const path = bucket && inside ? `${bucket}/${inside}` : bucket;
|
|
93
|
+
return [
|
|
94
|
+
path,
|
|
95
|
+
{
|
|
96
|
+
"storage.backend": "@aws-sdk/client-s3.S3",
|
|
97
|
+
"storage.system": "s3",
|
|
98
|
+
"storage.op": operation,
|
|
99
|
+
"storage.path": path,
|
|
100
|
+
"aws.s3.bucket": bucket,
|
|
101
|
+
"aws.s3.key": key,
|
|
102
|
+
"aws.s3.copy_source": copySource(input.CopySource),
|
|
103
|
+
"aws.s3.upload_id": text(input.UploadId),
|
|
104
|
+
"aws.s3.part_number": int(input.PartNumber),
|
|
105
|
+
"storage.bytes": size(input.Body) ?? int(input.ContentLength),
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
}
|
|
109
|
+
// ---------- DynamoDB ----------
|
|
110
|
+
/** The tables a request works on: its TableName, a batch's RequestItems, a transaction's items. */
|
|
111
|
+
function tables(input) {
|
|
112
|
+
const table = text(input.TableName);
|
|
113
|
+
if (table)
|
|
114
|
+
return [table];
|
|
115
|
+
if (isObject(input.RequestItems))
|
|
116
|
+
return Object.keys(input.RequestItems);
|
|
117
|
+
const found = [];
|
|
118
|
+
for (const item of Array.isArray(input.TransactItems) ? input.TransactItems : []) {
|
|
119
|
+
for (const action of isObject(item) ? Object.values(item) : []) {
|
|
120
|
+
const name = isObject(action) ? text(action.TableName) : undefined;
|
|
121
|
+
if (name && !found.includes(name))
|
|
122
|
+
found.push(name);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return found;
|
|
126
|
+
}
|
|
127
|
+
/** An item's or a key's values as `?` (collected in order), its attribute names kept. */
|
|
128
|
+
function hide(value, values) {
|
|
129
|
+
if (isObject(value) && !(value instanceof Set)) {
|
|
130
|
+
const names = Object.keys(value);
|
|
131
|
+
if (names.length === 1 && TYPES.has(names[0])) {
|
|
132
|
+
values.push(scalar(value[names[0]]));
|
|
133
|
+
return "?";
|
|
134
|
+
}
|
|
135
|
+
return Object.fromEntries(names.map((name) => [name, hide(value[name], values)]));
|
|
136
|
+
}
|
|
137
|
+
const items = value instanceof Set ? [...value] : value;
|
|
138
|
+
if (Array.isArray(items)) {
|
|
139
|
+
if (items.every((item) => !isObject(item) && !Array.isArray(item))) {
|
|
140
|
+
values.push(...items.map(scalar));
|
|
141
|
+
return ["?"];
|
|
142
|
+
}
|
|
143
|
+
return items.map((item) => hide(item, values));
|
|
144
|
+
}
|
|
145
|
+
values.push(scalar(value));
|
|
146
|
+
return "?";
|
|
147
|
+
}
|
|
148
|
+
function shape(value, values) {
|
|
149
|
+
if (isObject(value)) {
|
|
150
|
+
return Object.fromEntries(Object.entries(value)
|
|
151
|
+
.filter(([, item]) => item !== undefined)
|
|
152
|
+
.map(([name, item]) => [name, VALUES.has(name) ? hide(item, values) : shape(item, values)]));
|
|
153
|
+
}
|
|
154
|
+
if (Array.isArray(value))
|
|
155
|
+
return value.map((item) => shape(item, values));
|
|
156
|
+
return value;
|
|
157
|
+
}
|
|
158
|
+
/** JSON as the Python SDK writes a request's shape: `{"TableName": "users", "Key": {"id": "?"}}`. */
|
|
159
|
+
export function spacedJson(value) {
|
|
160
|
+
if (Array.isArray(value))
|
|
161
|
+
return `[${value.map(spacedJson).join(", ")}]`;
|
|
162
|
+
if (isObject(value)) {
|
|
163
|
+
return `{${Object.entries(value)
|
|
164
|
+
.map(([name, item]) => `${JSON.stringify(name)}: ${spacedJson(item)}`)
|
|
165
|
+
.join(", ")}}`;
|
|
166
|
+
}
|
|
167
|
+
return JSON.stringify(value === undefined ? null : scalar(value)) ?? "null";
|
|
168
|
+
}
|
|
169
|
+
function dynamodb(operation, input) {
|
|
170
|
+
const names = tables(input);
|
|
171
|
+
const values = [];
|
|
172
|
+
const statement = spacedJson(shape(input, values));
|
|
173
|
+
return [
|
|
174
|
+
names.join(", ") || undefined,
|
|
175
|
+
{
|
|
176
|
+
"db.system": "dynamodb",
|
|
177
|
+
"db.operation": operation,
|
|
178
|
+
"db.collection.name": names.length === 1 ? names[0] : undefined,
|
|
179
|
+
"aws.dynamodb.table_names": names.length ? names : undefined,
|
|
180
|
+
"aws.dynamodb.index_name": text(input.IndexName),
|
|
181
|
+
"db.statement": statement.length <= MAX_STATEMENT ? statement : `${statement.slice(0, MAX_STATEMENT - 1)}…`,
|
|
182
|
+
"db.params_hash": createHash("sha1").update(JSON.stringify(values)).digest("hex").slice(0, 12),
|
|
183
|
+
"db.params": values.length && values.length <= MAX_PARAMS ? values : undefined,
|
|
184
|
+
},
|
|
185
|
+
];
|
|
186
|
+
}
|
|
187
|
+
// ---------- SQS, SNS ----------
|
|
188
|
+
/** A queue's name: the last part of its URL. */
|
|
189
|
+
function queue(url) {
|
|
190
|
+
return text(url)?.replace(/\/+$/, "").split("/").at(-1) || undefined;
|
|
191
|
+
}
|
|
192
|
+
function message(service, operation, input) {
|
|
193
|
+
const entries = input.Entries ?? input.PublishBatchRequestEntries;
|
|
194
|
+
const attrs = {
|
|
195
|
+
"messaging.system": service === "SQS" ? "aws_sqs" : "aws.sns",
|
|
196
|
+
"messaging.operation": "publish",
|
|
197
|
+
};
|
|
198
|
+
let destination;
|
|
199
|
+
if (service === "SQS") {
|
|
200
|
+
destination = queue(input.QueueUrl);
|
|
201
|
+
attrs["aws.sqs.queue.url"] = text(input.QueueUrl);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
const arn = text(input.TopicArn) ?? text(input.TargetArn);
|
|
205
|
+
destination = arn ? arn.split(":").at(-1) : input.PhoneNumber ? "phone_number" : undefined;
|
|
206
|
+
attrs["aws.sns.topic.arn"] = text(input.TopicArn);
|
|
207
|
+
}
|
|
208
|
+
attrs["messaging.destination.name"] = destination;
|
|
209
|
+
attrs["messaging.operation.name"] = operation;
|
|
210
|
+
attrs["messaging.batch.message_count"] = Array.isArray(entries) ? entries.length : undefined;
|
|
211
|
+
return [destination, attrs];
|
|
212
|
+
}
|
|
213
|
+
// ---------- every call ----------
|
|
214
|
+
function defined(attrs) {
|
|
215
|
+
return Object.fromEntries(Object.entries(attrs).filter(([, value]) => value !== undefined && value !== null));
|
|
216
|
+
}
|
|
217
|
+
/** The span's kind and what the call works on, from the command the app sent. */
|
|
218
|
+
export function described(service, operation, input) {
|
|
219
|
+
let kind = "rpc";
|
|
220
|
+
let found = [undefined, {}];
|
|
221
|
+
if (service === "S3") {
|
|
222
|
+
kind = "storage";
|
|
223
|
+
found = s3(operation, input);
|
|
224
|
+
}
|
|
225
|
+
else if (service === "DynamoDB") {
|
|
226
|
+
kind = "dynamodb";
|
|
227
|
+
found = dynamodb(operation, input);
|
|
228
|
+
}
|
|
229
|
+
else if (SENDS[service]?.includes(operation)) {
|
|
230
|
+
kind = service === "SQS" ? "sqs" : "messaging";
|
|
231
|
+
found = message(service, operation, input);
|
|
232
|
+
}
|
|
233
|
+
const [target, attrs] = found;
|
|
234
|
+
return defined({ [KIND]: kind, [TARGET]: target, ...attrs });
|
|
235
|
+
}
|
|
236
|
+
/** How many times the SDK retried the call before its answer. */
|
|
237
|
+
function retries(metadata) {
|
|
238
|
+
const attempts = int(metadata?.attempts);
|
|
239
|
+
return attempts !== undefined && attempts > 1 ? { "aws.retry_attempts": attempts - 1 } : {};
|
|
240
|
+
}
|
|
241
|
+
/** What the operation returned: an object's size, the items a query got, the message's id. */
|
|
242
|
+
export function answered(service, data) {
|
|
243
|
+
if (!data)
|
|
244
|
+
return {};
|
|
245
|
+
const attrs = retries(data.$metadata);
|
|
246
|
+
if (service === "S3" && int(data.ContentLength) !== undefined)
|
|
247
|
+
attrs["storage.bytes"] = data.ContentLength;
|
|
248
|
+
if (service === "DynamoDB") {
|
|
249
|
+
const count = int(data.Count) ?? ("Item" in data && data.Item !== undefined ? 1 : undefined);
|
|
250
|
+
if (count !== undefined)
|
|
251
|
+
attrs["db.response.returned_rows"] = count;
|
|
252
|
+
}
|
|
253
|
+
if (service === "SQS" || service === "SNS") {
|
|
254
|
+
const id = text(data.MessageId);
|
|
255
|
+
if (id)
|
|
256
|
+
attrs["messaging.message.id"] = id;
|
|
257
|
+
}
|
|
258
|
+
return attrs;
|
|
259
|
+
}
|
|
260
|
+
/** A failed call's error code (`NoSuchKey`, `ConditionalCheckFailedException`), and the SDK's retries. */
|
|
261
|
+
export function failed(error) {
|
|
262
|
+
const given = (error ?? {});
|
|
263
|
+
const code = text(given.Code) ?? text(given.name) ?? error?.constructor?.name ?? "Error";
|
|
264
|
+
// AWS's id of the request, which the instrumentation reads from a successful answer only.
|
|
265
|
+
const id = text(given.$metadata?.requestId);
|
|
266
|
+
return { "error.type": code, ...retries(given.$metadata), ...(id ? { "aws.request.id": id } : {}) };
|
|
267
|
+
}
|
|
268
|
+
function set(span, attrs) {
|
|
269
|
+
span.setAttributes(defined(attrs));
|
|
270
|
+
}
|
|
271
|
+
/** OpenTelemetry's AWS SDK instrumentation, its spans carrying what the agent analyzes a call by. */
|
|
272
|
+
export function awsInstrumentation() {
|
|
273
|
+
return new AwsInstrumentation({
|
|
274
|
+
// A call's HTTP requests (one per attempt) are the call, not outgoing calls of their own.
|
|
275
|
+
suppressInternalInstrumentation: true,
|
|
276
|
+
preRequestHook: (span, { request }) => {
|
|
277
|
+
const { serviceName, commandName, commandInput } = request;
|
|
278
|
+
set(span, described(serviceId(serviceName), commandName, commandInput ?? {}));
|
|
279
|
+
},
|
|
280
|
+
responseHook: (span, { response }) => {
|
|
281
|
+
const { data, request } = response;
|
|
282
|
+
set(span, answered(serviceId(request.serviceName), data));
|
|
283
|
+
},
|
|
284
|
+
exceptionHook: (span, _request, error) => set(span, failed(error)),
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
// The attributes of a call to AWS, as the Python SDK records them: the ones every call has, and its kind's.
|
|
288
|
+
const EVERY = [
|
|
289
|
+
"rpc.system",
|
|
290
|
+
"rpc.service",
|
|
291
|
+
"rpc.method",
|
|
292
|
+
"cloud.region",
|
|
293
|
+
"server.address",
|
|
294
|
+
"server.port",
|
|
295
|
+
"http.response.status_code",
|
|
296
|
+
"aws.retry_attempts",
|
|
297
|
+
"error.type",
|
|
298
|
+
];
|
|
299
|
+
const OF_KIND = {
|
|
300
|
+
storage: [
|
|
301
|
+
"storage.backend",
|
|
302
|
+
"storage.system",
|
|
303
|
+
"storage.op",
|
|
304
|
+
"storage.path",
|
|
305
|
+
"aws.s3.bucket",
|
|
306
|
+
"aws.s3.key",
|
|
307
|
+
"aws.s3.copy_source",
|
|
308
|
+
"aws.s3.upload_id",
|
|
309
|
+
"aws.s3.part_number",
|
|
310
|
+
"storage.bytes",
|
|
311
|
+
],
|
|
312
|
+
dynamodb: [
|
|
313
|
+
"db.system",
|
|
314
|
+
"db.operation",
|
|
315
|
+
"db.collection.name",
|
|
316
|
+
"aws.dynamodb.table_names",
|
|
317
|
+
"aws.dynamodb.index_name",
|
|
318
|
+
"db.statement",
|
|
319
|
+
"db.params_hash",
|
|
320
|
+
"db.params",
|
|
321
|
+
"db.response.returned_rows",
|
|
322
|
+
],
|
|
323
|
+
sqs: [
|
|
324
|
+
"messaging.system",
|
|
325
|
+
"messaging.operation",
|
|
326
|
+
"messaging.destination.name",
|
|
327
|
+
"messaging.operation.name",
|
|
328
|
+
"messaging.batch.message_count",
|
|
329
|
+
"aws.sqs.queue.url",
|
|
330
|
+
"messaging.message.id",
|
|
331
|
+
],
|
|
332
|
+
messaging: [
|
|
333
|
+
"messaging.system",
|
|
334
|
+
"messaging.operation",
|
|
335
|
+
"messaging.destination.name",
|
|
336
|
+
"messaging.operation.name",
|
|
337
|
+
"messaging.batch.message_count",
|
|
338
|
+
"aws.sns.topic.arn",
|
|
339
|
+
"messaging.message.id",
|
|
340
|
+
],
|
|
341
|
+
};
|
|
342
|
+
export function isAws(attrs) {
|
|
343
|
+
return attrs["rpc.system"] === "aws-api";
|
|
344
|
+
}
|
|
345
|
+
/** A call to AWS as the agent reads it: `S3 GetObject avatars/1.png`, its kind and its attributes. */
|
|
346
|
+
export function awsCall(attrs) {
|
|
347
|
+
const service = serviceId(String(attrs["rpc.service"] ?? "AWS"));
|
|
348
|
+
const operation = String(attrs["rpc.method"] ?? "");
|
|
349
|
+
const kind = String(attrs[KIND] ?? "rpc");
|
|
350
|
+
const target = attrs[TARGET];
|
|
351
|
+
const own = {};
|
|
352
|
+
for (const key of [...EVERY, ...(OF_KIND[kind] ?? [])]) {
|
|
353
|
+
if (attrs[key] !== undefined)
|
|
354
|
+
own[key] = attrs[key];
|
|
355
|
+
}
|
|
356
|
+
own["rpc.service"] = service;
|
|
357
|
+
// The instrumentation's names of AWS's request ids, as the Python SDK names them.
|
|
358
|
+
if (attrs["aws.request.id"] !== undefined)
|
|
359
|
+
own["aws.request_id"] = attrs["aws.request.id"];
|
|
360
|
+
if (attrs["aws.request.extended_id"] !== undefined)
|
|
361
|
+
own["aws.extended_request_id"] = attrs["aws.request.extended_id"];
|
|
362
|
+
return {
|
|
363
|
+
kind,
|
|
364
|
+
name: [service, operation, typeof target === "string" ? target : undefined].filter(Boolean).join(" "),
|
|
365
|
+
attrs: own,
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=aws.js.map
|
package/dist/aws.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../src/aws.ts"],"names":[],"mappings":"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"}
|
package/dist/bun.js
CHANGED
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
import { propagation, ROOT_CONTEXT, SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
|
13
13
|
import { tapRequest } from "./body.js";
|
|
14
14
|
import { ATTRIBUTE as PROFILE, requested } from "./profile.js";
|
|
15
|
-
import {
|
|
15
|
+
import { MARKED, marked } from "./respond.js";
|
|
16
16
|
import { start } from "./setup.js";
|
|
17
|
-
import { exposedHeaders, inject, Stream, streamablePage } from "./widget.js";
|
|
18
17
|
const tracer = trace.getTracer("tracepanel-bun");
|
|
19
18
|
/** What Bun answers an error with when the app has no `error` handler of its own. */
|
|
20
19
|
function internalError(error) {
|
|
@@ -32,12 +31,13 @@ export function withTracepanel(handler, route, onError) {
|
|
|
32
31
|
return handler;
|
|
33
32
|
const traced = (request, server) => {
|
|
34
33
|
const url = new URL(request.url);
|
|
34
|
+
const asked = requested(Object.fromEntries(request.headers));
|
|
35
35
|
const attributes = {
|
|
36
36
|
"http.request.method": request.method,
|
|
37
37
|
"url.path": url.pathname,
|
|
38
38
|
"http.target": url.pathname + url.search,
|
|
39
39
|
...(route ? { "http.route": route } : {}),
|
|
40
|
-
...(
|
|
40
|
+
...(asked ? { [PROFILE]: asked } : {}),
|
|
41
41
|
};
|
|
42
42
|
const startedMs = performance.now();
|
|
43
43
|
// The caller's traceparent, as Node's http instrumentation reads it: the agent links the caller's trace to this.
|
|
@@ -47,6 +47,8 @@ export function withTracepanel(handler, route, onError) {
|
|
|
47
47
|
});
|
|
48
48
|
const options = { kind: SpanKind.SERVER, attributes };
|
|
49
49
|
const body = tracepanel.config.captureRequest ? tapRequest(request) : undefined;
|
|
50
|
+
// Its response is marked here: Hono's middleware under this leaves it.
|
|
51
|
+
request[MARKED] = true;
|
|
50
52
|
return tracer.startActiveSpan(`${request.method}`, options, caller, async (span) => {
|
|
51
53
|
tracepanel.processor.setFramework("Bun.serve");
|
|
52
54
|
// A page streamed through the widget's script: its request ends with the body.
|
|
@@ -64,7 +66,7 @@ export function withTracepanel(handler, route, onError) {
|
|
|
64
66
|
span.setAttribute("http.response.status_code", response.status);
|
|
65
67
|
if (response.status >= 500)
|
|
66
68
|
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
67
|
-
const answer = await marked(tracepanel, request, response, startedMs, body);
|
|
69
|
+
const answer = await marked(tracepanel, request, response, startedMs, "Bun.serve", body);
|
|
68
70
|
streamed = answer.ended;
|
|
69
71
|
return answer.response;
|
|
70
72
|
}
|
|
@@ -78,84 +80,6 @@ export function withTracepanel(handler, route, onError) {
|
|
|
78
80
|
};
|
|
79
81
|
return traced;
|
|
80
82
|
}
|
|
81
|
-
/**
|
|
82
|
-
* The trace's headers on the response, and the widget in an HTML page: put into its body as it streams when its size
|
|
83
|
-
* isn't declared, with `ended` settled once that body has gone out.
|
|
84
|
-
*/
|
|
85
|
-
async function marked(tracepanel, request, response, startedMs, body) {
|
|
86
|
-
if (tracepanel.config.captureRequest) {
|
|
87
|
-
tracepanel.processor.setTraceAttrs({
|
|
88
|
-
...requestAttrs(Object.fromEntries(request.headers), new URL(request.url).search),
|
|
89
|
-
...body?.attrs(),
|
|
90
|
-
...responseHeaders(response.headers.entries()),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
const html = (response.headers.get("content-type") ?? "").includes("text/html");
|
|
94
|
-
const page = html && !response.headers.has("content-encoding");
|
|
95
|
-
const marks = tracepanel.badge({
|
|
96
|
-
method: request.method,
|
|
97
|
-
status: response.status,
|
|
98
|
-
startedMs,
|
|
99
|
-
page,
|
|
100
|
-
framework: tracepanel.processor.framework() ?? "Bun.serve",
|
|
101
|
-
});
|
|
102
|
-
if (!marks)
|
|
103
|
-
return { response };
|
|
104
|
-
const headers = new Headers(response.headers);
|
|
105
|
-
for (const [name, value] of Object.entries(marks.headers))
|
|
106
|
-
headers.set(name, value);
|
|
107
|
-
const redirect = redirectCookie(marks.headers["Tracepanel-Id"] ?? "", response.status, Object.fromEntries(request.headers));
|
|
108
|
-
if (redirect)
|
|
109
|
-
headers.append("Set-Cookie", redirect);
|
|
110
|
-
const expose = exposedHeaders(headers.get("access-control-allow-origin") ?? undefined, headers.get("access-control-expose-headers"));
|
|
111
|
-
if (expose)
|
|
112
|
-
headers.set("Access-Control-Expose-Headers", expose);
|
|
113
|
-
const init = { status: response.status, statusText: response.statusText, headers };
|
|
114
|
-
if (!marks.script || !response.body)
|
|
115
|
-
return { response: new Response(response.body, init) };
|
|
116
|
-
if (streamablePage((name) => headers.get(name))) {
|
|
117
|
-
let ended = () => { };
|
|
118
|
-
const done = new Promise((resolve) => (ended = resolve));
|
|
119
|
-
return { response: new Response(through(response.body, new Stream(marks.script), ended), init), ended: done };
|
|
120
|
-
}
|
|
121
|
-
headers.delete("content-length");
|
|
122
|
-
return { response: new Response(inject(await response.text(), marks.script), init) };
|
|
123
|
-
}
|
|
124
|
-
/** A body through the widget's script, piece by piece as the client reads it; `ended` once it is over. */
|
|
125
|
-
function through(body, script, ended) {
|
|
126
|
-
const reader = body.getReader();
|
|
127
|
-
return new ReadableStream({
|
|
128
|
-
async pull(controller) {
|
|
129
|
-
try {
|
|
130
|
-
// Until something goes out: a pull that enqueues nothing is not called again.
|
|
131
|
-
for (;;) {
|
|
132
|
-
const { done, value } = await reader.read();
|
|
133
|
-
if (done) {
|
|
134
|
-
const rest = script.end();
|
|
135
|
-
if (rest.length > 0)
|
|
136
|
-
controller.enqueue(rest);
|
|
137
|
-
controller.close();
|
|
138
|
-
ended();
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const piece = script.feed(value);
|
|
142
|
-
if (piece.length > 0) {
|
|
143
|
-
controller.enqueue(piece);
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
controller.error(error);
|
|
150
|
-
ended();
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
async cancel(reason) {
|
|
154
|
-
ended();
|
|
155
|
-
await reader.cancel(reason);
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
83
|
/** Bun.serve's routes, each handler traced under its pattern: `/api/books/:id`. */
|
|
160
84
|
function tracedRoutes(routes, onError) {
|
|
161
85
|
const traced = {};
|
package/dist/bun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"AAAA,oHAAoH;AACpH,uGAAuG;AACvG,EAAE;AACF,gDAAgD;AAChD,gFAAgF;AAChF,EAAE;AACF,qHAAqH;AACrH,EAAE;AACF,sHAAsH;AACtH,mHAAmH;AACnH,wDAAwD;AAExD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,
|
|
1
|
+
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../src/bun.ts"],"names":[],"mappings":"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"}
|
package/dist/calls.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export declare function redisCall(attrs: Attrs, spanName: string): {
|
|
|
12
12
|
name: string;
|
|
13
13
|
attrs: Attrs;
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* A MongoDB command as its span's statement: JSON, with the Maps the driver makes of what the app wrote as objects
|
|
17
|
+
* (a find's sort, `{ asked: -1 }`, is a Map by then: JSON.stringify alone makes it `{}`).
|
|
18
|
+
*/
|
|
19
|
+
export declare function mongoStatement(command: unknown): string;
|
|
15
20
|
export declare function isMongo(attrs: Attrs): boolean;
|
|
16
21
|
/** A MongoDB command: `find users`, its shape with the values as "?", and a hash of the values (duplicates). */
|
|
17
22
|
export declare function mongoCall(attrs: Attrs, spanName: string): {
|
package/dist/calls.js
CHANGED
|
@@ -80,6 +80,13 @@ export function redisCall(attrs, spanName) {
|
|
|
80
80
|
},
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* A MongoDB command as its span's statement: JSON, with the Maps the driver makes of what the app wrote as objects
|
|
85
|
+
* (a find's sort, `{ asked: -1 }`, is a Map by then: JSON.stringify alone makes it `{}`).
|
|
86
|
+
*/
|
|
87
|
+
export function mongoStatement(command) {
|
|
88
|
+
return JSON.stringify(command, (_key, value) => (value instanceof Map ? Object.fromEntries(value) : value));
|
|
89
|
+
}
|
|
83
90
|
export function isMongo(attrs) {
|
|
84
91
|
return first(attrs, "db.system.name", "db.system") === "mongodb";
|
|
85
92
|
}
|
package/dist/calls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calls.js","sourceRoot":"","sources":["../src/calls.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -26,6 +26,13 @@ export interface Config {
|
|
|
26
26
|
* way.
|
|
27
27
|
*/
|
|
28
28
|
profile: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Tell every profiled trace's memory too (V8's sampling heap profiler), not only a request's that asks with
|
|
31
|
+
* "memory" in the header or cookie: TRACEPANEL_PROFILE_MEMORY=1.
|
|
32
|
+
*/
|
|
33
|
+
profileMemory: boolean;
|
|
34
|
+
/** Put widget.min.js into the app's HTML pages: TRACEPANEL_WIDGET=0 leaves them as they are (the tests' pages). */
|
|
35
|
+
widget: boolean;
|
|
29
36
|
/** Whether profiling is possible at all: TRACEPANEL_PROFILE_ENABLED=0, and nothing profiles. */
|
|
30
37
|
profileEnabled: boolean;
|
|
31
38
|
/** How often a profiled trace is sampled: TRACEPANEL_PROFILE_INTERVAL_MS, each millisecond by default. */
|
package/dist/config.js
CHANGED
|
@@ -53,7 +53,9 @@ export function loadConfig(env = process.env) {
|
|
|
53
53
|
thresholds: thresholds(env),
|
|
54
54
|
captureRequest: on(env.TRACEPANEL_CAPTURE_REQUEST),
|
|
55
55
|
captureLocals: on(env.TRACEPANEL_CAPTURE_LOCALS),
|
|
56
|
+
widget: on(env.TRACEPANEL_WIDGET),
|
|
56
57
|
profile: onlyIf(env.TRACEPANEL_PROFILE),
|
|
58
|
+
profileMemory: onlyIf(env.TRACEPANEL_PROFILE_MEMORY),
|
|
57
59
|
profileEnabled: on(env.TRACEPANEL_PROFILE_ENABLED),
|
|
58
60
|
profileIntervalMs: Math.max(Math.floor(Number(env.TRACEPANEL_PROFILE_INTERVAL_MS)) || 1, 1),
|
|
59
61
|
};
|