@respan/tracing 1.1.5 → 1.2.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/decorators/base.js +8 -2
- package/dist/decorators/base.js.map +1 -1
- package/dist/instrumentation/loader.d.ts +1 -1
- package/dist/instrumentation/loader.js +41 -73
- package/dist/instrumentation/loader.js.map +1 -1
- package/dist/instrumentation/manager.d.ts +1 -1
- package/dist/instrumentation/manager.js +10 -125
- package/dist/instrumentation/manager.js.map +1 -1
- package/dist/main.d.ts +5 -1
- package/dist/main.js +14 -3
- package/dist/main.js.map +1 -1
- package/dist/processor/manager.d.ts +12 -0
- package/dist/processor/manager.js +15 -4
- package/dist/processor/manager.js.map +1 -1
- package/dist/processor/spanName.d.ts +15 -0
- package/dist/processor/spanName.js +305 -0
- package/dist/processor/spanName.js.map +1 -0
- package/dist/types/clientTypes.d.ts +10 -0
- package/dist/types/clientTypes.js.map +1 -1
- package/dist/utils/client.js +2 -3
- package/dist/utils/client.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/tracing.d.ts +9 -1
- package/dist/utils/tracing.js +86 -34
- package/dist/utils/tracing.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Context } from "@opentelemetry/api";
|
|
2
2
|
import { SpanProcessor, ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
|
|
3
|
+
import { type RespanSpanNameStyle } from "@respan/respan-sdk";
|
|
3
4
|
/**
|
|
4
5
|
* Configuration for a processor
|
|
5
6
|
*/
|
|
@@ -12,6 +13,14 @@ export interface ProcessorConfig {
|
|
|
12
13
|
filter?: (span: ReadableSpan) => boolean;
|
|
13
14
|
/** Optional priority (higher = processed first) */
|
|
14
15
|
priority?: number;
|
|
16
|
+
/** Send spans immediately without batching. Useful for short-lived scripts. */
|
|
17
|
+
disableBatch?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface MultiProcessorManagerOptions {
|
|
20
|
+
/** Send spans immediately without batching. Useful for short-lived scripts. */
|
|
21
|
+
disableBatch?: boolean;
|
|
22
|
+
/** Exported span.name style: "semantic" (default) or "legacy". */
|
|
23
|
+
spanNameStyle?: RespanSpanNameStyle | string;
|
|
15
24
|
}
|
|
16
25
|
/**
|
|
17
26
|
* Manager for multiple span processors with routing capabilities.
|
|
@@ -40,7 +49,10 @@ export interface ProcessorConfig {
|
|
|
40
49
|
* ```
|
|
41
50
|
*/
|
|
42
51
|
export declare class MultiProcessorManager implements SpanProcessor {
|
|
52
|
+
private readonly options;
|
|
43
53
|
private processors;
|
|
54
|
+
private readonly spanNameStyle;
|
|
55
|
+
constructor(options?: MultiProcessorManagerOptions);
|
|
44
56
|
/**
|
|
45
57
|
* Add a new processor with routing configuration
|
|
46
58
|
* @param config - Processor configuration
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BatchSpanProcessor, } from "@opentelemetry/sdk-trace-base";
|
|
2
|
-
import { RespanSpanAttributes } from "@respan/respan-sdk";
|
|
1
|
+
import { BatchSpanProcessor, SimpleSpanProcessor, } from "@opentelemetry/sdk-trace-base";
|
|
2
|
+
import { RespanSpanAttributes, } from "@respan/respan-sdk";
|
|
3
|
+
import { resolveSpanNameStyle, SpanNameTransformingExporter, } from "./spanName.js";
|
|
3
4
|
/**
|
|
4
5
|
* Manager for multiple span processors with routing capabilities.
|
|
5
6
|
*
|
|
@@ -27,13 +28,23 @@ import { RespanSpanAttributes } from "@respan/respan-sdk";
|
|
|
27
28
|
* ```
|
|
28
29
|
*/
|
|
29
30
|
export class MultiProcessorManager {
|
|
31
|
+
options;
|
|
30
32
|
processors = [];
|
|
33
|
+
spanNameStyle;
|
|
34
|
+
constructor(options = {}) {
|
|
35
|
+
this.options = options;
|
|
36
|
+
this.spanNameStyle = resolveSpanNameStyle(options.spanNameStyle);
|
|
37
|
+
}
|
|
31
38
|
/**
|
|
32
39
|
* Add a new processor with routing configuration
|
|
33
40
|
* @param config - Processor configuration
|
|
34
41
|
*/
|
|
35
42
|
addProcessor(config) {
|
|
36
|
-
const
|
|
43
|
+
const exporter = new SpanNameTransformingExporter(config.exporter, this.spanNameStyle);
|
|
44
|
+
const disableBatch = config.disableBatch ?? this.options.disableBatch ?? false;
|
|
45
|
+
const processor = disableBatch
|
|
46
|
+
? new SimpleSpanProcessor(exporter)
|
|
47
|
+
: new BatchSpanProcessor(exporter);
|
|
37
48
|
// Insert in priority order (higher priority first)
|
|
38
49
|
const priority = config.priority ?? 0;
|
|
39
50
|
const insertIndex = this.processors.findIndex((p) => (p.config.priority ?? 0) < priority);
|
|
@@ -43,7 +54,7 @@ export class MultiProcessorManager {
|
|
|
43
54
|
else {
|
|
44
55
|
this.processors.splice(insertIndex, 0, { processor, config });
|
|
45
56
|
}
|
|
46
|
-
console.debug(`[Respan] Added processor "${config.name}" with priority ${priority}`);
|
|
57
|
+
console.debug(`[Respan] Added processor "${config.name}" with priority ${priority} (${disableBatch ? "simple" : "batch"} mode)`);
|
|
47
58
|
}
|
|
48
59
|
/**
|
|
49
60
|
* Get all configured processors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/processor/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,kBAAkB,
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/processor/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ExportResult } from "@opentelemetry/core";
|
|
2
|
+
import type { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
|
|
3
|
+
import { type RespanSpanNameStyle } from "@respan/respan-sdk";
|
|
4
|
+
export declare function resolveSpanNameStyle(value?: RespanSpanNameStyle | string): RespanSpanNameStyle;
|
|
5
|
+
export declare function transformReadableSpanName(span: ReadableSpan, style: RespanSpanNameStyle | string | undefined): ReadableSpan;
|
|
6
|
+
export declare function semanticSpanNameForSpan(span: ReadableSpan): string;
|
|
7
|
+
export declare function transformReadableSpanBatch(spans: ReadableSpan[], style: RespanSpanNameStyle | string | undefined): ReadableSpan[];
|
|
8
|
+
export declare class SpanNameTransformingExporter implements SpanExporter {
|
|
9
|
+
private readonly delegate;
|
|
10
|
+
private readonly style;
|
|
11
|
+
constructor(delegate: SpanExporter, style: RespanSpanNameStyle);
|
|
12
|
+
export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
|
|
13
|
+
shutdown(): Promise<void>;
|
|
14
|
+
forceFlush(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { SpanAttributes, TraceloopSpanKindValues, } from "@traceloop/ai-semantic-conventions";
|
|
2
|
+
import { RespanLogType, RespanSpanAttributes, } from "@respan/respan-sdk";
|
|
3
|
+
const INTERNAL_KIND_ATTR = RespanSpanAttributes.RESPAN_INTERNAL_SPAN_NAME_KIND;
|
|
4
|
+
const INTERNAL_DETAIL_ATTR = RespanSpanAttributes.RESPAN_INTERNAL_SPAN_NAME_DETAIL;
|
|
5
|
+
const INTERNAL_DROP_ATTR = RespanSpanAttributes.RESPAN_INTERNAL_DROP_SPAN;
|
|
6
|
+
const INTERNAL_EXPORT_PARENT_ATTR = RespanSpanAttributes.RESPAN_INTERNAL_EXPORT_PARENT;
|
|
7
|
+
const INTERNAL_SPAN_NAME_ATTRS = [
|
|
8
|
+
INTERNAL_KIND_ATTR,
|
|
9
|
+
INTERNAL_DETAIL_ATTR,
|
|
10
|
+
INTERNAL_DROP_ATTR,
|
|
11
|
+
INTERNAL_EXPORT_PARENT_ATTR,
|
|
12
|
+
];
|
|
13
|
+
const SUFFIXED_OPERATIONS = new Set(["agent", "tool", "handoff", "llm"]);
|
|
14
|
+
// Operation/structural tokens that must not survive as a semantic-name suffix
|
|
15
|
+
// (e.g. "handoff.task" or "llm.doGenerate" — the suffix carries no identity).
|
|
16
|
+
const GENERIC_DETAIL_TOKENS = new Set([
|
|
17
|
+
"agent",
|
|
18
|
+
"chat",
|
|
19
|
+
"completion",
|
|
20
|
+
"completions",
|
|
21
|
+
"doembed",
|
|
22
|
+
"dogenerate",
|
|
23
|
+
"dostream",
|
|
24
|
+
"embedding",
|
|
25
|
+
"generate",
|
|
26
|
+
"generation",
|
|
27
|
+
"guardrail",
|
|
28
|
+
"handoff",
|
|
29
|
+
"llm",
|
|
30
|
+
"response",
|
|
31
|
+
"responses",
|
|
32
|
+
"task",
|
|
33
|
+
"text",
|
|
34
|
+
"tool",
|
|
35
|
+
"workflow",
|
|
36
|
+
]);
|
|
37
|
+
export function resolveSpanNameStyle(value) {
|
|
38
|
+
// Normalize like the Python resolver (.strip().lower()) so the same env
|
|
39
|
+
// value means the same thing in a mixed-language deployment.
|
|
40
|
+
const normalized = value === undefined || value === null ? "" : String(value).trim().toLowerCase();
|
|
41
|
+
return normalized === "legacy" ? "legacy" : "semantic";
|
|
42
|
+
}
|
|
43
|
+
export function transformReadableSpanName(span, style) {
|
|
44
|
+
const resolvedStyle = resolveSpanNameStyle(style);
|
|
45
|
+
const attrs = span.attributes;
|
|
46
|
+
const attributes = stripInternalSemanticNameAttrs(attrs);
|
|
47
|
+
const name = resolvedStyle === "semantic" ? semanticSpanNameForSpan(span) : span.name;
|
|
48
|
+
// The export-parent attr distinguishes "absent" (leave the parent alone)
|
|
49
|
+
// from "" (the dropped wrapper was a root span — promote the child to root).
|
|
50
|
+
let reparent;
|
|
51
|
+
if (resolvedStyle === "semantic") {
|
|
52
|
+
const raw = attrs[INTERNAL_EXPORT_PARENT_ATTR];
|
|
53
|
+
if (raw !== undefined && raw !== null) {
|
|
54
|
+
const text = String(raw).trim();
|
|
55
|
+
reparent = text === "" ? null : text;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (name === span.name &&
|
|
59
|
+
attributes === span.attributes &&
|
|
60
|
+
reparent === undefined) {
|
|
61
|
+
return span;
|
|
62
|
+
}
|
|
63
|
+
return cloneReadableSpan(span, name, attributes, reparent);
|
|
64
|
+
}
|
|
65
|
+
export function semanticSpanNameForSpan(span) {
|
|
66
|
+
const attrs = span.attributes;
|
|
67
|
+
const operation = resolveOperation(attrs, span.name);
|
|
68
|
+
// Spans with no recognizable operation keep their original name — the
|
|
69
|
+
// semantic style renames known operations, it never destroys pass-through
|
|
70
|
+
// span names (matches the Python exporter).
|
|
71
|
+
if (!operation) {
|
|
72
|
+
return span.name;
|
|
73
|
+
}
|
|
74
|
+
const detail = resolveDetail(attrs, span.name, operation);
|
|
75
|
+
const hasInternalHint = attrs[INTERNAL_KIND_ATTR] !== undefined || attrs[INTERNAL_DETAIL_ATTR] !== undefined;
|
|
76
|
+
if (!SUFFIXED_OPERATIONS.has(operation)) {
|
|
77
|
+
return operation;
|
|
78
|
+
}
|
|
79
|
+
if (operation === "llm") {
|
|
80
|
+
return detail ? `${operation}.${detail}` : operation;
|
|
81
|
+
}
|
|
82
|
+
if (!hasInternalHint && span.name.startsWith(`${operation}.`)) {
|
|
83
|
+
const existingDetail = span.name.slice(operation.length + 1);
|
|
84
|
+
if (existingDetail && !GENERIC_DETAIL_TOKENS.has(existingDetail.toLowerCase())) {
|
|
85
|
+
return span.name;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (!detail || detail.toLowerCase() === operation) {
|
|
89
|
+
return operation;
|
|
90
|
+
}
|
|
91
|
+
return `${operation}.${detail}`;
|
|
92
|
+
}
|
|
93
|
+
export function transformReadableSpanBatch(spans, style) {
|
|
94
|
+
const resolvedStyle = resolveSpanNameStyle(style);
|
|
95
|
+
// Dropping and reparenting are per-span decisions driven entirely by
|
|
96
|
+
// attributes the owning instrumentation stamped at span start
|
|
97
|
+
// (respan.internal.drop_span on the wrapper, export_parent_span_id on its
|
|
98
|
+
// children) — no cross-span state, so batch boundaries cannot break trees.
|
|
99
|
+
// Legacy style preserves the emitted tree exactly.
|
|
100
|
+
if (resolvedStyle === "legacy") {
|
|
101
|
+
return spans.map((span) => transformReadableSpanName(span, resolvedStyle));
|
|
102
|
+
}
|
|
103
|
+
return spans.flatMap((span) => {
|
|
104
|
+
const attrs = span.attributes;
|
|
105
|
+
if (attrs[INTERNAL_DROP_ATTR] === true || attrs[INTERNAL_DROP_ATTR] === "true") {
|
|
106
|
+
return [];
|
|
107
|
+
}
|
|
108
|
+
return [transformReadableSpanName(span, resolvedStyle)];
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
export class SpanNameTransformingExporter {
|
|
112
|
+
delegate;
|
|
113
|
+
style;
|
|
114
|
+
constructor(delegate, style) {
|
|
115
|
+
this.delegate = delegate;
|
|
116
|
+
this.style = style;
|
|
117
|
+
}
|
|
118
|
+
export(spans, resultCallback) {
|
|
119
|
+
this.delegate.export(transformReadableSpanBatch(spans, this.style), resultCallback);
|
|
120
|
+
}
|
|
121
|
+
shutdown() {
|
|
122
|
+
return this.delegate.shutdown();
|
|
123
|
+
}
|
|
124
|
+
forceFlush() {
|
|
125
|
+
const maybeFlush = this.delegate
|
|
126
|
+
.forceFlush;
|
|
127
|
+
return maybeFlush ? maybeFlush.call(this.delegate) : Promise.resolve();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function stripInternalSemanticNameAttrs(attrs) {
|
|
131
|
+
let next;
|
|
132
|
+
for (const key of INTERNAL_SPAN_NAME_ATTRS) {
|
|
133
|
+
if (attrs[key] !== undefined) {
|
|
134
|
+
next ??= { ...attrs };
|
|
135
|
+
delete next[key];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return next ?? attrs;
|
|
139
|
+
}
|
|
140
|
+
function cloneReadableSpan(span, name, attributes,
|
|
141
|
+
// string = new parent id; null = promote to root; undefined = leave as-is
|
|
142
|
+
reparent) {
|
|
143
|
+
const clone = Object.create(Object.getPrototypeOf(span));
|
|
144
|
+
Object.assign(clone, span);
|
|
145
|
+
Object.defineProperty(clone, "name", {
|
|
146
|
+
value: name,
|
|
147
|
+
enumerable: true,
|
|
148
|
+
configurable: true,
|
|
149
|
+
});
|
|
150
|
+
Object.defineProperty(clone, "attributes", {
|
|
151
|
+
value: attributes,
|
|
152
|
+
enumerable: true,
|
|
153
|
+
configurable: true,
|
|
154
|
+
});
|
|
155
|
+
if (reparent !== undefined) {
|
|
156
|
+
// OTel SDK 1.x exposes parentSpanId on ReadableSpan; revisit for SDK 2.x
|
|
157
|
+
// (parentSpanContext) when the workspace upgrades.
|
|
158
|
+
Object.defineProperty(clone, "parentSpanId", {
|
|
159
|
+
value: reparent === null ? undefined : reparent,
|
|
160
|
+
enumerable: true,
|
|
161
|
+
configurable: true,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
return clone;
|
|
165
|
+
}
|
|
166
|
+
function resolveOperation(attrs, spanName) {
|
|
167
|
+
// An explicit instrumentation hint always wins — even an unrecognized value
|
|
168
|
+
// is used (lowercased + sanitized, prefixes are lowercase by contract),
|
|
169
|
+
// since it states intent.
|
|
170
|
+
const hintedKind = stringAttr(attrs, INTERNAL_KIND_ATTR);
|
|
171
|
+
if (hintedKind) {
|
|
172
|
+
return mapOperation(hintedKind) ?? sanitizeNamePart(hintedKind.toLowerCase(), "span");
|
|
173
|
+
}
|
|
174
|
+
// Log type before span kind, matching the Python exporter's priority.
|
|
175
|
+
const logType = stringAttr(attrs, RespanSpanAttributes.RESPAN_LOG_TYPE);
|
|
176
|
+
if (logType) {
|
|
177
|
+
const mapped = mapOperation(logType);
|
|
178
|
+
if (mapped)
|
|
179
|
+
return mapped;
|
|
180
|
+
}
|
|
181
|
+
const tlKind = stringAttr(attrs, SpanAttributes.TRACELOOP_SPAN_KIND);
|
|
182
|
+
if (tlKind) {
|
|
183
|
+
const mapped = mapOperation(tlKind);
|
|
184
|
+
if (mapped)
|
|
185
|
+
return mapped;
|
|
186
|
+
}
|
|
187
|
+
return inferOperationFromName(spanName);
|
|
188
|
+
}
|
|
189
|
+
function resolveDetail(attrs, spanName, operation) {
|
|
190
|
+
if (operation === "llm") {
|
|
191
|
+
const model = resolveLlmModel(attrs);
|
|
192
|
+
return model ? sanitizeNamePart(model, "") : "";
|
|
193
|
+
}
|
|
194
|
+
const hintedDetail = stringAttr(attrs, INTERNAL_DETAIL_ATTR);
|
|
195
|
+
if (hintedDetail) {
|
|
196
|
+
return sanitizeNamePart(hintedDetail, "");
|
|
197
|
+
}
|
|
198
|
+
const entityName = stringAttr(attrs, SpanAttributes.TRACELOOP_ENTITY_NAME);
|
|
199
|
+
if (entityName) {
|
|
200
|
+
return sanitizeNamePart(entityName, "");
|
|
201
|
+
}
|
|
202
|
+
const rawDetail = detailFromRawName(spanName, operation);
|
|
203
|
+
if (rawDetail && GENERIC_DETAIL_TOKENS.has(rawDetail.toLowerCase())) {
|
|
204
|
+
return "";
|
|
205
|
+
}
|
|
206
|
+
return sanitizeNamePart(rawDetail, "");
|
|
207
|
+
}
|
|
208
|
+
function resolveLlmModel(attrs) {
|
|
209
|
+
return firstStringAttr(attrs, [
|
|
210
|
+
RespanSpanAttributes.GEN_AI_REQUEST_MODEL,
|
|
211
|
+
RespanSpanAttributes.OPENINFERENCE_LLM_MODEL_NAME,
|
|
212
|
+
"llm.model_name",
|
|
213
|
+
"model",
|
|
214
|
+
SpanAttributes.LLM_REQUEST_MODEL,
|
|
215
|
+
]);
|
|
216
|
+
}
|
|
217
|
+
function firstStringAttr(attrs, keys) {
|
|
218
|
+
for (const key of keys) {
|
|
219
|
+
const value = stringAttr(attrs, key);
|
|
220
|
+
if (value)
|
|
221
|
+
return value;
|
|
222
|
+
}
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
function stringAttr(attrs, key) {
|
|
226
|
+
const value = attrs[key];
|
|
227
|
+
if (value === undefined || value === null)
|
|
228
|
+
return undefined;
|
|
229
|
+
const text = String(value).trim();
|
|
230
|
+
return text || undefined;
|
|
231
|
+
}
|
|
232
|
+
/** Map a kind/log-type token to a semantic operation; undefined when unknown. */
|
|
233
|
+
function mapOperation(value) {
|
|
234
|
+
const normalized = value.toLowerCase();
|
|
235
|
+
switch (normalized) {
|
|
236
|
+
case TraceloopSpanKindValues.WORKFLOW:
|
|
237
|
+
case RespanLogType.WORKFLOW:
|
|
238
|
+
return "workflow";
|
|
239
|
+
case TraceloopSpanKindValues.AGENT:
|
|
240
|
+
case RespanLogType.AGENT:
|
|
241
|
+
return "agent";
|
|
242
|
+
case TraceloopSpanKindValues.TASK:
|
|
243
|
+
case RespanLogType.TASK:
|
|
244
|
+
return "task";
|
|
245
|
+
case TraceloopSpanKindValues.TOOL:
|
|
246
|
+
case RespanLogType.TOOL:
|
|
247
|
+
return "tool";
|
|
248
|
+
case RespanLogType.FUNCTION:
|
|
249
|
+
return "tool";
|
|
250
|
+
case RespanLogType.HANDOFF:
|
|
251
|
+
return "handoff";
|
|
252
|
+
case RespanLogType.GUARDRAIL:
|
|
253
|
+
return "guardrail";
|
|
254
|
+
case RespanLogType.EMBEDDING:
|
|
255
|
+
case "embed":
|
|
256
|
+
return "embedding";
|
|
257
|
+
case RespanLogType.TRANSCRIPTION:
|
|
258
|
+
return "transcribe";
|
|
259
|
+
case RespanLogType.SPEECH:
|
|
260
|
+
return "speech";
|
|
261
|
+
case RespanLogType.CHAT:
|
|
262
|
+
case RespanLogType.TEXT:
|
|
263
|
+
case RespanLogType.RESPONSE:
|
|
264
|
+
case RespanLogType.GENERATION:
|
|
265
|
+
case "completion":
|
|
266
|
+
case "completions":
|
|
267
|
+
case "generate":
|
|
268
|
+
case "llm":
|
|
269
|
+
return "llm";
|
|
270
|
+
default:
|
|
271
|
+
// Unknown values (including "custom"/"unknown" log types) resolve to no
|
|
272
|
+
// operation so the caller preserves the original span name.
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function inferOperationFromName(spanName) {
|
|
277
|
+
const suffix = spanName.split(".").at(-1);
|
|
278
|
+
if (suffix && GENERIC_DETAIL_TOKENS.has(suffix.toLowerCase())) {
|
|
279
|
+
return mapOperation(suffix);
|
|
280
|
+
}
|
|
281
|
+
return undefined;
|
|
282
|
+
}
|
|
283
|
+
function detailFromRawName(spanName, operation) {
|
|
284
|
+
if (spanName.endsWith(`.${operation}`)) {
|
|
285
|
+
return spanName.slice(0, -(operation.length + 1));
|
|
286
|
+
}
|
|
287
|
+
if (spanName.startsWith(`${operation}.`)) {
|
|
288
|
+
return spanName.slice(operation.length + 1);
|
|
289
|
+
}
|
|
290
|
+
if (operation === "handoff") {
|
|
291
|
+
return spanName.replace(/^handoff\s*[:.-]?\s*/i, "");
|
|
292
|
+
}
|
|
293
|
+
return spanName;
|
|
294
|
+
}
|
|
295
|
+
function sanitizeNamePart(value, fallback) {
|
|
296
|
+
// \p{L}\p{N} keeps unicode letters/digits so non-ASCII agent/tool names
|
|
297
|
+
// survive — parity with Python's unicode \w.
|
|
298
|
+
const sanitized = value
|
|
299
|
+
.trim()
|
|
300
|
+
.replace(/\s*(?:→|->)\s*/g, "_")
|
|
301
|
+
.replace(/[^\p{L}\p{N}_.-]+/gu, "_")
|
|
302
|
+
.replace(/^[_\-.]+|[_\-.]+$/g, "");
|
|
303
|
+
return sanitized || fallback;
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=spanName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spanName.js","sourceRoot":"","sources":["../../src/processor/spanName.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SpanExporter, SpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
2
2
|
import { TextMapPropagator, ContextManager } from "@opentelemetry/api";
|
|
3
|
+
import type { RespanSpanNameStyle } from "@respan/respan-sdk";
|
|
3
4
|
/**
|
|
4
5
|
* Available instrumentation names for consistent camelCase naming.
|
|
5
6
|
* Abbreviations like AI, API, DB are kept uppercase.
|
|
@@ -17,6 +18,8 @@ export interface ProcessorConfig {
|
|
|
17
18
|
filter?: (span: any) => boolean;
|
|
18
19
|
/** Optional priority (higher = processed first) */
|
|
19
20
|
priority?: number;
|
|
21
|
+
/** Send spans immediately without batching. Useful for short-lived scripts. */
|
|
22
|
+
disableBatch?: boolean;
|
|
20
23
|
}
|
|
21
24
|
/**
|
|
22
25
|
* Options for initializing the Respan SDK.
|
|
@@ -86,6 +89,13 @@ export interface RespanOptions {
|
|
|
86
89
|
* Defaults to true.
|
|
87
90
|
*/
|
|
88
91
|
tracingEnabled?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Controls exported span.name formatting.
|
|
94
|
+
* - semantic: use operation-prefixed names like agent.triage or llm.gpt-4o
|
|
95
|
+
* - legacy: preserve instrumentation span names
|
|
96
|
+
* Defaults to semantic. Can also be set with RESPAN_SPAN_NAME_STYLE=legacy.
|
|
97
|
+
*/
|
|
98
|
+
spanNameStyle?: RespanSpanNameStyle;
|
|
89
99
|
/**
|
|
90
100
|
* Additional resource attributes to attach to all spans. Optional.
|
|
91
101
|
* Useful for adding environment, version, region, etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientTypes.js","sourceRoot":"","sources":["../../src/types/clientTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientTypes.js","sourceRoot":"","sources":["../../src/types/clientTypes.ts"],"names":[],"mappings":"AA8NA;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAClC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC9B,CAAC;CACJ;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAChD,YAAY,OAAgB;QACxB,KAAK,CAAC,OAAO,IAAI,6BAA6B,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACtC,CAAC;CACJ;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAChD;QACI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACtC,CAAC;CACJ"}
|
package/dist/utils/client.js
CHANGED
|
@@ -90,9 +90,8 @@ class RespanClientImpl {
|
|
|
90
90
|
return currentSpan.isRecording();
|
|
91
91
|
}
|
|
92
92
|
async flush() {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
await forceFlush();
|
|
93
|
+
const { flush } = await import("./tracing.js");
|
|
94
|
+
await flush();
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
// Singleton instance
|
package/dist/utils/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./context.js";
|
|
2
2
|
export * from "./span.js";
|
|
3
3
|
export * from "./spanFactory.js";
|
|
4
|
-
export { startTracing, forceFlush, _resolveBaseURL } from "./tracing.js";
|
|
4
|
+
export { startTracing, flush, forceFlush, shutdownTracing, _resolveBaseURL } from "./tracing.js";
|
|
5
5
|
export * from "./client.js";
|
|
6
6
|
export * from "./spanBuffer.js";
|
package/dist/utils/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export * from "./context.js";
|
|
|
2
2
|
export * from "./span.js";
|
|
3
3
|
export * from "./spanFactory.js";
|
|
4
4
|
// Export tracing utils but avoid naming conflicts
|
|
5
|
-
export { startTracing, forceFlush, _resolveBaseURL } from "./tracing.js";
|
|
5
|
+
export { startTracing, flush, forceFlush, shutdownTracing, _resolveBaseURL } from "./tracing.js";
|
|
6
6
|
// Export client and span buffer
|
|
7
7
|
export * from "./client.js";
|
|
8
8
|
export * from "./spanBuffer.js";
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AAEjC,kDAAkD;AAClD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AAEjC,kDAAkD;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEjG,gCAAgC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
package/dist/utils/tracing.d.ts
CHANGED
|
@@ -13,9 +13,17 @@ export declare const _resolveBaseURL: (baseURL: string) => string;
|
|
|
13
13
|
*/
|
|
14
14
|
export declare const startTracing: (options: RespanOptions) => Promise<void>;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* Flush pending spans without shutting down the SDK.
|
|
17
|
+
*/
|
|
18
|
+
export declare const flush: () => Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Backward-compatible alias for flushing pending spans.
|
|
17
21
|
*/
|
|
18
22
|
export declare const forceFlush: () => Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Flush pending spans and shut down the SDK.
|
|
25
|
+
*/
|
|
26
|
+
export declare const shutdownTracing: () => Promise<void>;
|
|
19
27
|
/**
|
|
20
28
|
* Gets the current SDK instance.
|
|
21
29
|
* Useful for advanced configuration or checking if tracing is initialized.
|