• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Mettre à niveau les moniteurs d'API scriptés vers Node.js 22

Nous présentons notre dernier runtime de moniteur d'API scripté, intégrant la Latest version de Node.js (actuellement Node.js 22). Le runtime Latest utilise automatiquement la sortie la plus récente de Node.js prise en charge par New Relic, garantissant que vos moniteurs d'API s'exécutent dans un environnement conforme aux standards modernes de Node.js, offrant ainsi une sécurité, une stabilité et des performances accrues.

Action requise : impact de la mise à niveau de Node.js 22

Dans le cadre de la mise à niveau de Node.js 16 vers Node.js 22, le runtime est plus strict concernant les cycles de vie des processus. Si vos scripts de monitoring contiennent des handles ouverts non gérés (tels que des promesses non résolues, des timers persistants ou des connexions réseau non fermées), vos monitorings échoueront.

Pour résoudre ce problème : Validez vos scripts de monitoring avec le runtime Latest pour vous assurer que tous les handles sont correctement fermés avant que le script ne termine son exécution. Les validations en échec apparaissent dans l'interface utilisateur de Runtime Upgrades. Consultez Résoudre les erreurs de mise à niveau du runtime.

Qui est affecté

New Relic gère automatiquement le processus de mise à niveau pour :

  • Moniteurs d'API scriptés sur des emplacements publics
  • Monitorer les API scriptées sur des sites à la fois publics et privés (hybride)

New Relic applique la validation et la mise à niveau automatisées à toutes les configurations d'emplacement.

Important

Les moniteurs s'exécutant exclusivement sur des emplacements privés nécessitent une mise à niveau manuelle.

Qu'est-ce que Latest ?

L’option d’environnement d’exécution Latest dans la liste déroulante de création/mise à niveau de monitorer utilise automatiquement la version la plus récente de Node.js prise en charge par New Relic. Au lieu de fixer une version spécifique de Node.js (comme Node.js 16 ou Node.js 20), Latest garantit que vos monitorer s'exécutent toujours sur la sortie de Node.js la plus récente disponible, avec les dernières fonctionnalités, améliorations de performances et mises à jour de sécurité.

Mettre à niveau les moniteurs via NerdGraph

Pour mettre à niveau vos runtimes de moniteur par programmation, utilisez la mutation NerdGraph ci-dessous. Vous avez besoin du GUID de l'entité de votre moniteur (disponible dans les paramètres du moniteur).

Moniteur d'API scripté

mutation {
syntheticsUpdateScriptApiMonitor(
guid: "YOUR_MONITOR_GUID"
monitor: {
runtime: { runtimeType: "NODE_API", runtimeTypeVersion: "LATEST" }
}
) {
errors {
description
type
}
}
}

Conseil

Pour les moniteurs de navigateur scriptés, utilisez plutôt runtimeType: "CHROME_BROWSER" et runtimeTypeVersion: "LATEST".

Le processus de mise à niveau automatisé

Pour garantir une transition fluide vers le dernier runtime Node.js, New Relic teste proactivement vos moniteurs existants. Le processus comprend :

Validation backend

New Relic teste automatiquement vos moniteurs d'API scriptés existants sur le dernier runtime Node.js (actuellement Node.js 22) dans le backend.

Conseil

Cette validation ne consomme pas vos tests synthétiques et n'affecte pas vos résultats de production.

Mise à niveau automatique

Si la validation réussit : New Relic met à niveau le moniteur vers le runtime le plus récent en votre nom.

Examen manuel des échecs

Si la validation échoue : New Relic ne force pas la mise à niveau. Cela se produit souvent en raison de la gestion stricte des handles ouverts par Node.js 22. Au lieu de cela, New Relic signale les moniteurs dont la validation a échoué et les affiche dans la fonctionnalité Runtime Upgrades de l'interface utilisateur de votre Synthetics Nerdlet.

Vous pouvez y consulter les détails de l'échec, résoudre les problèmes de syntaxe de votre script, et valider et mettre à niveau manuellement le monitor après avoir corrigé le script.

Dépannage des problèmes de mise à niveau

Le problème le plus courant lors de la mise à niveau vers Node.js 22 est la présence de handles ouverts non gérés, y compris les promesses non résolues, les timers persistants, les connexions non fermées et les connexions HTTP/HTTPS. Pour obtenir des solutions détaillées et des exemples de code pour chaque type de problème, consultez Dépanner les erreurs de mise à niveau du runtime.

