If your monitors are on our legacy runtime, we recommend updating those synthetic monitors to take advantage of the newer runtime's features. By updating them, you improve the backend environment in which your public monitors execute.
Making the switch gives you these features:
- Access to Chrome version 100 and higher, so that your scripted browser monitors use browser versions similar to the ones used by your end users.
- Access to the updated scripted API runtime that uses
gotnode.js library instead of the deprecated
- Support for async / await syntax. This simplifies script creation and maintenance, diverging from the old runtime’s
- Better support for shadow DOM objects.
- Custom timing library for scripted API monitors.
- Access to our NerdGraph API to automate the management of your synthetic monitors.
Before switching, make sure you've updated your allow lists to accept network requests from the new runtime's public IP ranges.
Existing monitors default to the runtime used at their time of creation. To prevent your critical monitors from breaking during future end of life processes, we recommend converting your monitors sooner rather than later.
- Go to one.newrelic.com > Synthetic monitoring, then select the monitor you want to edit.
- Click General.
- Use the dropdown menu to switch the current runtime view (use Node.js 16 for scripted API monitors and Chrome 100 for scripted browser monitors).
- Click Validate to check that your monitors function in the new runtime. Make any script modifications if needed.
Refer to our runtime upgrade troubleshooting guide for common upgrade errors and solutions.
When you create a new simple browser monitor, scripted browser monitor, or scripted API monitor, the new runtime will be the default. You may need to switch to the legacy runtime if you're creating a monitor for a private location using containerized private minions instead of synthetics job managers.
- Go to one.newrelic.com > Synthetic monitoring > Create monitor, then select the monitor type you want to create.
- Use the Runtime dropdown menu to switch between the legacy and new runtime environment.
- Create your monitor.
While the new runtime is backwards compatible with the legacy runtime, we recommend that you convert to the new environment as soon as possible.
You can manage synthetic monitors using our NerdGraph API. Compared with our previous REST API functionality, you get:
- Management of your certificate check monitors, broken links monitors, and step monitors.
- Simplified processes for creating scripted monitors.
- The ability to attach scripts to scripted monitors with only one call (as opposed to two calls).
- The ability to add tags to your monitors.
$http object or
request module in the legacy runtime allowed some of your scripted API monitors to report timing details. The result details were limited to script logs, a check result (pass /fail), and were unavailable with Node.js modules.
The new synthetic monitoring runtime includes out-of-the-box timing details when using the default
$http object. To get custom timing details when using other Node.js modules, you can use the $har library to report to New Relic.
The new runtime includes syntax changes and other deprecations. We're introducing new language that changes the script syntax in your scripted browser monitors. The new runtime is backwards compatible with legacy runtime syntax in most cases. To avoid breaking monitors during the upgrade process, you may receive a deprecation warning in your script log output.
New (if applicable)
$browser provides backwards compatibility with Selenium WebDriver 3.6, but $webDriver allows you to use Selenium WebDriver 4.1 syntax.
$driver provides backwards compatibility with Selenium WebDriver 3.6, while $selenium allows you to use Selenium WebDriver 4.1 syntax.
New Relic is committed to inclusivity, which you can read more about on our diversity, equity, and inclusion page.
Selenium WebDriver promise manager / control flow
Selenium WebDriver promise manager / control flow allowed some functions to execute in order, without manually managing promises / async functions. This was removed in Selenium WebDriver 4.0 and is not available in the new runtime. All async functions and promises need to be managed with