• Log inStart now

New runtime transition guide

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 got node.js library instead of the deprecated request library.
  • Support for async / await syntax. This simplifies script creation and maintenance, diverging from the old runtime’s .then promise chaining.
  • 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.

Private location requirements

Using new runtimes on private locations requires the installation of synthetics job manager.

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.

To convert:

  1. Go to one.newrelic.com > Synthetics, then select the monitor you want to edit.
  2. From the Settings tab, click General.
  3. 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).
  4. Click Validate to check that your monitors function in the new runtime. Make any script modifications if needed.
  5. Save.


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.

  1. Go to one.newrelic.com > Synthetics.
  2. Click Create monitor, then select the monitor type you want to create.
  3. Use the Runtime dropdown menu to switch between the legacy and new runtime environment.
  4. 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

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.

Unlike with REST APIs, NerdGraph lets you programatically create broken links, step, and certificate check monitors.

Get custom timing details with your scripted API monitors

Using the $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.

Deprecated features

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.

white/black list

allow/deny list

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

Use async/await or .then to handle promises

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 await or with .then promise chains. This will ensure script functions execute in the expected order.

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.