Important
This document is targeted to the Node.js 16.10 scripted API runtime and newer. Details for the http-request
based Node.js 10 and older runtimes
Use synthetic monitoring's API tests to monitor your API endpoint to ensure it is functioning correctly. New Relic uses the got module internally to make HTTP calls to your endpoint and validate the results.
Here we present some example functions showing how to use the $http
object to submit your request. The $http
object provides a custom request
-like experience while being powered by got
to provide backward compatibility for basic use cases while avoiding the use of the deprecated request
module. Not all advanced use cases of request
are or will be supported by this backward compatibility. For detailed documentation on the options available for this object, see the got module readme. The got
module documentation includes a migration guide highlighting changes to expect from the request
module used in previous scripted API runtimes.
The request
-like experience provided by the $http
object will also be returned for any customers attempting to use request
directly in Node.js 16 and newer scripted API runtimes.
Tip
To view and share other API test examples, visit the synthetics scripts section in Explorers Hub or the Synthetic Monitoring Quickstarts Library.
Use API got module
API tests are powered by the got module, which is available through the $http
object. For instructions on creating a monitor, see Adding monitors.
Read on to learn how to define metadata for your request, make a GET request, make a POST request, and how to validate the results.
Result timing details will be provided as long as you use the $http
object. For scripted API use cases not covered by the $http
object, you can use the $har
object to report custom timing details.
Important
After a maximum run time of three minutes, New Relic manually stops the script.
one.newrelic.com > Synthetic monitoring >Create monitor: The script editor suggests functions, selectors, and other elements to simplify scripting commands (available in GitHub).
Configure request options
To start your script:
- Declare a variable (such as
options
) to store your got options object. - Define request options such as the URL endpoint and custom headers.
Tip
For a full list of supported options, see got options in the got
documentation on GitHub.
Here's an example of optional metadata in the options object:
Send a GET request
To make a GET request, use the $http.get
method to submit your request. Define your request options, make your request using $http.get
, then validate the response to ensure your endpoint is returning the correct results.
Send a POST request
To make a POST request, use the $http.post
method to submit your request. Define your request options, make your request using $http.post
, then validate the response to ensure your endpoint is returning the correct results.
Validate results
To validate your results, import the assert
module to define your test case. Call an assert
method to validate your endpoint's response. If any assert
functions fail, the entire monitor will be considered a failed check. This may trigger alert notifications and affect your metrics.
Important
Synthetic monitoring does not allow thrown exceptions. Thrown exceptions result in script failure. Use the assert
module to validate your results, and use console.log()
to log results to the synthetic's console.