• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

스크립팅된 API 모니터를 Node.js 22로 업그레이드

저희는 Latest [최신] Node.js 버전(현재 Node.js 22)을 지원하는 최신 스크립트 API 모니터 런타임을 소개합니다. Latest [최신] 런타임은 자동으로 뉴렐릭이 지원하는 최신 Node.js 버전을 사용하므로 API 모니터가 최신 Node.js 표준에 부합하는 환경에서 실행되어 보안, 안정성 및 성능이 향상됩니다.

조치 필요: Node.js 22 업그레이드 영향

Node.js 16에서 Node.js 22로 업그레이드하는 과정의 일환으로 런타임은 프로세스 수명 주기에 대해 더욱 엄격합니다. 모니터 스크립트에 처리되지 않은 열린 핸들 (예: 해결되지 않은 프로미스, 남아 있는 타이머 또는 닫히지 않은 네트워크 연결)이 포함되어 있으면 모니터가 실패합니다.

이 문제를 해결하려면 Latest [최신] 런타임을 사용하여 모니터 스크립트의 유효성을 검사하고 스크립트 실행이 완료되기 전에 모든 핸들이 제대로 닫히는지 확인하십시오. 유효성 검사 실패는 런타임 업그레이드 UI에 표시됩니다. 런타임 업그레이드 오류 문제 해결을 참조하세요.

누가 영향을 받나요?

뉴렐릭은 다음 항목에 대한 업그레이드 프로세스를 자동으로 처리합니다.

  • 공개 위치의 스크립팅된 API 모니터
  • 퍼블릭 및 프라이빗 로케이션 모두에 있는 스크립팅된 API 모니터(하이브리드)

뉴렐릭은 모든 위치 설정에 자동 유효성 검사 및 업그레이드를 적용합니다.

중요

구역 위치에서만 실행되는 모니터는 수동 업그레이드가 필요합니다.

최신 소식은 무엇인가요?

모니터 생성/업그레이드 드롭다운 메뉴의 Latest [최신] 런타임 옵션은 뉴렐릭이 지원하는 최신 Node.js 버전을 자동으로 사용합니다. Node.js 16 또는 Node.js 20과 같은 특정 Node.js 버전에 고정하는 대신, Latest [최신] 버전을 사용하면 모니터가 항상 최신 기능, 성능 개선 및 보안 업데이트가 포함된 최신 Node.js 릴리스에서 실행되도록 보장합니다.

NerdGraph를 통해 모니터를 업그레이드하세요

모니터 런타임을 프로그래밍 방식으로 업그레이드하려면 아래의 NerdGraph 변형을 사용하십시오. 모니터의 엔티티 GUID(모니터 설정에서 확인 가능)가 필요합니다.

스크립팅된 API 모니터

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

스크립트 브라우저 모니터의 경우 대신 runtimeType: "CHROME_BROWSER"runtimeTypeVersion: "LATEST" 을 사용하십시오.

자동 업그레이드 프로세스

최신 Node.js 런타임으로 원활하게 전환할 수 있도록, 뉴렐릭은 기존 모니터를 선제적으로 테스트합니다. 프로세스에는 다음이 포함됩니다:

백앤드 검증

뉴렐릭은 백앤드에서 최신 Node.js 런타임(현재 Node.js 22)을 대상으로 기존 스크립트 기반 API 모니터를 자동으로 테스트합니다.

이 검증은 신세틱 검사를 소모하지 않으며 프로덕션 결과에 영향을 미치지 않습니다.

자동 업그레이드

유효성 검사가 성공하면 뉴렐릭이 사용자를 대신하여 모니터를 최신 런타임으로 업그레이드합니다.

오류에 대한 수동 검토

유효성 검사에 실패하면 뉴렐릭은 업그레이드를 강제하지 않습니다. 이는 Node.js 22에서 열린 핸들을 엄격하게 처리하는 방식 때문에 자주 발생합니다. 대신, 뉴렐릭은 유효성 검사에 실패한 모니터에 플래그를 지정하고 이를 신세틱스 Nerdlet UI 의 Runtime Upgrades [런타임 업그레이드] 기능에 표시합니다.

해당 위치에서 오류 세부 정보를 검토하고, 스크립트 구문 문제를 해결하고, 스크립트를 수정한 후 수동으로 모니터를 검증하고 업그레이드할 수 있습니다.

