@fougere/observability 0.12.4-alpha.0 → 0.12.6-alpha.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/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/otlp/OtlpExporter.d.ts.map +1 -1
- package/dist/otlp/OtlpExporter.js +30 -5
- package/dist/otlp/OtlpExporter.js.map +1 -1
- package/package.json +9 -9
- package/src/index.ts +6 -0
- package/src/otlp/OtlpExporter.ts +34 -5
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ import { type SpanContext } from './traceparent.js';
|
|
|
5
5
|
* underneath one and has a table. A reader that counts operations has to say which it takes.
|
|
6
6
|
*/
|
|
7
7
|
export type SpanKind = 'operation' | 'statement';
|
|
8
|
+
/** Which end of a hop an operation span stands at — absent when the call stayed in this process. */
|
|
9
|
+
export type Crossing = 'sent' | 'received';
|
|
8
10
|
/** A step that has finished, and what it did. */
|
|
9
11
|
export interface FinishedSpan extends SpanContext {
|
|
10
12
|
parentId: string | undefined;
|
|
@@ -16,6 +18,7 @@ export interface FinishedSpan extends SpanContext {
|
|
|
16
18
|
/** Which frond owned the op — the deployment unit, so the first thing a reader groups by. */
|
|
17
19
|
frond: string | undefined;
|
|
18
20
|
kind: SpanKind;
|
|
21
|
+
crossing: Crossing | undefined;
|
|
19
22
|
entity: string;
|
|
20
23
|
operation: string;
|
|
21
24
|
/** When it started, in epoch milliseconds — an INSTANT, not an offset. */
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAA8C,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiBhG;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjD,iDAAiD;AACjD,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,6FAA6F;IAC7F,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAEpD,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,OAAO;IACtB,oDAAoD;IACpD,UAAU,EAAE,aAAa,CAAC;IAC1B,gHAAgH;IAChH,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CACxD;AAED,qCAAqC;AAErC,0CAA0C;AAC1C,wBAAgB,WAAW,IAAI,WAAW,GAAG,SAAS,CAErD;AAQD,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAKD,kCAAkC;AAClC,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpD;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAOnE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -110,6 +110,7 @@ export function tracing(takers, options = {}) {
|
|
|
110
110
|
callerFrond,
|
|
111
111
|
frond: ctx.frond,
|
|
112
112
|
kind: 'operation',
|
|
113
|
+
crossing: ctx.crosses ? 'sent' : ctx.invocation?.crossed ? 'received' : undefined,
|
|
113
114
|
entity: ctx.entity,
|
|
114
115
|
operation: ctx.operation,
|
|
115
116
|
startedAt,
|
|
@@ -164,6 +165,7 @@ export function tracing(takers, options = {}) {
|
|
|
164
165
|
callerFrond: undefined,
|
|
165
166
|
frond: under.frond,
|
|
166
167
|
kind: 'statement',
|
|
168
|
+
crossing: undefined,
|
|
167
169
|
entity: ran.subject,
|
|
168
170
|
operation: ran.verb,
|
|
169
171
|
startedAt: under.startedAt + Math.max(0, performance.now() - under.start - ran.ms),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtlpExporter.d.ts","sourceRoot":"","sources":["../../src/otlp/OtlpExporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,4CAA4C;IAC5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"OtlpExporter.d.ts","sourceRoot":"","sources":["../../src/otlp/OtlpExporter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,4EAA4E;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,4CAA4C;IAC5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAcD,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CA2BvD"}
|
|
@@ -4,8 +4,9 @@ import { metricsPayload } from '../metrics/Metrics.js';
|
|
|
4
4
|
/** OTLP status codes: 0 unset, 1 ok, 2 error. */
|
|
5
5
|
const OK = 1;
|
|
6
6
|
const ERROR = 2;
|
|
7
|
-
/** OTLP span kinds, of the six only these
|
|
7
|
+
/** OTLP span kinds, of the six only these three are ours. */
|
|
8
8
|
const INTERNAL = 1;
|
|
9
|
+
const SERVER = 2;
|
|
9
10
|
const CLIENT = 3;
|
|
10
11
|
export function otlp(options) {
|
|
11
12
|
const url = options.url ?? 'http://localhost:4318/v1/traces';
|
|
@@ -43,10 +44,11 @@ function payload(service, spans) {
|
|
|
43
44
|
spanId: span.spanId,
|
|
44
45
|
...(span.parentId ? { parentSpanId: span.parentId } : {}),
|
|
45
46
|
name: `${span.entity}.${span.operation}`,
|
|
46
|
-
//
|
|
47
|
-
// viewer draws the
|
|
48
|
-
// derives it from the tree it already holds.
|
|
49
|
-
kind: span
|
|
47
|
+
// A statement left this process for an engine, and a hop for another process: a
|
|
48
|
+
// viewer draws an edge between a CLIENT and the SERVER under it. `selfMs` is NOT
|
|
49
|
+
// sent — a collector derives it from the tree it already holds.
|
|
50
|
+
kind: kindOf(span),
|
|
51
|
+
attributes: attributesOf(span),
|
|
50
52
|
startTimeUnixNano: nanos(span.startedAt),
|
|
51
53
|
endTimeUnixNano: nanos(span.startedAt + span.ms),
|
|
52
54
|
status: span.error ? { code: ERROR, message: span.error } : { code: OK },
|
|
@@ -57,6 +59,29 @@ function payload(service, spans) {
|
|
|
57
59
|
],
|
|
58
60
|
};
|
|
59
61
|
}
|
|
62
|
+
function kindOf(span) {
|
|
63
|
+
if (span.kind === 'statement' || span.crossing === 'sent')
|
|
64
|
+
return CLIENT;
|
|
65
|
+
return span.crossing === 'received' ? SERVER : INTERNAL;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* What a reader groups and filters by, under OpenTelemetry's RPC names where it has them —
|
|
69
|
+
* a span that carried none left every collector with a name and a duration.
|
|
70
|
+
*/
|
|
71
|
+
function attributesOf(span) {
|
|
72
|
+
const values = [
|
|
73
|
+
['rpc.system', 'fougere'],
|
|
74
|
+
['rpc.service', span.entity],
|
|
75
|
+
['rpc.method', span.operation],
|
|
76
|
+
['fougere.frond', span.frond],
|
|
77
|
+
['fougere.caller_frond', span.callerFrond],
|
|
78
|
+
['fougere.statements', span.kind === 'operation' ? span.statements : undefined],
|
|
79
|
+
['fougere.error', span.error],
|
|
80
|
+
];
|
|
81
|
+
return values
|
|
82
|
+
.filter((entry) => entry[1] !== undefined)
|
|
83
|
+
.map(([key, value]) => ({ key, value: typeof value === 'number' ? { intValue: String(value) } : { stringValue: value } }));
|
|
84
|
+
}
|
|
60
85
|
/** Epoch milliseconds → the int64 nanoseconds OTLP wants, as a string. */
|
|
61
86
|
function nanos(ms) {
|
|
62
87
|
return `${Math.round(ms * 1e6)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtlpExporter.js","sourceRoot":"","sources":["../../src/otlp/OtlpExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAYvD,iDAAiD;AACjD,MAAM,EAAE,GAAG,CAAC,CAAC;AAEb,MAAM,KAAK,GAAG,CAAC,CAAC;AAEhB,
|
|
1
|
+
{"version":3,"file":"OtlpExporter.js","sourceRoot":"","sources":["../../src/otlp/OtlpExporter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/observability",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.6-alpha.0",
|
|
4
4
|
"description": "Optional observability for Fougere: one span per operation, W3C Trace Context across any transport.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -31,17 +31,17 @@
|
|
|
31
31
|
"src"
|
|
32
32
|
],
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@fougere/core": "^0.12.
|
|
35
|
-
"@fougere/adapter-sql": "^0.12.
|
|
34
|
+
"@fougere/core": "^0.12.6-alpha.0",
|
|
35
|
+
"@fougere/adapter-sql": "^0.12.6-alpha.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"vitest": "^4.1.0",
|
|
39
|
-
"@fougere/adapter-sql": "0.12.
|
|
40
|
-
"@fougere/
|
|
41
|
-
"@fougere/
|
|
42
|
-
"@fougere/
|
|
43
|
-
"@fougere/transport-http": "0.12.
|
|
44
|
-
"@fougere/
|
|
39
|
+
"@fougere/adapter-sql": "0.12.6-alpha.0",
|
|
40
|
+
"@fougere/container": "0.12.6-alpha.0",
|
|
41
|
+
"@fougere/compiler": "0.12.6-alpha.0",
|
|
42
|
+
"@fougere/schema": "0.12.6-alpha.0",
|
|
43
|
+
"@fougere/transport-http": "0.12.6-alpha.0",
|
|
44
|
+
"@fougere/core": "0.12.6-alpha.0"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
package/src/index.ts
CHANGED
|
@@ -24,6 +24,9 @@ interface Running extends SpanContext {
|
|
|
24
24
|
*/
|
|
25
25
|
export type SpanKind = 'operation' | 'statement';
|
|
26
26
|
|
|
27
|
+
/** Which end of a hop an operation span stands at — absent when the call stayed in this process. */
|
|
28
|
+
export type Crossing = 'sent' | 'received';
|
|
29
|
+
|
|
27
30
|
/** A step that has finished, and what it did. */
|
|
28
31
|
export interface FinishedSpan extends SpanContext {
|
|
29
32
|
parentId: string | undefined;
|
|
@@ -35,6 +38,7 @@ export interface FinishedSpan extends SpanContext {
|
|
|
35
38
|
/** Which frond owned the op — the deployment unit, so the first thing a reader groups by. */
|
|
36
39
|
frond: string | undefined;
|
|
37
40
|
kind: SpanKind;
|
|
41
|
+
crossing: Crossing | undefined;
|
|
38
42
|
entity: string;
|
|
39
43
|
operation: string;
|
|
40
44
|
/** When it started, in epoch milliseconds — an INSTANT, not an offset. */
|
|
@@ -226,6 +230,7 @@ export function tracing(takers: readonly SpanSink[], options: TracingOptions = {
|
|
|
226
230
|
callerFrond,
|
|
227
231
|
frond: ctx.frond,
|
|
228
232
|
kind: 'operation',
|
|
233
|
+
crossing: ctx.crosses ? 'sent' : ctx.invocation?.crossed ? 'received' : undefined,
|
|
229
234
|
entity: ctx.entity,
|
|
230
235
|
operation: ctx.operation,
|
|
231
236
|
startedAt,
|
|
@@ -278,6 +283,7 @@ export function tracing(takers: readonly SpanSink[], options: TracingOptions = {
|
|
|
278
283
|
callerFrond: undefined,
|
|
279
284
|
frond: under.frond,
|
|
280
285
|
kind: 'statement',
|
|
286
|
+
crossing: undefined,
|
|
281
287
|
entity: ran.subject,
|
|
282
288
|
operation: ran.verb,
|
|
283
289
|
startedAt: under.startedAt + Math.max(0, performance.now() - under.start - ran.ms),
|
package/src/otlp/OtlpExporter.ts
CHANGED
|
@@ -18,9 +18,11 @@ const OK = 1;
|
|
|
18
18
|
|
|
19
19
|
const ERROR = 2;
|
|
20
20
|
|
|
21
|
-
/** OTLP span kinds, of the six only these
|
|
21
|
+
/** OTLP span kinds, of the six only these three are ours. */
|
|
22
22
|
const INTERNAL = 1;
|
|
23
23
|
|
|
24
|
+
const SERVER = 2;
|
|
25
|
+
|
|
24
26
|
const CLIENT = 3;
|
|
25
27
|
|
|
26
28
|
export function otlp(options: OtlpOptions): OtlpExporter {
|
|
@@ -66,10 +68,11 @@ function payload(service: string, spans: FinishedSpan[]) {
|
|
|
66
68
|
spanId: span.spanId,
|
|
67
69
|
...(span.parentId ? { parentSpanId: span.parentId } : {}),
|
|
68
70
|
name: `${span.entity}.${span.operation}`,
|
|
69
|
-
//
|
|
70
|
-
// viewer draws the
|
|
71
|
-
// derives it from the tree it already holds.
|
|
72
|
-
kind: span
|
|
71
|
+
// A statement left this process for an engine, and a hop for another process: a
|
|
72
|
+
// viewer draws an edge between a CLIENT and the SERVER under it. `selfMs` is NOT
|
|
73
|
+
// sent — a collector derives it from the tree it already holds.
|
|
74
|
+
kind: kindOf(span),
|
|
75
|
+
attributes: attributesOf(span),
|
|
73
76
|
startTimeUnixNano: nanos(span.startedAt),
|
|
74
77
|
endTimeUnixNano: nanos(span.startedAt + span.ms),
|
|
75
78
|
status: span.error ? { code: ERROR, message: span.error } : { code: OK },
|
|
@@ -81,6 +84,32 @@ function payload(service: string, spans: FinishedSpan[]) {
|
|
|
81
84
|
};
|
|
82
85
|
}
|
|
83
86
|
|
|
87
|
+
function kindOf(span: FinishedSpan): number {
|
|
88
|
+
if (span.kind === 'statement' || span.crossing === 'sent') return CLIENT;
|
|
89
|
+
|
|
90
|
+
return span.crossing === 'received' ? SERVER : INTERNAL;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* What a reader groups and filters by, under OpenTelemetry's RPC names where it has them —
|
|
95
|
+
* a span that carried none left every collector with a name and a duration.
|
|
96
|
+
*/
|
|
97
|
+
function attributesOf(span: FinishedSpan) {
|
|
98
|
+
const values: [string, string | number | undefined][] = [
|
|
99
|
+
['rpc.system', 'fougere'],
|
|
100
|
+
['rpc.service', span.entity],
|
|
101
|
+
['rpc.method', span.operation],
|
|
102
|
+
['fougere.frond', span.frond],
|
|
103
|
+
['fougere.caller_frond', span.callerFrond],
|
|
104
|
+
['fougere.statements', span.kind === 'operation' ? span.statements : undefined],
|
|
105
|
+
['fougere.error', span.error],
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
return values
|
|
109
|
+
.filter((entry): entry is [string, string | number] => entry[1] !== undefined)
|
|
110
|
+
.map(([key, value]) => ({ key, value: typeof value === 'number' ? { intValue: String(value) } : { stringValue: value } }));
|
|
111
|
+
}
|
|
112
|
+
|
|
84
113
|
/** Epoch milliseconds → the int64 nanoseconds OTLP wants, as a string. */
|
|
85
114
|
function nanos(ms: number): string {
|
|
86
115
|
return `${Math.round(ms * 1e6)}`;
|