@insightfactory.ai/insightfactory-databricks-langgraph-tracer 1.0.0 → 1.0.1-dev.18

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/CHANGELOG.md CHANGED
@@ -20,6 +20,53 @@ prerelease from this section.
20
20
 
21
21
  ## [Unreleased]
22
22
 
23
+ ### Added
24
+
25
+ - `getActiveTracingSpan()` and `withTracingContext()`, so a span created outside the
26
+ tracer joins the running graph's trace instead of opening its own root trace
27
+ (#52, #55).
28
+ A helper traced with MLflow's `startSpan` or `withSpan` previously produced one
29
+ extra root trace per call, carrying none of the root tags, session metadata or cost
30
+ rollup. Use `getActiveTracingSpan()` as the `parent` of a `startSpan` call, or wrap
31
+ `withSpan` and `trace` code in `withTracingContext()`, which read the active context
32
+ and ignore a `parent` option. The Python package does this ambiently; Node has no
33
+ equivalent, because LangChain runs callbacks inside `asyncLocalStorage.run(undefined,
34
+ …)` and a store entered there cannot reach the node body.
35
+ The same context fallback works in reverse and costs something: a graph invoked
36
+ from inside a `withSpan` block nests into that block's trace, so the graph's root
37
+ tags, session metadata and cost rollup are written there, and two graphs under one
38
+ block overwrite each other's session id and cost figures. Issue #56 tracks making
39
+ the rollup additive. The Python package creates its root span without consulting
40
+ the context, so it does not nest this way.
41
+ - `getSpanForRun(runId)` on `DatabricksLangGraphTracer`, the low-level route the two
42
+ helpers above use to read a single span without the run map becoming public state.
43
+ Application code should call `getActiveTracingSpan()`, which resolves the running
44
+ node's id for you.
45
+ - `@opentelemetry/api` as a direct dependency. It was already present transitively and
46
+ is now imported directly by `withTracingContext`.
47
+
48
+ ### Changed
49
+
50
+ - The tracer now awaits its own callbacks instead of leaving them on LangChain's
51
+ background queue. A node's span is therefore recorded before the node body runs.
52
+ Without it a parallel branch could reach `getActiveTracingSpan()` before its own
53
+ run had been recorded, and its spans fell out of the graph trace. It also moves
54
+ the tracer's per-run work onto the graph's critical path, ahead of each node body,
55
+ rather than alongside it on the queue. That work is in-memory only, so the cost is
56
+ the ordering rather than the duration. This tracer's own callbacks are awaited
57
+ whatever `LANGCHAIN_CALLBACKS_BACKGROUND` is set to; other handlers still follow
58
+ that variable.
59
+
60
+ ## [1.0.1] - 2026-09-03
61
+
62
+ ### Changed
63
+
64
+ - Rewrote the README that npm renders in plainer prose. Commands, code samples
65
+ and configuration tables are unchanged, so there is no behaviour or packaging
66
+ change.
67
+ - Corrected the truncation placeholder example, which showed a trailing ellipsis
68
+ in `preview`. The tracer stores a plain slice of the original string.
69
+
23
70
  ## [1.0.0] - 2026-09-02
24
71
  ### Changed
25
72
  - Renamed the npm package from `@insightfactory-ai/databricks-langgraph-tracer` to
@@ -162,7 +209,8 @@ reserved by the repo's immutable-releases policy and cannot be created. Restore
162
209
  typescript-vX.Y.Z tag links if the names are ever reclaimed. 0.5.0's tag is
163
210
  created out-of-band (its bump predates the release workflow); 0.5.1+ tags are
164
211
  minted by release.yml on push to main. -->
165
- [Unreleased]: https://github.com/insightfactory-ai/if_s_langraph_mlflow_tracer/compare/typescript-v1.0.0...HEAD
212
+ [Unreleased]: https://github.com/insightfactory-ai/if_s_langraph_mlflow_tracer/compare/typescript-v1.0.1...HEAD
213
+ [1.0.1]: https://github.com/insightfactory-ai/if_s_langraph_mlflow_tracer/compare/typescript-v1.0.0...typescript-v1.0.1
166
214
  [1.0.0]: https://github.com/insightfactory-ai/if_s_langraph_mlflow_tracer/compare/typescript-v0.6.2...typescript-v1.0.0
167
215
  [0.6.2]: https://github.com/insightfactory-ai/if_s_langraph_mlflow_tracer/compare/typescript-v0.6.1...typescript-v0.6.2
168
216
  [0.6.1]: https://github.com/insightfactory-ai/if_s_langraph_mlflow_tracer/compare/typescript-v0.6.0...typescript-v0.6.1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @insightfactory.ai/insightfactory-databricks-langgraph-tracer
2
2
 
3
- LangGraph tracer for Databricks MLflow (TypeScript). It uses a custom `@mlflow/core`
3
+ LangGraph tracer for Databricks MLflow, in TypeScript. It uses a custom `@mlflow/core`
4
4
  `BaseTracer` to write trace fields, token usage, and a cost rollup on the live trace before
5
5
  the root span ends.
6
6
 
@@ -13,7 +13,7 @@ yarn add @insightfactory.ai/insightfactory-databricks-langgraph-tracer
13
13
  # or: npm install @insightfactory.ai/insightfactory-databricks-langgraph-tracer
14
14
  ```
15
15
 
16
- ESM-only. Install the runtime peer dependencies alongside it: `@langchain/core`,
16
+ ESM-only. Install the runtime peer dependencies alongside it: `@langchain/core` and
17
17
  `@mlflow/core`.
18
18
 
19
19
  ## Quickstart
@@ -33,40 +33,38 @@ await graph.invoke(state, { callbacks: getTracingCallbacks() });
33
33
 
34
34
  ## Configuration
35
35
 
36
- Env-first; `InitOptions` override the matching env var.
36
+ Environment variables are read first. `InitOptions` override the matching variable.
37
37
 
38
38
  | Setting | Env var | Notes |
39
39
  |---------|---------|-------|
40
- | Tracking URI | `MLFLOW_TRACKING_URI` | `databricks` or `databricks://<profile>` (required) |
41
- | Experiment | `MLFLOW_EXPERIMENT_ID` | by **id** only (required) |
42
- | Source tag | | `source` option, default `langgraph` |
43
- | Multimodal refs | | inline image/PDF/file bytes are externalized to a reference; `contentRefResolver` chooses it see below |
44
- | Text cap | `DATABRICKS_TRACING_MAX_STRING_CHARS` | opt-in; `maxStringChars` truncates over-long plain-text span content see below |
45
- | Disable | `TESTING` / `BUILDING` = `true`, or `enabled: false` | no-op the only non-throwing path |
46
-
47
- Missing required config **throws** `DatabricksTracingConfigurationError` (fail-fast) disable
48
- explicitly for local/dev runs. `initDatabricksTracing` is idempotent (repeat calls return the
49
- same configuration).
50
-
51
- ### Multimodal inputs (image / PDF / file)
52
-
53
- Chat-model spans record their inputs as **structured messages**, preserving the
54
- multimodal content parts a graph sends to the model OpenAI / LangChain
55
- `image_url`, OpenAI `file`, and Anthropic `image` / `document`.
56
-
57
- The inline base64 of each such part is **never stored** in the trace: it is removed
58
- before recording and replaced with a lightweight reference, so the Unity Catalog
59
- trace tables stay readable (multi-MB data URIs previously pushed large invoice
60
- traces past the SQL inline read limit). A remote `http(s)://` image URL
61
- is already a small reference, so this step keeps it verbatim (but see the text cap
62
- below if enabled, it still truncates *any* string over its threshold, URLs
63
- included). The transform runs on a copy of the inputs, so the live message sent to
64
- the model is untouched and prompt caching is unaffected.
65
-
66
- By default a part becomes a `{ type: ..., _omitted: true, bytes: N }` placeholder.
67
- To store a meaningful reference instead e.g. the Unity Catalog volume path the
68
- image was loaded from, so it can be re-fetched at runtime — pass a
69
- `contentRefResolver`:
40
+ | Tracking URI | `MLFLOW_TRACKING_URI` | `databricks` or `databricks://<profile>`. Required. |
41
+ | Experiment | `MLFLOW_EXPERIMENT_ID` | By id only. Required. |
42
+ | Source tag | none | `source` option, default `langgraph` |
43
+ | Multimodal refs | none | Inline image, PDF and file bytes become a reference. `contentRefResolver` chooses it. See below. |
44
+ | Text cap | `DATABRICKS_TRACING_MAX_STRING_CHARS` | Opt-in. `maxStringChars` truncates long plain-text span content. See below. |
45
+ | Disable | `TESTING` or `BUILDING` set to `true`, or `enabled: false` | Turns the tracer into a no-op. This is the only path that does not throw. |
46
+
47
+ Missing required config throws `DatabricksTracingConfigurationError` at startup. Disable the
48
+ tracer explicitly for local and dev runs. `initDatabricksTracing` is idempotent. Repeat calls
49
+ return the same configuration.
50
+
51
+ ### Multimodal inputs (image, PDF, file)
52
+
53
+ Chat-model spans record their inputs as structured messages, so the multimodal content
54
+ parts a graph sends to the model survive: OpenAI and LangChain `image_url`, OpenAI `file`,
55
+ and Anthropic `image` and `document`.
56
+
57
+ The inline base64 of each such part is never stored in the trace. The tracer removes it
58
+ before recording and replaces it with a small reference, so the Unity Catalog trace tables
59
+ stay readable. Multi-MB data URIs used to push large invoice traces past the SQL inline read
60
+ limit. A remote `http(s)://` image URL is already a small reference, so this step keeps it
61
+ verbatim. The text cap below, if enabled, still truncates any string over its threshold,
62
+ URLs included. The transform runs on a copy of the inputs, so the live message sent to the
63
+ model is untouched and prompt caching is unaffected.
64
+
65
+ By default a part becomes a `{ type: ..., _omitted: true, bytes: N }` placeholder. To store
66
+ a meaningful reference instead, such as the Unity Catalog volume path the image was loaded
67
+ from so it can be re-fetched later, pass a `contentRefResolver`:
70
68
 
71
69
  ```ts
72
70
  import {
@@ -75,7 +73,7 @@ import {
75
73
  } from "@insightfactory.ai/insightfactory-databricks-langgraph-tracer";
76
74
 
77
75
  const imageRef = (part: Record<string, unknown>, ctx: ContentPartContext) => {
78
- // ctx.metadata is the run metadata pass per-run data (e.g. a source volume
76
+ // ctx.metadata is the run metadata. Pass per-run data (e.g. a source volume
79
77
  // path) via the invoke config's `metadata`, which propagates to the LLM run.
80
78
  const path = ctx.metadata.encoded_images_path;
81
79
  return typeof path === "string"
@@ -86,65 +84,139 @@ const imageRef = (part: Record<string, unknown>, ctx: ContentPartContext) => {
86
84
  initDatabricksTracing({ experimentId: "...", contentRefResolver: imageRef });
87
85
  ```
88
86
 
89
- The resolver is called once per multimodal part with the part and a
90
- `ContentPartContext` `index` (position within the message content array, i.e. the
91
- page number for a one-image-per-page invoice), `bytes` (the inline payload length),
92
- and the run `metadata`. Return an object to store as the reference, or
93
- `undefined` / `null` for the default placeholder. It is also accepted by
94
- `new DatabricksLangGraphTracer({ contentRefResolver })` for per-graph wiring.
95
-
96
- The library guarantees no inline image bytes are stored: if a resolver result
97
- re-introduces an inline payload (a `data:` URI, a recognized base64 content part, or
98
- the part's own payload echoed back under any key anywhere in the returned object),
99
- it is rejected and the placeholder is used. Beyond that, keep the reference
100
- **compact** a *fabricated* large string under a custom key is the consumer's
101
- responsibility (the library strips inline payloads but does not otherwise bound what
102
- a resolver returns).
103
- `ctx.metadata` is a shallow copy of the run metadata, so a resolver cannot corrupt run
104
- state by setting top-level keys (don't mutate its nested values, which are shared).
87
+ The tracer calls the resolver once per multimodal part with the part and a
88
+ `ContentPartContext`. The context carries `index`, the part's position in the message
89
+ content array, which for a one-image-per-page invoice is the page number. It also carries
90
+ `bytes`, the inline payload length, and the run `metadata`. Return an object to store as the
91
+ reference, or `undefined` or `null` for the default placeholder.
92
+ `new DatabricksLangGraphTracer({ contentRefResolver })` also accepts it for per-graph wiring.
93
+
94
+ No inline image bytes ever reach the trace. If a resolver result re-introduces an inline
95
+ payload anywhere in the returned object, whether a `data:` URI, a recognized base64 content
96
+ part, or the part's own payload echoed back under another key, the tracer rejects it and
97
+ uses the placeholder. Beyond that, keep the reference small. The library strips inline
98
+ payloads but does not otherwise bound what a resolver returns, so a fabricated large string
99
+ under a custom key is the caller's problem. `ctx.metadata` is a shallow copy of the run
100
+ metadata, so setting top-level keys in the resolver cannot corrupt run state. Its nested
101
+ values are shared, so don't mutate those.
102
+
103
+ ### Spans from outside the tracer
104
+
105
+ A helper traced with MLflow's own `startSpan` or `withSpan` starts a span through the
106
+ OpenTelemetry active context rather than through LangChain's callbacks. Called from a
107
+ graph node it opens its own root trace, carrying none of the root tags, session
108
+ metadata or cost rollup this tracer writes.
109
+
110
+ Two exports close that gap. Which one to use depends on how the traced code starts
111
+ its span.
112
+
113
+ `getActiveTracingSpan()` returns the span of the node currently running, to pass as
114
+ `parent`:
115
+
116
+ ```ts
117
+ import { startSpan, SpanType } from "@mlflow/core";
118
+ import { getActiveTracingSpan } from "@insightfactory.ai/insightfactory-databricks-langgraph-tracer";
119
+
120
+ const span = startSpan({
121
+ name: "lakebase.executeQuery",
122
+ spanType: SpanType.TOOL,
123
+ parent: getActiveTracingSpan(),
124
+ });
125
+ ```
126
+
127
+ `withTracingContext(fn)` makes that span the active one for the duration of `fn`.
128
+ Reach for it when the traced code already uses `withSpan` or the `trace` decorator,
129
+ which read the active context and ignore a `parent` option:
130
+
131
+ ```ts
132
+ import { withSpan, SpanType } from "@mlflow/core";
133
+ import { withTracingContext } from "@insightfactory.ai/insightfactory-databricks-langgraph-tracer";
134
+
135
+ await withTracingContext(() =>
136
+ withSpan(async () => runQuery(sql), {
137
+ name: "lakebase.executeQuery",
138
+ spanType: SpanType.TOOL,
139
+ }),
140
+ );
141
+ ```
142
+
143
+ Spans started anywhere inside `fn`, at any depth, join the graph's trace, and the
144
+ context is scoped to the call so nothing leaks afterwards. Outside a traced run, or
145
+ with no tracer attached, both helpers are inert: `getActiveTracingSpan()` returns
146
+ `undefined` and `withTracingContext` runs the function unchanged.
147
+
148
+ An `undefined` parent is not the same as "no parent". `startSpan` falls back to the
149
+ active OpenTelemetry context, so inside an enclosing `withSpan` block a span with no
150
+ parent joins that block's trace rather than starting its own.
151
+
152
+ Naming the parent at the call site is the difference from the Python package, which
153
+ does this ambiently. Node cannot. MLflow resolves a parent from an
154
+ `AsyncLocalStorage`-backed context, and LangChain runs every callback inside
155
+ `asyncLocalStorage.run(undefined, …)`, so a store entered from a callback cannot
156
+ reach the node body that follows it.
157
+
158
+ That fallback also means a graph invoked from inside a `withSpan` block nests into it
159
+ here, which the Python package does not do: its root span is created without
160
+ consulting the context. That is the one behavioural difference between the two, as
161
+ opposed to the API difference above.
162
+
163
+ Nesting like that has a cost. The graph's root run writes its tags, session metadata
164
+ and cost rollup onto the trace its root span belongs to, which when nested is the
165
+ caller's trace. Two graphs under one `withSpan` block therefore share one set of root
166
+ fields: the second graph's session id replaces the first graph's, and its cost rollup
167
+ overwrites rather than sums. Issue #56 tracks making the rollup additive. To keep the
168
+ fields per graph today, invoke each graph outside the enclosing span and pass
169
+ `getActiveTracingSpan()` as the parent of the spans you want inside it.
170
+
171
+ Spans recorded this way come from MLflow, not from this tracer, so neither the text
172
+ cap below nor the multimodal reference substitution applies to them.
173
+
174
+ The tracer awaits its own callbacks rather than leaving them on LangChain's
175
+ background queue, so a node's span exists by the time the node body runs. Without
176
+ that, a parallel branch can reach `getActiveTracingSpan()` before its own run has
177
+ been recorded.
105
178
 
106
179
  ### Capping large text
107
180
 
108
- Multimodal externalization handles inline *bytes*, but large **plain text** can also
109
- push a trace past the SQL inline read limit — e.g. a classification vocabulary or
110
- aggregated result set threaded through every fan-out span's inputs and outputs. Set
111
- `maxStringChars` (or `DATABRICKS_TRACING_MAX_STRING_CHARS`) to truncate it:
181
+ Multimodal externalization handles inline bytes, but large plain text can also push a trace
182
+ past the SQL inline read limit. A classification vocabulary or an aggregated result set
183
+ threaded through every fan-out span's inputs and outputs is enough. Set `maxStringChars`,
184
+ or `DATABRICKS_TRACING_MAX_STRING_CHARS`, to truncate it:
112
185
 
113
186
  ```ts
114
187
  initDatabricksTracing({ experimentId: "...", maxStringChars: 50_000 });
115
188
  ```
116
189
 
117
- When set, any string **value** longer than the threshold in a span's inputs *or*
118
- outputs — is replaced with a compact placeholder:
190
+ When set, any string value longer than the threshold in a span's inputs or outputs is
191
+ replaced with a placeholder:
119
192
 
120
193
  ```json
121
- { "_truncated": true, "chars": 812345, "bytes": 812345, "preview": "first 256 chars" }
194
+ { "_truncated": true, "chars": 812345, "bytes": 812345, "preview": "<the first 256 chars>" }
122
195
  ```
123
196
 
124
- It is **opt-in / off by default** (generic truncation costs debuggability, so you
125
- choose the threshold). It caps string values only never keys or structural fields
126
- and runs on a copy, so the live messages are untouched. Also accepted by
127
- `new DatabricksLangGraphTracer({ maxStringChars })` for per-graph wiring.
128
-
129
- This is a **distinct** knob from the multimodal handling above: `contentRefResolver`
130
- chooses references for inline image/PDF/file bytes; `maxStringChars` caps arbitrary
131
- text (and never truncates a resolver's reference). Because it is generic, it also
132
- truncates any other over-threshold string — including a remote `http(s)://` image URL
133
- the multimodal step keeps verbatim so set the threshold comfortably above your
134
- reference / URL lengths. Note it is a **per-leaf** mitigation, not a hard per-trace
135
- byte budget enough sub-threshold leaves can still sum past the limit so for the
136
- heaviest spans also reduce what you record (pass ids/references through node state
137
- rather than full payloads).
138
-
139
- The threshold counts **characters** (UTF-16 units here; the Python package counts
140
- code points, so the two can differ on non-BMP text), while the inline limit is in
141
- bytes multibyte text can be up to ~4× larger in bytes than characters, so for
142
- CJK/emoji-heavy content size the cap below `limit / 4`. The placeholder's `bytes`
197
+ The cap is off by default. Generic truncation costs debuggability, so you choose the
198
+ threshold. It caps string values only, never keys or structural fields, and runs on a copy,
199
+ so the live messages are untouched. `new DatabricksLangGraphTracer({ maxStringChars })` also
200
+ accepts it for per-graph wiring.
201
+
202
+ This is a separate knob from the multimodal handling above. `contentRefResolver` chooses
203
+ references for inline image, PDF and file bytes. `maxStringChars` caps arbitrary text and
204
+ never truncates a resolver's reference. Because it is generic, it also truncates any other
205
+ string over the threshold, including a remote `http(s)://` image URL the multimodal step
206
+ keeps verbatim, so set the threshold well above your reference and URL lengths. It is a
207
+ per-leaf limit, not a per-trace byte budget. Enough sub-threshold leaves can still sum past
208
+ the limit, so for the heaviest spans also record less. Pass ids or references through node
209
+ state rather than full payloads.
210
+
211
+ The threshold counts characters. This package counts UTF-16 units and the Python package
212
+ counts code points, so the two can differ on non-BMP text. The inline limit is in bytes, and
213
+ multibyte text can be up to four times larger in bytes than in characters, so for CJK or
214
+ emoji-heavy content size the cap below a quarter of the limit. The placeholder's `bytes`
143
215
  field always reports the exact UTF-8 size of the original.
144
216
 
145
217
  ## Development
146
218
 
147
- Built and tested with **Yarn 4**:
219
+ Built and tested with Yarn 4:
148
220
 
149
221
  ```bash
150
222
  cd typescript
@@ -0,0 +1,42 @@
1
+ import type { LiveSpan } from "@mlflow/core";
2
+ /**
3
+ * The tracer span for the LangChain run currently executing, if there is one.
4
+ *
5
+ * Pass it as `parent` to `startSpan` / `withSpan` so the span joins the graph's
6
+ * trace instead of starting its own. Returns `undefined` outside a traced run, when
7
+ * no {@link DatabricksLangGraphTracer} is attached, or when tracing is disabled, so
8
+ * a call site can use it unconditionally.
9
+ *
10
+ * Only the innermost run is consulted. If that run has no span, which `onRunCreate`
11
+ * allows by warning and continuing, this returns `undefined` rather than walking up
12
+ * to the nearest ancestor that has one. LangChain's manager exposes no parent chain
13
+ * to walk, and the result matches the behaviour without this helper.
14
+ *
15
+ * An `undefined` parent is not the same as "no parent": MLflow's `startSpan` falls
16
+ * back to the active OpenTelemetry context, so inside a `withSpan` block the span
17
+ * joins that block's trace.
18
+ */
19
+ export declare function getActiveTracingSpan(): LiveSpan | undefined;
20
+ /**
21
+ * Run `fn` with the current node as the active OpenTelemetry span.
22
+ *
23
+ * This is the closest equivalent to the Python package's ambient propagation, and
24
+ * the one to reach for when the traced code already uses `withSpan` or the `trace`
25
+ * decorator. Those resolve their parent from the active context and ignore any
26
+ * `parent` option, so naming the parent explicitly does not help them.
27
+ *
28
+ * ```ts
29
+ * await withTracingContext(() =>
30
+ * withSpan(async () => runQuery(sql), {
31
+ * name: "lakebase.executeQuery",
32
+ * spanType: SpanType.TOOL,
33
+ * }),
34
+ * );
35
+ * ```
36
+ *
37
+ * Spans started anywhere inside `fn`, at any depth, join the graph's trace. The
38
+ * context is scoped to the call, so nothing leaks once `fn` returns. Outside a
39
+ * traced run, or with no tracer attached, `fn` runs unchanged.
40
+ */
41
+ export declare function withTracingContext<T>(fn: () => T): T;
42
+ //# sourceMappingURL=active-span.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-span.d.ts","sourceRoot":"","sources":["../src/active-span.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAoC7C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAsB3D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAkBpD"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Nesting spans that this tracer did not create (issue #52, TypeScript side).
3
+ *
4
+ * The Python package publishes each live span into MLflow's context, so an
5
+ * `@mlflow.trace`-decorated helper called from a graph node nests under that node
6
+ * instead of opening its own root trace. Node cannot do the same thing. MLflow's
7
+ * `startSpan` / `withSpan` resolve a parent from the OpenTelemetry active context,
8
+ * which is backed by an `AsyncLocalStorage`, and LangChain runs every callback
9
+ * inside `asyncLocalStorage.run(undefined, …)` (see `consumeCallback` in
10
+ * `@langchain/core`). A store entered there cannot reach the node body that follows,
11
+ * because an async resource cannot mutate its ancestor's store. `enterWith` from
12
+ * inside `onRunCreate` was measured to leave `getCurrentActiveSpan()` null in the
13
+ * node, so ambient propagation is not available on this runtime.
14
+ *
15
+ * What is available is the reverse lookup. LangChain's own storage *does* carry the
16
+ * running config into the node body, and that config names the current run and the
17
+ * handlers attached to it. Resolving the tracer's span for that run gives the same
18
+ * outcome as the Python fix at the cost of naming the parent at the call site:
19
+ *
20
+ * ```ts
21
+ * import { withSpan } from "@mlflow/core";
22
+ * import { getActiveTracingSpan } from "@insightfactory.ai/insightfactory-databricks-langgraph-tracer";
23
+ *
24
+ * await withSpan(async () => runQuery(sql), {
25
+ * name: "lakebase.executeQuery",
26
+ * spanType: SpanType.TOOL,
27
+ * parent: getActiveTracingSpan(),
28
+ * });
29
+ * ```
30
+ */
31
+ import { context, trace } from "@opentelemetry/api";
32
+ import { AsyncLocalStorageProviderSingleton } from "@langchain/core/singletons";
33
+ /**
34
+ * The tracer span for the LangChain run currently executing, if there is one.
35
+ *
36
+ * Pass it as `parent` to `startSpan` / `withSpan` so the span joins the graph's
37
+ * trace instead of starting its own. Returns `undefined` outside a traced run, when
38
+ * no {@link DatabricksLangGraphTracer} is attached, or when tracing is disabled, so
39
+ * a call site can use it unconditionally.
40
+ *
41
+ * Only the innermost run is consulted. If that run has no span, which `onRunCreate`
42
+ * allows by warning and continuing, this returns `undefined` rather than walking up
43
+ * to the nearest ancestor that has one. LangChain's manager exposes no parent chain
44
+ * to walk, and the result matches the behaviour without this helper.
45
+ *
46
+ * An `undefined` parent is not the same as "no parent": MLflow's `startSpan` falls
47
+ * back to the active OpenTelemetry context, so inside a `withSpan` block the span
48
+ * joins that block's trace.
49
+ */
50
+ export function getActiveTracingSpan() {
51
+ try {
52
+ const config = AsyncLocalStorageProviderSingleton.getRunnableConfig();
53
+ const manager = config?.callbacks;
54
+ const runId = manager?._parentRunId;
55
+ if (!runId)
56
+ return undefined;
57
+ const handlers = [
58
+ ...(manager.handlers ?? []),
59
+ ...(manager.inheritableHandlers ?? []),
60
+ ];
61
+ for (const handler of handlers) {
62
+ const span = handler.getSpanForRun?.(runId);
63
+ if (span)
64
+ return span;
65
+ }
66
+ return undefined;
67
+ }
68
+ catch {
69
+ // Never throw into a consumer's node body over a tracing convenience.
70
+ return undefined;
71
+ }
72
+ }
73
+ /**
74
+ * Run `fn` with the current node as the active OpenTelemetry span.
75
+ *
76
+ * This is the closest equivalent to the Python package's ambient propagation, and
77
+ * the one to reach for when the traced code already uses `withSpan` or the `trace`
78
+ * decorator. Those resolve their parent from the active context and ignore any
79
+ * `parent` option, so naming the parent explicitly does not help them.
80
+ *
81
+ * ```ts
82
+ * await withTracingContext(() =>
83
+ * withSpan(async () => runQuery(sql), {
84
+ * name: "lakebase.executeQuery",
85
+ * spanType: SpanType.TOOL,
86
+ * }),
87
+ * );
88
+ * ```
89
+ *
90
+ * Spans started anywhere inside `fn`, at any depth, join the graph's trace. The
91
+ * context is scoped to the call, so nothing leaks once `fn` returns. Outside a
92
+ * traced run, or with no tracer attached, `fn` runs unchanged.
93
+ */
94
+ export function withTracingContext(fn) {
95
+ // Only the setup is guarded, and `fn` is invoked once, outside the guard. Calling
96
+ // it inside would double-invoke a synchronous `fn` that throws: `context.with`
97
+ // runs `fn` synchronously and `AsyncLocalStorage.run` propagates the throw, which
98
+ // the guard would catch and then retry, repeating whatever side effect ran first.
99
+ // A rejected promise is a return value rather than a throw, so an async `fn` was
100
+ // never exposed to that, which is what would have kept it hidden.
101
+ let scoped;
102
+ try {
103
+ const otelSpan = getActiveTracingSpan()?._span;
104
+ if (otelSpan)
105
+ scoped = trace.setSpan(context.active(), otelSpan);
106
+ }
107
+ catch {
108
+ // A renamed MLflow internal or a moved LangChain one degrades to the previous
109
+ // behaviour, a span that opens its own trace, rather than throwing into a
110
+ // consumer's node body.
111
+ scoped = undefined;
112
+ }
113
+ return scoped ? context.with(scoped, fn) : fn();
114
+ }
115
+ //# sourceMappingURL=active-span.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-span.js","sourceRoot":"","sources":["../src/active-span.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAmChF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,kCAAkC,CAAC,iBAAiB,EAEtD,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,EAAE,SAA4C,CAAC;QACrE,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,MAAM,QAAQ,GAAG;YACf,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;SACvC,CAAC;QACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAI,OAAsB,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAAI,EAAW;IAC/C,kFAAkF;IAClF,+EAA+E;IAC/E,kFAAkF;IAClF,kFAAkF;IAClF,iFAAiF;IACjF,kEAAkE;IAClE,IAAI,MAA2B,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAI,oBAAoB,EAAgC,EAAE,KAAK,CAAC;QAC9E,IAAI,QAAQ;YAAE,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;QAC9E,0EAA0E;QAC1E,wBAAwB;QACxB,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClD,CAAC"}
@@ -30,7 +30,7 @@
30
30
  * executed inside `withSpan`). {@link BaseTracer} invokes `persistRun` only for
31
31
  * root runs; every run (root included) is closed from `onRunUpdate`.
32
32
  */
33
- import { SpanType } from "@mlflow/core";
33
+ import { SpanType, type LiveSpan } from "@mlflow/core";
34
34
  import { BaseTracer, type Run } from "@langchain/core/tracers/base";
35
35
  import { type TokenUsage } from "./cost.js";
36
36
  /** Maps LangChain `run_type` strings to MLflow {@link SpanType} (default CHAIN). */
@@ -165,6 +165,14 @@ export declare class DatabricksLangGraphTracer extends BaseTracer {
165
165
  */
166
166
  maxStringChars?: number;
167
167
  });
168
+ /**
169
+ * The live span recorded for `runId`, or `undefined` once the run has ended.
170
+ *
171
+ * Read by {@link getActiveTracingSpan} so a span created outside this tracer can
172
+ * name the running node as its parent. Exposed rather than made public state: the
173
+ * map itself stays private so nothing outside can add to or evict from it.
174
+ */
175
+ getSpanForRun(runId: string): LiveSpan | undefined;
168
176
  onRunCreate(run: Run): Promise<void>;
169
177
  onRunUpdate(run: Run): Promise<void>;
170
178
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"databricks-tracer.d.ts","sourceRoot":"","sources":["../src/databricks-tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"databricks-tracer.d.ts","sourceRoot":"","sources":["../src/databricks-tracer.ts"],"names":[],"mappings":"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"}
@@ -515,6 +515,23 @@ export class DatabricksLangGraphTracer extends BaseTracer {
515
515
  : qualifyDeploymentName;
516
516
  this.contentRefResolver = options.contentRefResolver;
517
517
  this.maxStringChars = resolveMaxStringChars(options.maxStringChars);
518
+ // LangChain defaults callbacks to a background queue, so `onRunCreate` can still
519
+ // be pending when the node body runs. Measured on a two-branch fan-out: the
520
+ // second branch found no span for its own run and its foreign spans fell out of
521
+ // the trace. Awaiting the handler closes that race, and is the counterpart of
522
+ // `run_inline` in the Python package. The handler only manipulates in-memory span
523
+ // state, so the cost is the ordering, not the work.
524
+ this.awaitHandlers = true;
525
+ }
526
+ /**
527
+ * The live span recorded for `runId`, or `undefined` once the run has ended.
528
+ *
529
+ * Read by {@link getActiveTracingSpan} so a span created outside this tracer can
530
+ * name the running node as its parent. Exposed rather than made public state: the
531
+ * map itself stays private so nothing outside can add to or evict from it.
532
+ */
533
+ getSpanForRun(runId) {
534
+ return this.spanMap.get(runId);
518
535
  }
519
536
  async onRunCreate(run) {
520
537
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"databricks-tracer.js","sourceRoot":"","sources":["../src/databricks-tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"databricks-tracer.js","sourceRoot":"","sources":["../src/databricks-tracer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -59,6 +59,7 @@ export declare function getTracingCallbacks(): BaseCallbackHandler[];
59
59
  export declare function _resetTracingForTests(): void;
60
60
  export { type ContentPartContext, type ContentRefResolver, DatabricksLangGraphTracer, } from "./databricks-tracer.js";
61
61
  export { DatabricksTracingConfigurationError } from "./errors.js";
62
+ export { getActiveTracingSpan, withTracingContext } from "./active-span.js";
62
63
  export { parseUcDestinationPath, resolveUcDestination, UC_DESTINATION_TAG, UC_TABLE_HEADER, type UcDestination, } from "./uc-export.js";
63
64
  export { calculateLLMCost, qualifyDeploymentName, resolvePricingKey, getPricingProvider, spanCostPayload, type LLMCost, type TokenUsage, } from "./cost.js";
64
65
  export { TraceTagKey, TraceMetadataKey, SpanAttrKey } from "./generated-keys.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wBAAwB,CAAC;AAKhC,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAkCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,WAAgB,GAAG,oBAAoB,CAkErF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,EAAE,CAG3D;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,KAAK,OAAO,EACZ,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wBAAwB,CAAC;AAKhC,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAkCD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,WAAgB,GAAG,oBAAoB,CAkErF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,mBAAmB,EAAE,CAG3D;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,KAAK,OAAO,EACZ,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -124,6 +124,7 @@ export function _resetTracingForTests() {
124
124
  }
125
125
  export { DatabricksLangGraphTracer, } from "./databricks-tracer.js";
126
126
  export { DatabricksTracingConfigurationError } from "./errors.js";
127
+ export { getActiveTracingSpan, withTracingContext } from "./active-span.js";
127
128
  export { parseUcDestinationPath, resolveUcDestination, UC_DESTINATION_TAG, UC_TABLE_HEADER, } from "./uc-export.js";
128
129
  export { calculateLLMCost, qualifyDeploymentName, resolvePricingKey, getPricingProvider, spanCostPayload, } from "./cost.js";
129
130
  export { TraceTagKey, TraceMetadataKey, SpanAttrKey } from "./generated-keys.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insightfactory.ai/insightfactory-databricks-langgraph-tracer",
3
- "version": "1.0.0",
3
+ "version": "1.0.1-dev.18",
4
4
  "description": "LangGraph tracing for Databricks MLflow (TypeScript)",
5
5
  "type": "module",
6
6
  "packageManager": "yarn@4.12.0",
@@ -48,6 +48,7 @@
48
48
  "pricing:update": "tsx scripts/update-pricing.ts"
49
49
  },
50
50
  "dependencies": {
51
+ "@opentelemetry/api": "^1.9.0",
51
52
  "@opentelemetry/otlp-transformer": "^0.205.0",
52
53
  "@opentelemetry/sdk-trace-base": "^2.1.0"
53
54
  },