문제 해결, 업그레이드 문제 해결

Node.js 22로 업그레이드할 때 가장 흔한 문제는 처리되지 않은 열린 핸들, 즉 미해결된 프로미스, 지연된 타이머, 닫히지 않은 연결 및 HTTP/HTTPS 연결입니다. 각 문제 유형에 대한 자세한 해결 방법 및 코드 예제는 런타임 업그레이드 오류 문제 해결을 참조하세요.

Node.js 22 주요 변경 사항

더 엄격해진 열린 핸들 관리 외에도 Node.js 22에는 알아두어야 할 다른 변경 사항이 포함되어 있습니다:

업데이트된 모듈 지원

  • ES 모듈: ES 모듈에 대한 지원이 개선되었지만, 가져오기가 올바르게 구성되었는지 확인하세요.
  • CommonJS: CommonJS 모듈은 여전히 작동하지만 더 엄격한 유효성 검사가 적용될 수 있습니다.

더 이상 사용되지 않는 API

이전 Node.js 버전에서 지원 중단된 일부 API가 Node.js 22에서 제거되었습니다. 제거된 기능에 대한 자세한 내용은 Node.js 22 변경 로그 를 확인하세요.

성능 개선

Node.js 22에는 타이밍에 민감한 테스트에 영향을 미칠 수 있는 성능 개선 사항이 포함되어 있습니다. 모니터가 특정 타이밍 동작에 의존하는 경우 타임아웃 검토를 고려하십시오.

Node.js 22를 위한 모범 사례

스크립팅된 API 모니터가 Node.js 22에서 원활하게 작동하도록 하려면:

  1. async/await 사용: 더 나은 오류 처리를 위해 콜백 기반 코드를 async/await로 변환하십시오.
  2. 리소스 정리: 항상 연결을 종료하고, 타이머를 지우고, 이벤트 리스너를 제거합니다.
  3. 모든 프로미스 처리: await하거나 결과를 처리하지 않고 프로미스를 생성하지 마십시오.
  4. 적절한 시간 초과 설정: 멈춤 현상을 방지하기 위해 API 호출에 합리적인 시간 초과를 사용하십시오.
  5. 로컬에서 테스트: 프로덕션 모니터를 업그레이드하기 전에 로컬에서 Node.js 22로 스크립트를 테스트하세요.

예시: 전체 API 모니터

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();

자주 묻는 질문

어떤 모니터 유형이 영향을 받나요? 스크립트 API 모니터. 스크립트 브라우저 모니터는 별도로 영향을 받습니다 — 최신 Chrome 및 Node.js 22로 합성 모니터 업그레이드를 참조하십시오. 단순 브라우저 및 핑 모니터는 영향을 받지 않습니다.

업그레이드하기 전에 로컬 환경에서 스크립트를 테스트할 수 있나요? 예. 업그레이드 전에 Node.js 22를 로컬에 설치하고 모니터링 스크립트를 테스트하여 문제를 파악하십시오.

업그레이드 후 모니터에 문제가 생기면 롤백할 수 있나요? 예. 모니터 설정이나 NerdGraph를 통해 런타임 버전을 이전 버전으로 되돌릴 수 있습니다.

내 모니터는 언제 자동으로 업그레이드되나요? 뉴렐릭은 먼저 유효성 검사를 수행합니다. 검증에 성공하면 뉴렐릭이 자동으로 모니터를 업그레이드합니다. 유효성 검사에 실패하면 런타임 업그레이드 UI에 실패 내용이 표시되며, 수동으로 수정하고 업그레이드해야 합니다.

도움이 필요하세요?

업그레이드 과정 중 문제가 발생하는 경우:

  1. 특정 오류 메시지는 신세틱스 Nerdlet의 Runtime Upgrades UI [런타임 업그레이드 UI]를 확인하세요.
  2. 모니터 스크립트에 처리되지 않은 프로미스와 열린 연결이 있는지 검토하십시오.
  3. 업그레이드하기 전에 로컬에서 Node.js 22로 스크립트를 테스트하십시오.
  4. 검증 실패 문제 진단, 해결에 대한 지원은 뉴렐릭 지원팀에 문의하세요.

관련 문서:

Copyright © 2026 New Relic Inc.

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