merge_graphs
Unions canonical `{nodes, edges}` graphs (produced by `make_graph` or `summarize_graph`) into one, aggregating same-id nodes and same-`(from, to)` edges.
Each trailing "<agg>:<attr>" argument aggregates that attribute
(sum/avg/min/max/countif/set/any/first); the intrinsic count
is summed and time min-merged automatically; unlisted attributes drop. Use it
to aggregate many per-trace graphs into a single topology. (bzrk extension)
Syntax
merge_graphs(graph)Parameters
Prop
Type
Returns: dynamic
Syntax
merge_graphs(graph, agg)Parameters
Prop
Type
Given a dynamic field
This parameter is string-only. In permissive mode — the default — almost every field arrives as a dynamic, so passing one works because Berserk injects asstring: extract-or-null, the value when it really is a string and null otherwise, so the call yields null (a predicate yields false). A property bag or array is therefore not matched, and tostring() is never applied implicitly — use it explicitly to match a bag's JSON text, keys included. Strict mode rejects the dynamic instead of coercing it. See String coercion and the asXXX family.
Returns: dynamic
Examples
Example 1
spans
| summarize g = make_graph(
span_id,
parent_span_id,
start_time,
"service",
resource.service.name
)
by trace_id
| project g = summarize_graph(g, "service")
| summarize topology = merge_graphs(g)| topology (dynamic) |
|---|
| {"edges":[],"nodes":[{"count":9,"id":"unknown","time":1704103200000000000}]} |