Changements de rupture de Node.js 22

En plus d'une gestion plus stricte des handles ouverts, Node.js 22 inclut d'autres changements que vous devez connaître :

Mise à jour de la prise en charge des modules

  • Modules ES : Meilleure prise en charge des modules ES, mais assurez-vous que vos importations sont correctement configurées
  • CommonJS : les modules CommonJS fonctionnent toujours mais peuvent avoir une validation plus stricte

API obsolètes

Certaines API dépréciées dans les versions antérieures de Node.js ont été supprimées dans Node.js 22. Consultez le changelog de Node.js 22 pour plus de détails sur les fonctionnalités supprimées.

Amélioration des performances

Node.js 22 inclut des améliorations de performances qui peuvent affecter les tests sensibles au timing. Envisagez de revoir les délais d'expiration si vos moniteurs dépendent d'un comportement temporel spécifique.

Bonnes pratiques pour Node.js 22

Pour vous assurer que vos moniteurs d'API scriptés fonctionnent correctement avec Node.js 22 :

  1. Utilisez async/await : Convertissez le code basé sur les rappels en async/await pour une meilleure gestion des erreurs.
  2. Nettoyez les ressources : fermez toujours les connexions, effacez les minuteurs et supprimez les écouteurs d'événements.
  3. Gérez toutes les promesses : Ne créez jamais de promesse sans l'attendre ou gérer son résultat.
  4. Définissez des délais d'attente appropriés : Utilisez des délais d'attente raisonnables pour les appels d'API afin d'éviter les blocages.
  5. Testez localement : Testez vos scripts localement avec Node.js 22 avant la mise à niveau des monitors de production.

Exemple : monitorer l'API complète

const assert = require('assert');
const $http = require('request');
const { promisify } = require('util');
// Promisify request methods
const httpGet = promisify($http.get);
const httpPost = promisify($http.post);
async function runAPITest() {
try {
// 1. Test GET endpoint
console.log('Testing GET endpoint...');
const getResponse = await httpGet('https://api.example.com/users');
assert.equal(getResponse.statusCode, 200, 'GET request failed');
// 2. Parse and validate response
const users = JSON.parse(getResponse.body);
assert(Array.isArray(users), 'Response is not an array');
assert(users.length > 0, 'No users returned');
// 3. Test POST endpoint
console.log('Testing POST endpoint...');
const postResponse = await httpPost({
url: 'https://api.example.com/users',
json: true,
body: {
name: 'Test User',
email: 'test@example.com'
}
});
assert.equal(postResponse.statusCode, 201, 'POST request failed');
console.log('All tests passed!');
} catch (error) {
console.error('Test failed:', error.message);
throw error; // Fail the monitor
}
}
// Run the test
await runAPITest();

Questions fréquemment posées

Quels types de moniteurs sont concernés ? Moniteurs d'API scriptés. Les moniteurs de navigateur scriptés sont affectés séparément — voir Mettre à niveau les moniteurs synthétiques vers la dernière version de Chrome et Node.js 22. Les moniteurs de navigateur simple et les moniteurs de ping ne sont pas affectés.

Puis-je tester mes scripts localement avant la mise à niveau ? Oui. Installez Node.js 22 localement et testez vos scripts de monitoring pour identifier les problèmes avant la mise à niveau.

Puis-je revenir en arrière si mon monitor échoue après la mise à niveau ? Oui. Vous pouvez rétablir la version d'exécution dans les paramètres du moniteur ou via NerdGraph.

Quand mes moniteurs seront-ils mis à niveau automatiquement ? New Relic effectue d'abord la validation. Si la validation réussit, New Relic met automatiquement à niveau les moniteurs. Si la validation échoue, vous voyez l'échec dans l'interface utilisateur des mises à niveau du runtime et devez corriger et mettre à niveau manuellement.

Besoin d'aide ?

Si vous rencontrez des problèmes lors du processus de mise à niveau :

  1. Consultez l’ interface utilisateur de Runtime Upgrades dans votre Nerdlet Synthetics pour obtenir des messages d’erreur spécifiques.
  2. Passez en revue vos scripts de monitoring pour détecter les promesses non gérées et les connexions ouvertes.
  3. Testez vos scripts localement avec Node.js 22 avant la mise à niveau.
  4. Contactez le support New Relic pour obtenir de l'aide pour le dépannage des échecs de validation.

Documentation associée :

Droits d'auteur © 2026 New Relic Inc.

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