Synthetics command reference

edit

This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.

elastic-synthetics
edit

Heartbeat uses the npx @elastic/synthetics command to run and report synthetic tests. It can also be used locally to help develop your tests.

npx @elastic/synthetics [options] [files] [dir]

You will not need to use most command line flags — they have been implemented purely to interact with Heartbeat. However, there are some you may find useful. They are documented below.

--debug
Prints debug info.
--match <name>
Filters journey with the name or a matching tag.
--tags <name...>
Filters journey with the given tag(s).
--reporter
One of junit, default, or json. Use the JUnit reporter to provide easily parsed output to CI servers like Jenkins.
--no-headless
Runs with the browser in headful mode.
--inline
Instead of reading from a file, cat inline scripted journeys and pipe them through stdin. For example, cat path/to/file.js | npx @elastic/synthetics --inline.
--playwright-options <jsonstring>
JSON object to pass in custom Playwright options for the agent. Options passed will be merged with Playwright options defined in your synthetics.config.js file. Options defined via --playwright-options take precedence.
--screenshots <on|off|only-on-failure>
Captures screenshots for every step in the journey.
-h, --help
Shows help for the npx @elastic/synthetics command.
elastic-synthetics init
edit

Scaffold a new project using Elastic Synthetics.

This will create a template Node.js project that includes the synthetics agent, required dependencies, a synthetics configuration file, and example journey files. These journeys can be edited and then pushed to Kibana to create monitors.

npx @elastic/synthetics init <name-of-project>
elastic-synthetics push
edit

Create monitors in Kibana by using your local journeys.

npx @elastic/synthetics push --auth <api-key> --url <kibana-url> --project <id|name>
--auth

API key used for Kibana authentication.

If you are pushing to a private location, you must use an API key generated in 8.4 or higher.

To create an API key, you must be logged into Kibana as a user with the following privileges:

  • Cluster privileges: At least one of manage_own_api_key, manage_security, or manage_api_key
  • Kibana privileges:

    • If using one or more public locations: All for Synthetics and Uptime in the Observability section.
    • If using one or more private locations: All for both Fleet and Integrations in the Management section.
--url
The Kibana URL for the deployment to which you want to upload the monitors.
--project
A unique id associated with your project. It will be used for logically grouping monitors. If you used init to create a project, this is the <name-of-project> you specified.
elastic-synthetics locations
edit

List all available locations for running synthetics monitors.

npx @elastic/synthetics locations --url <kibana-host> --auth <api-key>

Run npx @elastic/synthetics locations with no flags to list all the available global locations managed by Elastic for running synthetics monitors.

--url
The Kibana URL for the deployment from which to fetch all available public and private locations.
--auth
API key used for Kibana authentication.