Synthetics command reference
editSynthetics command reference
editThis 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
editHeartbeat 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
, orjson
. 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 throughstdin
. 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
editScaffold 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
editCreate 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
, ormanage_api_key
-
-
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.
-
If using one or more public locations:
-
Cluster privileges: At least one of
-
--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
editList 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.