To our synthetics / browser monitor users, with the release of 7.12 today you'll notice a new, improved syntax for specifying browser monitors. Please see our updated docs for more info.
Here's a sample of the new config
heartbeat.monitors:
- type: browser
id: my-monitor
name: My Monitor
schedule: "@every 1m"
source:
inline:
script: |-
step("load homepage", async () => {
await page.goto('https://www.elastic.co');
});
step("hover over products menu", async () => {
await page.hover('css=[data-nav-item=products]');
});
- name: Todos
id: todos
type: browser
schedule: "@every 1m"
source:
local:
path: "/opt/todos"
The gist of it is, that we got rid of the heartbeat.synthetic_suites
top level config, and combined that functionality into the browser
monitor type. This yields a more consistent syntax. It's a breaking change for existing configs.
Additionally, we changed the structure of the browser
type config, to include a notion of source
. The idea here is we now have two types of source inline
and local
, and are planning to add a third one for remote zips, which this syntax now lets us do. See [Heartbeat] Zip URL Support by andrewvc · Pull Request #24714 · elastic/beats · GitHub to track remote zip support, which can be used in conjunction with a git repo that hosts zips (like github) to let you deploy new synthetic tests by simply pushing a new change to git.