create_funnel
Create a complete SigNoz trace funnel with ordered steps in one call—automatically handles API requirements and cleans up on failure.
Instructions
Create a SigNoz trace funnel and set its steps in a single call.
This wraps two REST calls (POST /new then PUT /steps/update) and
handles the undocumented requirements that make hand-rolling them fail:
millisecond timestamps on both, the mandatory timestamp on the update,
and omitting each step's id so SigNoz mints a valid UUID. If setting
steps fails, the empty funnel is deleted rather than left behind.
Args:
name: Funnel name, e.g. "agent-tool-pipeline".
steps: Ordered list of at least 2 steps. Each is a dict with:
* ``service`` (required) -- the service name as it appears in traces
* ``span`` (required) -- the exact span name
* ``name`` (optional) -- friendly label for charts
* ``latency_type`` (optional) -- ``"p90"``/``"p95"``/``"p99"``
(default ``p99``; **``p50`` is not implemented by SigNoz** and
silently yields p99 -- you will get a warning back)
* ``has_errors`` (optional) -- only match errored spans
Example::
[{"service": "frontend", "span": "GET /cart", "name": "browse"},
{"service": "payments", "span": "charge", "name": "pay"}]Returns:
funnel_id, the normalized steps, and any warnings.
Note: All steps must occur within the same trace. SigNoz matches the first occurrence of each step and enforces order, so funnels cannot see loops or retries.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| steps | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||