In early 2022, we released a new runtime for public locations that simplified script creation, gave scripted monitors access to Chrome 100 and Node.js 16, and introduced automated monitor management with our NerdGraph API.
The synthetics job manager brings monitors on the newest runtime to your private locations, enabling your monitors to more closely match a real user's experience.
Job managers execute your synthetics from runtime-specific container images tailored to the jobs you want to execute. While CPMs bundled legacy runtimes and artifacts into one growing file, our job manager instead separates our Chrome, Node, and job management work into separate, smaller images.
With more control over job configuration for your private locations, job managers also let you:
- Opt out of running a subset of runtime images if they are not required for their monitors.
- Update your runtime images (ping, API, and browser) independently of synthetics job manager updates.
- Configure and size your deployment how you want it.
Unlike CPMs, which used file sharing to coordinate jobs in private locations, job managers communicate via HTTP with web services. This removes certain deployment requirements, such as specifying mounted volume in your docker configuration or persistent volumes in your Kubernetes configuration.
By simplifying deployment, the job manager:
- Reduces the possibility of permissions-related errors in high security environments.
- Reduces the risk of internal engine errors by no longer creating unique docker networks for non-ping monitor jobs.
- Gives better support at deployment for Kubernetes labels, annotations, node selectors, tolerations, and affinity across all components
Ready to download the job manager? You have a few options for getting started. Check out our install doc for installation procedures, or read through our configuration doc for working with new or existing private locations.
You can configure both CPMs and the job managers with the same private location key, but CPMs will execute monitors that use the legacy runtime, job managers will execute monitors that use the newest runtime, and ping monitors will be load balanced and executed by both the CPM and job managers.
If you're running more than one Docker private location container in the same host, you'll have port conflicts. To avoid this port contention, make sure you do the following when you start setting up job managers:
- Run job managers and CPMs on different hosts.
- Run each job manager on a separate host.
- Run each CPM on a different host.
Want a fresh start? Create a new private location for the job manager. Your private location configuration and migration path comes down to your own personal preference.
The synthetics job manager is not legacy runtime compatible. CPMs, on the other hand, are not compatible with the newest runtime. If your job managers and CPMs are sharing a key, then your CPMs will handle any monitors on the legacy runtime, while the job manager will handle any monitors on the newest runtime. In other words, CPMs cannot deploy scripted monitors that use Chrome 100 or Node.js 16.
If you want to upgrade your monitors:
- Go to one.newrelic.com > Synthetic monitoring, then select the monitor you want to edit.
- From the Settings tab, click General.
- Switch to the newest runtime view via the dropdown menu. For scripted API monitors, choose Node.js 16. For scripted browser monitors, choose Chrome 100.
- If using separate private locations for containerized private minions and synthetics job managers, update the location selection.
- 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.
Decided to upgrade to the new runtime? Check out our NerdGraph APIs to programmatically update monitors.
A few capabilities available to CPMs aren't supported by synthetics job manager. We'll include these features in the upcoming months and update this page as they become available. They include:
- Support for SSL certificate expiration, broken link, and step monitors
- Verified script execution (VSE)
- User defined environment variables
- Adjusting JVM configuration options