Skip to content

Commit

Permalink
docs: finalizing revamp of the migration guide
Browse files Browse the repository at this point in the history
  • Loading branch information
pranav-new-relic committed Oct 17, 2024
1 parent 9decd1e commit 8ba942b
Showing 1 changed file with 26 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,45 @@ sidebar_current: "synthetics-legacy-runtime-eol-migration-guide"
description: |-
Use this guide to find details on the end-of-life of the Legacy Runtime of Synthetic Monitors, implications seen by customers maintaining Synthetic Monitor resources via the New Relic Terraform Provider (running on the legacy runtime), and actions to be taken prior to the EOL to avoid consequences.
---
## Synthetic Legacy Runtime EOL (Upcoming): Implications and Actions Needed 📢
## Synthetic Legacy Runtime EOL: Implications and Actions Needed 🚨

New Relic Synthetics announced earlier this year **the end of life (EOL) of the Synthetics Legacy Runtime** (along with Containerized Private Minions - CPMs), **which is scheduled to occur on** <b style="color:#FF0000;">October 22, 2024</b>. After this date, **all monitors running on the legacy runtime will be transitioned to the new runtime**, potentially resulting in interruptions of Synthetic checks from those monitors if their configurations are not compatible with the new runtime. Additionally, changes to **no longer permit *new* Synthetic Monitors to be created without the new runtime have taken effect in the Synthetics API on <b style="color:#FF0000;">August 26, 2024</b>**; these changes have also been reflected in the New Relic Terraform Provider starting <b style="color:#FF0000;">v3.43.0</b> to disallow the creation of new monitors without the new runtime (in the legacy runtime).
As announced by New Relic Synthetics earlier this year, the <b style="color:red;">end-of-life</b> of the **Synthetics Legacy Runtime** and Containerized Private Minions took effect on <b style="color:red;">October 22, 2024</b>, implying that support for using the deprecated Synthetics Legacy Runtime with **new and existing** Synthetic monitors <b style="color:maroon;">officially ended as of October 22, 2024</b>. As a consequence of this API change, all requests associated with Synthetic Monitors (except Ping Monitors) going out of the New Relic Terraform Provider <span style="color:maroon;">will be blocked by an API error</span> if they include values corresponding to the legacy runtime or blank runtime values.

