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.
Private location requirements
Convert your monitors to the new runtime
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.
Create a monitor in the new runtime
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.
Use NerdGraph to manage your monitors
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.
Get custom timing details with your scripted API 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.
As of version 2.0.29 or newer of the browser runtime, you will no longer receive deprecation warnings for using the
$driver syntax in the new runtime. You can continue to use this Selenium 3.6 compatible syntax in the Selenium 4.1 runtime. You can also choose to use the
$selenium based Selenium 4.1 syntax.
New (if applicable)
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