Node reference: Synthetic and observability
Web Test, API Test and APM Observe — what each does, the form fields, and the outputs.
Node reference: Synthetic and observability
Add these nodes from the designer palette (Synthetic Tests and Observability groups). Click a node on the canvas to open its config panel — everything below is filled in there.
Web Test
Drives a real browser through a multi-step journey on a synthetic agent. Use it as the "do what a user does" step of a Workbook: log in, search, add to cart, check out.
What you fill in
| Field | What to enter |
|---|---|
| Assigned Agents | Which synthetic agents may run the test. Leave empty to use any available agent; pick your private agent for apps behind your firewall. |
| Starting URL | The page the journey starts on. Supports {{variable}} values. |
| Wait Strategy | How the browser decides a page has settled before the next step (e.g. wait for network idle). |
| Width / Height | The browser window size the test runs at. |
| Test Steps | The journey itself, built step by step in the step builder: Navigate, Click, Type Text, Read Text, Wait, Assert (Validate) and more — the same builder Synthetics web tests use (see Web (browser) tests). |
| Timeout (ms) / Retries | How long the test may take overall, and how many times to retry it on a transient error. |
What it outputs
Whether the journey passed, how long it took, how many steps ran and passed, the network requests the browser made, and the text of any Read Text step. That text becomes a variable for later nodes — for example, read the order id off the confirmation page and check it in the database next.
Example — login journey: Navigate to the login page → Type Text into the email and password fields (use {{user}} / {{password}} from secrets) → Click the submit button → Read Text from the welcome banner into greeting → Assert the banner contains "Welcome".
API Test
Sends an HTTP request (or a multi-step API flow) from a synthetic agent and checks the response.
What you fill in
| Field | What to enter |
|---|---|
| URL / Method | The endpoint and HTTP method. The URL supports {{variable}} values. |
| Expected Status | The HTTP status that counts as a pass (e.g. 200, 201). |
| Headers / Body | Optional request headers (added row by row) and a request body. |
| Auth Type | None, Bearer Token, username + password, or an API key in a custom header. Store the credential as a secret and reference it as a {{variable}}. |
| Base URL | For multi-step flows: the prefix shared by every step. |
| Assigned Agents | As for Web Test — pick your private agent for internal APIs. |
| Timeout (ms) / Retries | Response deadline and retry count for transient errors. |
What it outputs
Pass/fail, the status code, response time, and the captured response. Use the node's Variable Extraction panel to pull a value out of the response body — e.g. bind orderId to body.id — for downstream nodes.
APM Observe
This is what makes a Workbook more than a ping — after your synthetic step runs, APM Observe pulls the APM traces those requests generated inside your service, so you can assert on what actually happened in the backend.
What you fill in
| Field | What to enter |
|---|---|
| Service Name | The service to inspect, exactly as it reports to APM. The panel checks live whether recent traces exist under that name. |
| Operation Name | Optional — narrow the check to one operation. |
| Time Window (seconds) | How far back to look for traces. |
| Collection Delay (seconds) | Wait this long before collecting, so traces have time to arrive. |
| Max Retries / Retry Interval (seconds) | Keep re-checking until traces appear. |
| Correlate web-test requests | Match the exact requests your synthetic step made to the traces they produced. |
What it outputs
The number of spans found, whether any had errors, the error count, and the service's latency in the window (e.g. p95). Assert on these with an Assertion node — for example: no errors and p95 under 800 ms. You can also capture a span tag into a variable for later steps.
Place APM Observe after the synthetic node so the traces exist; the Collection Delay field covers ingest lag.