These timelines and implications [have been communicated](https://forum.newrelic.com/s/hubtopic/aAXPh0000001brxOAA/upcoming-endoflife-legacy-synthetics-runtimes-and-cpm) by New Relic Synthetics (also via customer communications) and via the New Relic Terraform Provider, including [the GitHub repository of the provider](https://github.com/newrelic/terraform-provider-newrelic/issues/2673) and the documentation for all Synthetic Monitor resources starting with [v3.36.1](https://registry.terraform.io/providers/newrelic/newrelic/3.36.1/docs/resources/synthetics_script_monitor) of the provider. In light of this, customers are required to update any monitors running on the legacy runtime to the new runtime as soon as possible (prior to the EOL) to avoid any potential interruptions of Synthetic checks.
Following these changes, starting with <b style="color:red;">v3.51.0</b> of the New Relic Terraform Provider, configuration of **new and existing** Synthetic monitors without runtime attributes (or) comprising runtime attributes signifying the legacy runtime <span style="color:red;">will be deemed invalid</span> (this applies to all Synthetic monitor resources, except `newrelic_synthetics_monitor` with type `SIMPLE`). If your monitors' configuration <span style="color:red;">is not updated with new runtime values</span>, you will see the consequences stated here.

From the perspective of a customer who has configured Synthetic monitors running on the legacy runtime via the New Relic Terraform Provider, the actions needed to prevent the aforementioned implications are somewhat more specific to the provider. This specificity arises from the fact that any monitors maintained via Terraform that continue to run on the legacy runtime after the EOL will experience a drift at the EOL, indicating that runtime attributes with values corresponding to the new runtime are absent from the monitor's configuration (or are present with legacy runtime values), as Synthetics will have migrated all legacy runtime monitors to the new runtime. In addition to this, at the EOL, if a `terraform apply` is performed on such monitors (which do not include runtime attributes with values corresponding to the new runtime), an error would be thrown by the API, disallowing the operation performed on the monitor.
These timelines and implications [were communicated](https://forum.newrelic.com/s/hubtopic/aAXPh0000001brxOAA/upcoming-endoflife-legacy-synthetics-runtimes-and-cpm) by New Relic Synthetics (also via customer communications) and via the New Relic Terraform Provider, including [the GitHub repository of the provider](https://github.com/newrelic/terraform-provider-newrelic/issues/2673), the documentation for all Synthetic Monitor resources starting with [v3.36.1](https://registry.terraform.io/providers/newrelic/newrelic/3.36.1/docs/resources/synthetics_script_monitor) of the provider and this guide. New Synthetic monitors created after August 26, 2024 already adhere to these restrictions, as part of the first phase of the EOL.

To ensure a smooth transition, the following guide outlines the actions to be taken by customers who continue to maintain monitors running on the legacy runtime via Terraform, in order to avoid such drift, errors and similar unforeseen repercussions after the EOL.
We kindly recommend that you upgrade your Synthetic Monitors to the new runtime as soon as possible <span style="color:red;">if they are still using the legacy runtime</span>, to avoid seeing the aforementioned consequences and potential interruptions to Synthetic checks. Please refer to this guide for more Terraform-specific details of the impact, changes needed to Terraform configuration of monitors not using the new runtime, and more information.

You would not be affected by the EOL if your Synthetic monitors' Terraform configuration comprises new runtime values.

## Navigating through this Guide

For a customer who previously configured Synthetic monitors running on the legacy runtime via the New Relic Terraform Provider (and has not yet shifted monitors to the new runtime), the actions needed to prevent the aforementioned implications are somewhat more specific to the provider. This specificity arises from the fact that any monitors maintained via Terraform that continue to run on the legacy runtime will experience a drift, indicating that runtime attributes with values corresponding to the new runtime are absent from the monitor's configuration (or are present with legacy runtime values), as Synthetics has migrated all legacy runtime monitors to the new runtime, in accordance with the EOL. Running a `terraform apply` on such monitors (which do not include runtime attributes with values corresponding to the new runtime) would also result in an error thrown by the API, disallowing the operation performed on the monitor.

Since the end-of-life has already taken place on October 22, 2024; the following guide outlines the actions to be taken by customers who continue to maintain monitors running on the legacy runtime via Terraform, to ensure a smooth transition and avoid such drift, errors and similar unforeseen repercussions.

A quick summary to help you navigate through this document is as follows -

- TL;DR - if you're already aware of the consequences of the EOL and would like to find values of runtime attributes to add/replace in your configuration to upgrade your monitors to the new runtime, see the table in the following section.
- After the EOL, monitors running on the legacy runtime would be moved to the new runtime and would experience consequences briefly stated in the paragraph above - interruption of Synthetic checks, drift in Terraform and errors upon trying to use monitors without the new runtime, if these monitors are Terraform-maintained. See **Implications, Action Needed** below for more details on the exact implications.
- In order to prevent this, one would need to move all monitors running on the the legacy runtime to the new runtime, prior to the EOL. How does one confirm which of their monitors are still running on the legacy runtime? See the **How do I Identify the Runtime of My Monitor?** section below.
- Given these monitors are Terraform maintained, how does one move their monitors to the new runtime while also making use of the Runtime Upgrades UI in New Relic to validate if their legacy runtime monitors are fit to run in the new runtime? See the **Syncing Updates made to Monitors in the Legacy Runtime made via the Runtime Upgrades UI with Terraform Configuration** section below.
- TL;DR - if you're already aware of the consequences of the EOL and would like to find values of runtime attributes to add/replace in your configuration to upgrade your monitors to the new runtime, see the table in [this section](#1-identifying-the-change-via-the-runtime-upgrades-ui-making-the-change-via-the-terraform-configuration-of-the-monitor).
- After the EOL has occurred on October 22, 2024, monitors running on the legacy runtime have been moved to the new runtime. This would lead to consequences briefly stated in the paragraph above - interruption of Synthetic checks, drift in Terraform and errors upon trying to use monitors without the new runtime, if these monitors are Terraform-maintained. See [**Implications, Action Needed**](#implications-action-needed) below for more details on the exact implications.
- In order to avoid these consequences, one would need to move all monitors running on the legacy runtime to the new runtime. How does one confirm which of their monitors are still running on the legacy runtime? See the [**How do I Identify the Runtime of My Monitor?**](#how-do-i-identify-the-runtime-of-my-monitor) section below.
- Given these monitors are Terraform maintained, how does one move their monitors to the new runtime while also making use of the Runtime Upgrades UI in New Relic to validate if their legacy runtime monitors are fit to run in the new runtime? See the [**Syncing Updates made to Monitors in the Legacy Runtime made via the Runtime Upgrades UI with Terraform Configuration**](#syncing-updates-made-to-monitors-in-the-legacy-runtime-made-via-the-runtime-upgrades-ui-with-terraform-configuration) section below.

## Implications, Action Needed

-> **NOTE** Please note that these (upcoming) consequences apply to any **existing monitors** (monitors already created) **which are still running on the Legacy Runtime**. Changes to **restrict new monitors from using the legacy runtime have *already* taken effect in the Synthetics API** on <b style="color:#FF0000;">August 26, 2024</b>. Changes to reflect the same behaviour in the New Relic Terraform Provider have been released with **v3.43.0**, implying that starting v3.43.0, operations to create new monitors in the legacy runtime (i.e. without runtime attributes comprising values corresponding to the _new_ runtime; see table below) would be disallowed by the provider. Using any older versions of the New Relic Terraform Provider (< 3.43.0) to create monitors in the legacy runtime would result in a failure of `terraform apply`, caused by a similar error thrown by the GraphQL mutation, disallowing creation of monitors in the legacy runtime.

- If your monitor continues to use the legacy runtime and is not upgraded to the new runtime prior to the end of life (EOL) on October 22, 2024, your monitor will not be able to run checks after the EOL if the configuration of your monitors is not compatible with the new runtime. For example, with scripted monitors, if the script is not compatible with the new runtime, Synthetic checks on your monitor will no longer function. New monitors are no longer allowed to use the legacy runtime, starting August 26, 2024.
- As New Relic Synthetics will move all monitors running on the legacy runtime to the new runtime at the EOL, with the API consequently updating parameters of the monitors to signify the new runtime, if your monitor is maintained via Terraform and its Terraform configuration does not include runtime attributes with values corresponding to the new runtime (i.e., continues to use the legacy runtime) at the EOL,
- If your monitor continues to use the legacy runtime, since the Legacy Runtime EOL has taken effect on October 22, 2024; your monitor will not be able to run Synthetic checks, if the configuration of your monitors is not compatible with the new runtime. For example, with scripted monitors, if the script is not compatible with the new runtime, Synthetic checks on your monitor will no longer function. These restrictions apply to both new and existing monitors, as a consequence of the EOL.
- As New Relic Synthetics has moved all monitors running on the legacy runtime to the new runtime at the EOL, with the API consequently having had updated parameters of the monitors to signify the new runtime, if your monitor is maintained via Terraform and its Terraform configuration does not (yet) include runtime attributes with values corresponding to the new runtime (i.e., continues to use the legacy runtime) at the EOL,
- Upon trying to perform a `terraform plan`, you will see a drift, indicating that your monitor has been moved to the new runtime.
- Upon trying to perform a `terraform apply` on this monitor without updates to include runtime attributes with new runtime values, an error will be thrown by the Synthetics API, disallowing customers from using the legacy runtime.
- In addition to the above, two releases of the New Relic Terraform Provider will be made, coinciding with the two phases of the EOL (stated in the first section of this page), to reflect runtime attribute validation to be performed by the API. Specifically,
- A release has been performed on August 26, 2024, (**v3.43.0**) which includes changes to display an error (only for new monitors, and not existing ones) if the Terraform configuration of the monitor to be created does not include runtime attributes with new runtime values, as new monitors will no longer be allowed to use the legacy runtime starting August 26, 2024.
- A similar release will occur on October 22, 2024 (at the EOL) to include similar changes for all types of monitors (new and existing), as all monitors will not be allowed to use the legacy runtime after the EOL.
- As customers upgrade to these versions of the provider (and subsequent versions), the changes stated above will apply to the configuration of their Synthetic monitors. For all other preceding versions of the provider, using monitors without runtime attributes would lead to an error thrown by the API instead, as stated in the second point above.
- Upon trying to perform a `terraform apply` on this monitor without updates to include runtime attributes with new runtime values, an error will be thrown by the Synthetics API, stating that usage of the legacy runtime is no longer supported.
- In addition to the above, two releases of the New Relic Terraform Provider have been made, coinciding with the two phases of the EOL (stated in the first section of this page), to reflect runtime attribute validation to be performed by the API. Specifically,
- A release was performed on August 26, 2024, (**v3.43.0**) which includes changes to display an error (only for new monitors, and not existing ones) if the Terraform configuration of the monitor to be created does not include runtime attributes with new runtime values, as support for allowing new monitors to be created in the legacy runtime was discontinued on August 26, 2024.
- A subsequent release was performed on October 22, 2024 (**v3.51.0**) to coincide with the final phase of the EOL and display a similar error for both new and existing monitors, in alignment with the changes made to Synthetics APIs at the EOL.
- As customers upgrade to these versions of the provider (and subsequent versions), the changes stated above will apply to the configuration of their Synthetic monitors. For all other preceding versions of the provider, using monitors without runtime attributes/with the legacy runtime would still lead to an error thrown by the API instead, as stated in the second point above.

In order to prevent these consequences, kindly upgrade your monitors to the new runtime as soon as possible, before the EOL.
To prevent these consequences, kindly upgrade your monitors to the new runtime as soon as possible, if they are still using the legacy runtime.

As required by the changes leading up to the Legacy Runtime EOL, in order to upgrade a monitor to the new runtime, one would need to ensure any private locations running jobs of the monitor operate on Synthetic Job Managers (SJMs) and not Containerized Private Minions (CPMs), as the EOL of the Legacy Runtime of Synthetic Monitors is also paired with the EOL of CPMs. Additionally, regardless of the locations monitors run in, with all kinds of scripted monitors in the legacy runtime, one would need to confirm that the script/other configuration of the monitor (which has been working in the legacy runtime) can also work in the new runtime with no changes needed. With these steps requiring manual intervention, i.e., customers needing to ensure from the Runtime Upgrades UI that these monitors are fit to run in the new runtime, if these monitors are managed via Terraform, changes are needed to the Terraform configuration as well, as a follow-up action. These changes include adding runtime attributes with values corresponding to the new runtime, or updating values of any existing runtime attributes to the new runtime.
In order to upgrade a monitor to the new runtime, one would need to ensure any private locations running jobs of the monitor operate on Synthetic Job Managers (SJMs) and not Containerized Private Minions (CPMs), as the EOL of the Legacy Runtime of Synthetic Monitors is also paired with the EOL of CPMs. Additionally, regardless of the locations monitors run in, with all kinds of scripted monitors in the legacy runtime, one would need to confirm that the script/other configuration of the monitor (which has been working in the legacy runtime) can also work in the new runtime with no changes needed. With these steps requiring manual intervention, i.e., customers needing to ensure from the Runtime Upgrades UI that these monitors are fit to run in the new runtime, if these monitors are managed via Terraform, changes are needed to the Terraform configuration as well, as a follow-up action. These changes include adding runtime attributes with values corresponding to the new runtime, or updating values of any existing runtime attributes to the new runtime.

## How do I Identify the Runtime of My Monitor?
The following methods may be adopted to identify if your monitor(s) is/are running on the legacy runtime -
Expand Down

0 comments on commit 8ba942b

Please sign in to comment.