@emseepea/server 0.25.3 → 0.25.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/telemetry.d.ts +4 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +55 -6
- package/dist/telemetry.js.map +1 -1
- package/package.json +2 -1
package/dist/telemetry.d.ts
CHANGED
|
@@ -44,7 +44,10 @@ export interface ObservabilityAdapter {
|
|
|
44
44
|
readonly flush?: () => void | Promise<void>;
|
|
45
45
|
}
|
|
46
46
|
export declare function structuredLogging(id: string, write: (event: ObservabilityEvent) => void | Promise<void>): ObservabilityAdapter;
|
|
47
|
-
export declare function openTelemetry(
|
|
47
|
+
export declare function openTelemetry(options?: {
|
|
48
|
+
/** Emit safe completion records through the application's Logs API provider. Default: false. */
|
|
49
|
+
readonly logs?: boolean;
|
|
50
|
+
}): ObservabilityAdapter;
|
|
48
51
|
export declare function installObservability(app: FastifyInstance, adapters: readonly ObservabilityAdapter[], capabilityName: (body: unknown) => string | undefined, callerClassifications: readonly CallerClassification[] | undefined, limits: {
|
|
49
52
|
deliveryTimeoutMs: number;
|
|
50
53
|
}): (timeoutMs: number) => Promise<void>;
|
package/dist/telemetry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAS/D,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GAAG,YAAY,GAAG,YAAY,GAAG,gBAAgB,GAClE,0BAA0B,GAAG,gBAAgB,GAAG,cAAc,GAAG,aAAa,GAC9E,qBAAqB,GAAG,sBAAsB,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,OAAO,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;IAClE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAI7D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACzD,oBAAoB,CAEtB;AAmBD,wBAAgB,aAAa,CAAC,OAAO,GAAE;IACrC,gGAAgG;IAChG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,oBAAoB,CAkC5B;AAwCD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,EACrD,qBAAqB,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,EAClE,MAAM,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACpC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAyFtC;AAWD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAE1F"}
|
package/dist/telemetry.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { context, isSpanContextValid, metrics, propagation, ROOT_CONTEXT, SpanKind, trace } from "@opentelemetry/api";
|
|
2
|
+
import { logs, SeverityNumber } from "@opentelemetry/api-logs";
|
|
2
3
|
const methods = new Set([
|
|
3
4
|
"server/discover", "tools/list", "tools/call", "resources/list",
|
|
4
5
|
"resources/templates/list", "resources/read", "prompts/list", "prompts/get",
|
|
@@ -12,6 +13,7 @@ export function structuredLogging(id, write) {
|
|
|
12
13
|
// Normalization preserves emit identity while copying the public adapter.
|
|
13
14
|
// A public adapter ID must never grant access to the request lifecycle.
|
|
14
15
|
const requestTracers = new WeakMap();
|
|
16
|
+
const requestEmissions = new WeakMap();
|
|
15
17
|
function eventAttributes(event) {
|
|
16
18
|
return {
|
|
17
19
|
"mcp.method": event.method,
|
|
@@ -23,9 +25,10 @@ function eventAttributes(event) {
|
|
|
23
25
|
...(event.callerClass ? { "emseepea.caller.class": event.callerClass } : {}),
|
|
24
26
|
};
|
|
25
27
|
}
|
|
26
|
-
export function openTelemetry() {
|
|
28
|
+
export function openTelemetry(options = {}) {
|
|
27
29
|
const tracer = trace.getTracer("@emseepea/server");
|
|
28
30
|
const meter = metrics.getMeter("@emseepea/server");
|
|
31
|
+
const logger = options.logs === true ? logs.getLogger("@emseepea/server") : undefined;
|
|
29
32
|
const calls = meter.createCounter("emseepea.http.requests", { unit: "{request}" });
|
|
30
33
|
const duration = meter.createHistogram("emseepea.http.response.duration", {
|
|
31
34
|
unit: "s",
|
|
@@ -35,8 +38,28 @@ export function openTelemetry() {
|
|
|
35
38
|
id: "opentelemetry",
|
|
36
39
|
emit(event) {
|
|
37
40
|
const attributes = eventAttributes(event);
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
const emission = requestEmissions.get(event);
|
|
42
|
+
const emissionContext = emission?.context ?? ROOT_CONTEXT;
|
|
43
|
+
try {
|
|
44
|
+
calls.add(1, attributes, emissionContext);
|
|
45
|
+
}
|
|
46
|
+
catch { /* One signal cannot suppress another. */ }
|
|
47
|
+
try {
|
|
48
|
+
duration.record(event.durationMs / 1_000, attributes, emissionContext);
|
|
49
|
+
}
|
|
50
|
+
catch { /* One signal cannot suppress another. */ }
|
|
51
|
+
try {
|
|
52
|
+
logger?.emit({
|
|
53
|
+
eventName: "mcp.request",
|
|
54
|
+
body: "MCP HTTP request ended",
|
|
55
|
+
severityNumber: SeverityNumber.INFO,
|
|
56
|
+
severityText: "INFO",
|
|
57
|
+
attributes,
|
|
58
|
+
context: emissionContext,
|
|
59
|
+
...(emission ? { timestamp: emission.timestamp } : {}),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch { /* Logging cannot change protocol behaviour or other signals. */ }
|
|
40
63
|
},
|
|
41
64
|
});
|
|
42
65
|
requestTracers.set(adapter.emit, tracer);
|
|
@@ -44,6 +67,7 @@ export function openTelemetry() {
|
|
|
44
67
|
}
|
|
45
68
|
function startRequestSpan(tracer, request, startTime) {
|
|
46
69
|
let parent = ROOT_CONTEXT;
|
|
70
|
+
let parentIdentity;
|
|
47
71
|
try {
|
|
48
72
|
// Only tracing headers reach the configured propagator. In particular,
|
|
49
73
|
// baggage, credentials and unrelated ambient context are excluded.
|
|
@@ -54,16 +78,35 @@ function startRequestSpan(tracer, request, startTime) {
|
|
|
54
78
|
carrier[name] = value;
|
|
55
79
|
}
|
|
56
80
|
const extracted = trace.getSpanContext(propagation.extract(ROOT_CONTEXT, carrier));
|
|
57
|
-
if (extracted && isSpanContextValid(extracted))
|
|
81
|
+
if (extracted && isSpanContextValid(extracted)) {
|
|
58
82
|
parent = trace.setSpanContext(ROOT_CONTEXT, extracted);
|
|
83
|
+
parentIdentity = { traceId: extracted.traceId, spanId: extracted.spanId };
|
|
84
|
+
}
|
|
59
85
|
}
|
|
60
86
|
catch { /* A broken propagator must not prevent protocol execution. */ }
|
|
87
|
+
let span;
|
|
61
88
|
try {
|
|
62
|
-
|
|
89
|
+
span = tracer.startSpan("mcp.request", { kind: SpanKind.SERVER, startTime }, parent);
|
|
63
90
|
}
|
|
64
91
|
catch {
|
|
65
92
|
return undefined;
|
|
66
93
|
}
|
|
94
|
+
let completionContext = ROOT_CONTEXT;
|
|
95
|
+
try {
|
|
96
|
+
const value = span.spanContext();
|
|
97
|
+
// Log processors receive this context too. Exclude opaque traceState and
|
|
98
|
+
// arbitrary provider properties, retaining only validated correlation data.
|
|
99
|
+
const local = { traceId: value.traceId, spanId: value.spanId, traceFlags: value.traceFlags, isRemote: false };
|
|
100
|
+
// A no-op tracer can return its parent unchanged. Unsampled local spans,
|
|
101
|
+
// however, still have a new identity and remain useful for log correlation.
|
|
102
|
+
if (value.isRemote !== true && isSpanContextValid(local)
|
|
103
|
+
&& Number.isInteger(local.traceFlags) && local.traceFlags >= 0 && local.traceFlags <= 255
|
|
104
|
+
&& !(parentIdentity?.traceId === local.traceId && parentIdentity.spanId === local.spanId)) {
|
|
105
|
+
completionContext = trace.setSpanContext(ROOT_CONTEXT, local);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch { /* Invalid or broken span contexts produce uncorrelated records. */ }
|
|
109
|
+
return { span, context: completionContext };
|
|
67
110
|
}
|
|
68
111
|
export function installObservability(app, adapters, capabilityName, callerClassifications, limits) {
|
|
69
112
|
const pending = new Set();
|
|
@@ -76,7 +119,8 @@ export function installObservability(app, adapters, capabilityName, callerClassi
|
|
|
76
119
|
const state = { protocolOutcome: "success" };
|
|
77
120
|
requestStates.set(request, state);
|
|
78
121
|
const started = performance.now();
|
|
79
|
-
const
|
|
122
|
+
const requestSpan = tracer ? startRequestSpan(tracer, request, performance.timeOrigin + started) : undefined;
|
|
123
|
+
const span = requestSpan?.span;
|
|
80
124
|
let ended = false;
|
|
81
125
|
const finish = () => end(reply.raw.destroyed || reply.raw.socket?.destroyed ? "disconnected" : "finished");
|
|
82
126
|
const close = () => end("disconnected");
|
|
@@ -111,6 +155,11 @@ export function installObservability(app, adapters, capabilityName, callerClassi
|
|
|
111
155
|
durationMs: Math.min(3_600_000, Math.max(0, finished - started)),
|
|
112
156
|
...(state.forwardingRefusal ? { forwardingRefusal: state.forwardingRefusal } : {}),
|
|
113
157
|
});
|
|
158
|
+
if (tracer)
|
|
159
|
+
requestEmissions.set(event, {
|
|
160
|
+
context: requestSpan?.context ?? ROOT_CONTEXT,
|
|
161
|
+
timestamp: performance.timeOrigin + finished,
|
|
162
|
+
});
|
|
114
163
|
if (span) {
|
|
115
164
|
try {
|
|
116
165
|
span.setAttributes(eventAttributes(event));
|
package/dist/telemetry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emseepea/server",
|
|
3
|
-
"version": "0.25.
|
|
3
|
+
"version": "0.25.4",
|
|
4
4
|
"description": "Fastify-first framework for Model Context Protocol 2026-07-28 servers over Streamable HTTP",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@opentelemetry/api": "1.9.1",
|
|
65
|
+
"@opentelemetry/api-logs": "0.221.0",
|
|
65
66
|
"@modelcontextprotocol/core": "2.3.1",
|
|
66
67
|
"@modelcontextprotocol/fastify": "2.0.1",
|
|
67
68
|
"@modelcontextprotocol/node": "2.1.1",
|