Synthetic monitoring has new runtimes available. We recommend updating your synthetic monitors that were created using the legacy runtime to take advantage of the new runtime's capabilities. By converting from the legacy runtime to the new runtime, you improve the backend environment that your public monitors execute from.
Making the switch gives you these features:
- Access to Chrome 100, so your scripted browser monitors use browser versions similar to the ones used by your customers.
- 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 that 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 > Synthetics, then select the monitor you want to edit.
- From the Settings tab, 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 > Synthetics.
- Click 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.
We have expanded support for synthetic monitors to our NerdGraph API. By using NerdGraph to manage your monitors, you get:
- Management of your certificate check monitors, broken links monitors, and step monitors, not previously supported through REST APIs.
- Simplified processes for creating scripted monitors.
- The ability to attach scripts to scripted monitors with only one call, rather than the two calls needed with REST APIs.
- 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