raffel 1.1.64 → 1.1.65
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/http.d.ts +3 -0
- package/dist/adapters/http.d.ts.map +1 -1
- package/dist/adapters/http.js +54 -6
- package/dist/adapters/http.js.map +1 -1
- package/dist/http/app.d.ts.map +1 -1
- package/dist/http/app.js +4 -0
- package/dist/http/app.js.map +1 -1
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +1 -0
- package/dist/http/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/server/builder/execution-entrypoint.d.ts.map +1 -1
- package/dist/server/builder/execution-entrypoint.js +2 -0
- package/dist/server/builder/execution-entrypoint.js.map +1 -1
- package/dist/server/builder/execution-http-resources.d.ts.map +1 -1
- package/dist/server/builder/execution-http-resources.js +3 -0
- package/dist/server/builder/execution-http-resources.js.map +1 -1
- package/dist/server/rest-middleware.d.ts +3 -0
- package/dist/server/rest-middleware.d.ts.map +1 -1
- package/dist/server/rest-middleware.js +20 -3
- package/dist/server/rest-middleware.js.map +1 -1
- package/dist/tracing/exporters.d.ts +19 -0
- package/dist/tracing/exporters.d.ts.map +1 -1
- package/dist/tracing/exporters.js +111 -0
- package/dist/tracing/exporters.js.map +1 -1
- package/dist/tracing/http.d.ts +35 -0
- package/dist/tracing/http.d.ts.map +1 -0
- package/dist/tracing/http.js +167 -0
- package/dist/tracing/http.js.map +1 -0
- package/dist/tracing/index.d.ts +4 -2
- package/dist/tracing/index.d.ts.map +1 -1
- package/dist/tracing/index.js +2 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/interceptor.d.ts.map +1 -1
- package/dist/tracing/interceptor.js +20 -0
- package/dist/tracing/interceptor.js.map +1 -1
- package/dist/tracing/span.d.ts.map +1 -1
- package/dist/tracing/span.js +10 -7
- package/dist/tracing/span.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Automatically creates spans for incoming requests.
|
|
5
5
|
*/
|
|
6
|
+
import { applyHttpRouteToSpan } from './http.js';
|
|
6
7
|
/**
|
|
7
8
|
* Create an interceptor that automatically traces requests
|
|
8
9
|
*/
|
|
@@ -35,6 +36,25 @@ export function createTracingInterceptor(tracer) {
|
|
|
35
36
|
spanId: span.context.spanId,
|
|
36
37
|
parentSpanId: parentContext?.spanId,
|
|
37
38
|
};
|
|
39
|
+
if (ctx.logger?.child) {
|
|
40
|
+
ctx.logger = ctx.logger.child({
|
|
41
|
+
trace_id: span.context.traceId,
|
|
42
|
+
span_id: span.context.spanId,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (ctx.http) {
|
|
46
|
+
const method = ctx.http.method.toUpperCase();
|
|
47
|
+
const route = ctx.http.path;
|
|
48
|
+
span.setAttributes({
|
|
49
|
+
'http.request.method': method,
|
|
50
|
+
'url.path': ctx.http.path,
|
|
51
|
+
'http.route': route,
|
|
52
|
+
});
|
|
53
|
+
applyHttpRouteToSpan(span, method, {
|
|
54
|
+
route,
|
|
55
|
+
procedure,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
38
58
|
try {
|
|
39
59
|
const result = await next();
|
|
40
60
|
span.setStatus('ok');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/tracing/interceptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/tracing/interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,IAAI,EAGJ,QAAQ,EAER,cAAc,EAEf,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"span.d.ts","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,IAAI,EAGJ,QAAQ,EAER,cAAc,EAEf,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CA+HrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
|
package/dist/tracing/span.js
CHANGED
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
export function createSpan(options) {
|
|
10
10
|
let name = options.name;
|
|
11
|
-
const
|
|
11
|
+
const startEpochTime = Date.now() * 1000;
|
|
12
|
+
const startMonotonicTime = performance.now();
|
|
12
13
|
let endTime = 0;
|
|
13
14
|
let finished = false;
|
|
14
15
|
const attributes = { ...options.attributes };
|
|
@@ -44,7 +45,7 @@ export function createSpan(options) {
|
|
|
44
45
|
log(message, fields) {
|
|
45
46
|
if (this.isRecording) {
|
|
46
47
|
logs.push({
|
|
47
|
-
timestamp: performance.now() * 1000,
|
|
48
|
+
timestamp: startEpochTime + ((performance.now() - startMonotonicTime) * 1000),
|
|
48
49
|
message,
|
|
49
50
|
fields,
|
|
50
51
|
});
|
|
@@ -68,7 +69,7 @@ export function createSpan(options) {
|
|
|
68
69
|
attributes['error.stack'] = error.stack;
|
|
69
70
|
}
|
|
70
71
|
logs.push({
|
|
71
|
-
timestamp: performance.now() * 1000,
|
|
72
|
+
timestamp: startEpochTime + ((performance.now() - startMonotonicTime) * 1000),
|
|
72
73
|
message: 'Error',
|
|
73
74
|
fields: {
|
|
74
75
|
'error.type': error.name,
|
|
@@ -88,23 +89,25 @@ export function createSpan(options) {
|
|
|
88
89
|
finish() {
|
|
89
90
|
if (!finished) {
|
|
90
91
|
finished = true;
|
|
91
|
-
endTime = performance.now() * 1000;
|
|
92
|
+
endTime = startEpochTime + ((performance.now() - startMonotonicTime) * 1000);
|
|
92
93
|
if (status.code === 'unset') {
|
|
93
94
|
status.code = 'ok';
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
},
|
|
97
98
|
toSpanData() {
|
|
98
|
-
const effectiveEndTime = finished
|
|
99
|
+
const effectiveEndTime = finished
|
|
100
|
+
? endTime
|
|
101
|
+
: startEpochTime + ((performance.now() - startMonotonicTime) * 1000);
|
|
99
102
|
return {
|
|
100
103
|
traceId: options.traceId,
|
|
101
104
|
spanId: options.spanId,
|
|
102
105
|
parentSpanId: options.parentSpanId,
|
|
103
106
|
name,
|
|
104
107
|
kind: options.kind,
|
|
105
|
-
startTime,
|
|
108
|
+
startTime: startEpochTime,
|
|
106
109
|
endTime: effectiveEndTime,
|
|
107
|
-
duration: effectiveEndTime -
|
|
110
|
+
duration: effectiveEndTime - startEpochTime,
|
|
108
111
|
status: { ...status },
|
|
109
112
|
attributes: { ...attributes },
|
|
110
113
|
logs: [...logs],
|
package/dist/tracing/span.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC7C,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"span.js","sourceRoot":"","sources":["../../src/tracing/span.ts"],"names":[],"mappings":"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"}
|