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

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

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

문제 신고

신세틱스 프라이빗 로케이션 런타임 전환 가이드

뉴렐릭은 신세틱스 런타임 이미지를 Chrome 134가 포함된 Node.js 16에서 Chrome 147 이상이 포함된 Node.js 22로 전환하고 있습니다. 이 업데이트는 CVE-2026-5281 을 해결하고 런타임을 현재 지원되는 버전으로 업데이트합니다. Chrome 134는 Google의 지원 채널을 벗어났으며, Node.js 16은 2023년 9월에 수명이 종료되었습니다.

새로운 런타임 이미지는 도커 허브에서 사용할 수 있습니다:

중요

DATE까지 조치가 필요합니다. 뉴렐릭은 Node.js 16 및 Chrome 134 런타임에 대한 지원을 종료합니다. 업데이트하지 않으면, 뉴렐릭은 모니터를 자동으로 마이그레이션합니다. 그러나 자동 마이그레이션은 통과하지만 일부 스크립트 단계에서 조용히 실패하는 모니터를 발견하지 못할 수 있습니다.

퍼블릭과 프라이빗 로케이션의 차이점

마이그레이션 경로는 모니터가 공공 위치 또는 프라이빗 로케이션에서 실행되는지 여부에 따라 달라집니다.

공개 위치: 모니터의 설정 페이지에서 Browser [브라우저] 버전 드롭다운 메뉴를 Chrome 134 에서 Latest [최신]으로 변경하세요. 인프라 변경이 필요하지 않습니다.

프라이빗 로케이션: 신세틱스 작업 관리자(SJM) 인프라에 새로운 런타임 이미지를 배포해야 합니다.

중요

프라이빗 로케이션의 경우, 일반 설정의 Browser [브라우저] 및 Runtime [런타임] 버전 드롭다운 메뉴는 아무런 영향을 미치지 않습니다. 버전은 전적으로 SJM이 실행 중인 이미지에 의해 결정됩니다. 드롭다운 메뉴를 변경해도 작업을 처리하는 런타임 버전은 변경되지 않으며, 오직 배포된 이미지만이 이를 변경합니다. 따라서 SyntheticCheckruntimeTypeVersion 속성은 프라이빗 모니터 작업의 런타임 버전을 식별하는 신뢰할 수 있는 방법이 아닙니다.

Synthetics > Runtime UpgradesRuntime Upgrades [런타임 업그레이드] 페이지는 퍼블릭 모니터용으로 설계되었습니다. 프라이빗 로케이션의 경우, 해당 도구를 통한 자동화된 마이그레이션 사전 검증이 없습니다. 각각 다른 런타임을 실행하는 여러 작업 관리자를 동일한 프라이빗 로케이션 키에 지정하면, 표시되는 모든 결과는 독립적인 호환성 검사가 아니라 실제 작업 실행입니다. 업그레이드를 적용하기 전에 런타임 간 모니터 동작을 비교하려면 병렬 프라이빗 로케이션 전략 을 사용하십시오.

변경 사항

이 테이블을 사용하여 모니터 결과가 rc1.x 이미지를 실행하는 SJM에서 생성되었는지 식별하십시오.

요소구 버전rc1.x 버전
노드.js1622 이상
크롬134147 이상
API 런타임 버전1.2.1341.2.143 또는 더 높은
브라우저 런타임 버전3.0.553.0.63 또는 더 높은

런타임 버전 쿼리하기

rc1.x 도커 Hub 태그는 SyntheticCheck 이벤트에 보고된 특정 nr.runtimeVersion 값에 해당합니다. NRQL에서 nr.runtimeVersion 속성을 쿼리할 수 있습니다:

SELECT count(*) FROM SyntheticCheck
WHERE locationLabel = 'YOUR_PRIVATE_LOCATION'
FACET type, nr.runtimeVersion SINCE 1 day ago

Chrome 146.0.7680.177을 사용하려면 브라우저 런타임에 rc1.14 이상 을 사용하세요, 여기에는 CVE-2026-5281에 대한 패치가 포함되어 있습니다.

주요 동작 변경 사항

이러한 변경 사항은 기존 모니터에 영향을 미칠 수 있습니다:

  • HTTP keep-alive 기본값이 변경되었습니다. Node.js 22는 http.globalAgent 을(를) keepAlive: true (으)로 기본 설정합니다(Node.js 16에서는 false 였습니다). 명시적으로 keepAlive: false 을(를) 설정하지 않고 사용자 지정 HTTP 에이전트를 생성하는 스크립트는 연결이 열린 상태로 유지되어 프로세스가 종료되지 않으므로 실행 시간이 길어지거나 시간 초과가 발생할 수 있습니다.

  • 더 높은 리소스 사용량. 동일한 워크로드에 대해 Chrome 147은 Chrome 134보다 더 많은 CPU와 메모리를 필요로 합니다. 브라우저 런타임 컨테이너는 Chrome 134에서의 더 낮은 사용량에 비해 실행 중에 일반적으로 3.256 GiB의 기본 메모리 제한 중 625-980 MiB를 사용합니다.

  • 컨테이너 오버헤드 증가. 스크립트 브라우저 모니터의 평균 컨테이너 오버헤드는 6-10초입니다. 스크립팅된 API 모니터는 평균 2-4초가 소요됩니다. 이전 런타임에서 시간 초과 임계값에 근접했던 모니터는 이제 이를 초과할 수 있습니다.

마이그레이션 전략 선택

프라이빗 로케이션 마이그레이션에는 두 가지 접근 방식이 있습니다. 위험 허용 범위와 모니터 함대 크기에 따라 선택하세요.

옵션 A: 인플레이스 업그레이드

모든 SJM을 새 런타임 이미지로 업그레이드하세요. 모든 모니터는 즉시 새로운 런타임에서 실행됩니다.

가장 적합한 경우: 소규모 모니터 플릿, 비중요 환경 또는 전환 중 일부 모니터 오류를 허용할 수 있는 경우.

단계:

  1. 새 이미지 태그를 사용하도록 각 SJM의 DESIRED_RUNTIMES 설정을 업데이트합니다.
  2. SJM을 재시작하거나 재배포합니다.
  3. 모니터 결과.

위험: 스크립트가 Node.js 22 및 Chrome 147 이상에서 작동하도록 업데이트될 때까지 일부 모니터가 실패할 수 있습니다.

옵션 B: 병렬 프라이빗 로케이션(권장)

두 번째 프라이빗 로케이션을 생성하고, 그곳에 새로운 런타임 이미지로 SJM을 배포한 다음, A/B 비교를 위해 두 로케이션 모두에서 동시에 모니터를 실행합니다.

권장 대상: 운영 환경, 대규모 모니터 플릿, 또는 기존 모니터링에 중단이 없어야 하는 경우.

단계:

  1. 뉴렐릭에서 새 프라이빗 로케이션을 생성합니다. 기술 이름을 지정하세요.

  2. 새로운 런타임 이미지를 사용하여 새 프라이빗 로케이션을 가리키는 하나 이상의 SJM을 배포하십시오.

  3. 테스트 중 새 위치에서 발생하는 공지 노이즈를 억제하려면 음소거 규칙을 설정 하세요:

    Alerts > Muting rules 으로 이동하여 조건이 tags.privateLocation EQUALS <your-new-location-name>인 규칙을 생성합니다.

  4. 새 프라이빗 로케이션을 모니터에 추가합니다. 각 모니터는 여러 프라이빗 로케이션에 할당될 수 있습니다. 각 위치의 작업은 독립적으로 실행됩니다 — 새 위치에서의 오류는 이전 위치의 결과에 영향을 미치지 않습니다.

  5. 두 위치 간의 결과를 비교합니다. 이 NRQL 쿼리를 사용하십시오:

    SELECT count(*), percentage(count(*), WHERE result = 'SUCCESS') AS 'Success %',
    average(executionDuration) AS 'Avg Exec Duration'
    FROM SyntheticCheck
    SINCE 1 day ago
    FACET locationLabel, monitorName
  6. 스크립트를 수동으로 편집하여 새 위치에서 실패하는 모니터를 수정하십시오.

  7. 새 위치에서 모든 모니터가 통과하면, 모니터에서 이전 위치를 제거하고 이전 SJM 인프라를 폐기합니다.

트레이드오프: 전환 기간 동안 인프라 비용 두 배 증가. 두 번째 SJM 세트에는 별도의 호스트 또는 클러스터 리소스가 필요합니다.

이 접근 방식은 결과 및 실행 시간의 차이를 포함하여 모든 모니터가 새로운 런타임에서 어떻게 실행되는지에 대한 전체적인 그림을 제공하며, 이 두 가지 모두 작업 관리자 부하 및 리소스 계획에 영향을 미칩니다.

전체 인프라 비교 없이 스크립트 실패만 테스트하려면, 소규모 테스트 SJM을 사용하여 두 번째 프라이빗 로케이션을 설정하고 모니터의 하위 집합을 실행하십시오. 이는 기존 모니터가 새 런타임에서 어떻게 동작하는지 보여주지만, 런타임이 기존 인프라 용량에 어떻게 부합하는지는 보여주지 않습니다.

새 런타임 이미지로 SJM 배포

새 런타임 이미지 태그를 사용하도록 기존 SJM 배포를 업데이트하십시오. SJM 자체(newrelic/synthetics-job-manager:latest)는 변경되지 않습니다 ― 가져오는 런타임 이미지만 변경됩니다.

자세한 설치 및 설정 지침은 신세틱스 작업 관리자 설치작업 관리자 설정을 참조하십시오.

도커

새 이미지 태그를 참조하도록 DESIRED_RUNTIMES 환경 변수를 업데이트합니다:

bash
$
docker run \
>
--name sjm \
>
--restart unless-stopped \
>
-e PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY \
>
-e "DESIRED_RUNTIMES=[newrelic/synthetics-ping-runtime:latest,newrelic/synthetics-node-api-runtime:RC_IMAGE_TAG,newrelic/synthetics-node-browser-runtime:RC_IMAGE_TAG]" \
>
-v /var/run/docker.sock:/var/run/docker.sock:rw \
>
newrelic/synthetics-job-manager:latest

YOUR_PRIVATE_LOCATION_KEY 프라이빗 로케이션 키로 바꾸고, RC_IMAGE_TAG rc1.17와(과) 같은 도커 허브의 이미지 태그로 바꿉니다.

기존 SJM 컨테이너가 있는 경우 먼저 중지하고 제거한 다음 새 컨테이너를 시작합니다:

bash
$
docker stop YOUR_CONTAINER_NAME
$
docker rm YOUR_CONTAINER_NAME

포드만

포트 8000의 Podman API 서비스를 포함하여 모든 Podman 의존성/종속성 을 완료했는지 확인합니다. 그런 다음 DESIRED_RUNTIMES을(를) 업데이트합니다:

bash
$
podman pod create --network slirp4netns --name sjm-pod \
>
--add-host=podman.service:YOUR_HOST_IP
$
$
podman run -d \
>
--name sjm \
>
--pod sjm-pod \
>
--restart unless-stopped \
>
-e PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY \
>
-e "DESIRED_RUNTIMES=[newrelic/synthetics-ping-runtime:latest,newrelic/synthetics-node-api-runtime:RC_IMAGE_TAG,newrelic/synthetics-node-browser-runtime:RC_IMAGE_TAG]" \
>
-e CONTAINER_ENGINE=PODMAN \
>
-e PODMAN_API_SERVICE_PORT=8000 \
>
-e PODMAN_POD_NAME=sjm-pod \
>
newrelic/synthetics-job-manager:latest

첫 시작 시 시간 초과 문제를 방지하려면 SJM을 시작하기 전에 런타임 이미지를 미리 가져오십시오. 브라우저 런타임 이미지는 약 3GB입니다:

bash
$
podman pull docker.io/newrelic/synthetics-node-browser-runtime:RC_IMAGE_TAG
$
podman pull docker.io/newrelic/synthetics-node-api-runtime:RC_IMAGE_TAG
$
podman pull docker.io/newrelic/synthetics-ping-runtime:latest

YOUR_PRIVATE_LOCATION_KEY 프라이빗 로케이션 키로 바꾸고, RC_IMAGE_TAG rc1.17와(과) 같은 도커 허브의 이미지 태그로 바꿉니다.

Kubernetes

신세틱 작업 관리자 차트의 Helm 값을 업데이트하십시오. values.yaml 파일을 사용하는 경우 런타임 이미지 태그를 업데이트합니다:

bash
$
helm repo update
$
$
helm upgrade sjm newrelic/synthetics-job-manager \
>
--namespace YOUR_NAMESPACE \
>
--set synthetics.privateLocationKey=YOUR_PRIVATE_LOCATION_KEY \
>
--set-json 'synthetics.desiredRuntimes=[{"image":"newrelic/synthetics-ping-runtime","tag":"latest"},{"image":"newrelic/synthetics-node-api-runtime","tag":"RC_IMAGE_TAG"},{"image":"newrelic/synthetics-node-browser-runtime","tag":"RC_IMAGE_TAG"}]'

새로운 설치의 경우:

bash
$
helm install sjm newrelic/synthetics-job-manager \
>
--namespace synthetics --create-namespace \
>
--set synthetics.privateLocationKey=YOUR_PRIVATE_LOCATION_KEY \
>
--set-json 'synthetics.desiredRuntimes=[{"image":"newrelic/synthetics-ping-runtime","tag":"latest"},{"image":"newrelic/synthetics-node-api-runtime","tag":"RC_IMAGE_TAG"},{"image":"newrelic/synthetics-node-browser-runtime","tag":"RC_IMAGE_TAG"}]'

YOUR_PRIVATE_LOCATION_KEY 프라이빗 로케이션 키로 바꾸고, RC_IMAGE_TAG rc1.17와(과) 같은 도커 허브의 이미지 태그로 바꿉니다.

전환 모니터링을 위한 NRQL 쿼리

검사가 마이그레이션 전 유효성 검사가 아닌 실제 작업으로 실행되는 두 번째 프라이빗 로케이션을 동일한 모니터로 설정한 경우, 다음 쿼리를 사용하여 마이그레이션 진행 상황을 추적하세요:

새 런타임에서의 모니터별 실패율:

SELECT percentage(count(*), WHERE result = 'SUCCESS') AS 'Success %',
count(*) AS 'Total Checks'
FROM SyntheticCheck
WHERE locationLabel = 'YOUR_NEW_LOCATION'
SINCE 1 day ago
FACET monitorName

이전 위치와 새 위치 간의 실행 시간 비교:

SELECT average(executionDuration) AS 'Avg Execution Duration (ms)',
average(duration) AS 'Avg Duration (ms)',
average(executionDuration - duration) AS 'Avg Overhead (ms)'
FROM SyntheticCheck
SINCE 1 day ago
FACET locationLabel, monitorName

실행 시간이 증가한 모니터 식별:

SELECT monitorName, average(executionDuration) AS 'Avg ExecDuration'
FROM SyntheticCheck
SINCE 1 day ago
FACET monitorName, locationLabel
ORDER BY average(executionDuration) DESC

실패한 모니터 수정

문제점 해결

일반적인 문제

문제가능한 원인해결책
Error: tab crashedChrome 147 메모리 제한 초과HEAVY_WORKER_MEMORY 을(를) 늘리거나 줄입니다 HEAVYWEIGHT_WORKERS
실행 시간에 30초 이상 추가됨프로세스 종료를 방해하는 Keep-alive 연결rc1.11에서 수정됨, 스크립트에서 커스텀 에이전트 확인
Podman SJM이 브리지 네트워크를 생성하지 못합니다.루트리스 Podman 권한Podman 의존성/종속성 설정을 따르고, cgroup 위임 및 Podman API 서비스를 확인하세요
이미지 가져오기 중 Podman SJM 종료처음 가져올 때 대용량 이미지 시간 초과SJM을 시작하기 전에 podman pull 을(를) 사용하여 런타임 이미지를 미리 가져오기
모니터는 통과하지만 스크립트 단계를 누락함다단계 스크립트의 조용한 실패병렬 위치 전략을 사용하여 이전 런타임과 새 런타임 간의 결과를 비교합니다.

유용한 NRQL 쿼리

장애율이 증가한 모니터 확인:

SELECT percentage(count(*), WHERE result = 'FAILED') AS 'Failure %'
FROM SyntheticCheck
SINCE 1 day ago
FACET monitorName
WHERE percentage(count(*), WHERE result = 'FAILED') > 0

마이그레이션 전후의 실행 기간 비교:

SELECT average(executionDuration) AS 'Avg ExecDuration',
max(executionDuration) AS 'Max ExecDuration',
average(executionDuration - duration) AS 'Avg Overhead'
FROM SyntheticCheck
SINCE 1 day ago
FACET monitorName
ORDER BY average(executionDuration) DESC

Chrome 탭 충돌이 있는 모니터 찾기:

SELECT count(*)
FROM SyntheticCheck
WHERE error LIKE '%tab crashed%'
SINCE 1 day ago
FACET monitorName

리소스 권장 사항

rc1.15 런타임 테스트를 기반으로:

요소권장 최소기본값
SJM 컨테이너 메모리3.256 GiB3.256 GiB
브라우저 런타임 메모리(HEAVY_WORKER_MEMORY)4 GiB3.256 GiB
브라우저 런타임 공유 메모리2.256 GiB2.256 GiB
브라우저 런타임 CPU 점유율(HEAVY_WORKER_CPUS)21
Ping 런타임 메모리1 GiB1 GiB

HEAVY_WORKER_CPUS 하드 CPU 코어 제한이 아닌 도커 CPU 공유(상대적 가중치)를 설정합니다. 이를 늘리는 것은 여러 컨테이너가 동시에 CPU를 두고 경쟁할 때만 차이가 있습니다.

타임라인

날짜이벤트
2026년 4월새로운 런타임 이미지(rc1.15) 도커 허브에서 사용할 수 있습니다
2026년 4월보안 게시판 NR26-04 게시됨
-2026년 7월Node.js 16 / Chrome 134 런타임 지원 종료
-2026년 7월남은 모니터 자동 마이그레이션

주의

자동으로 마이그레이션된 모니터는 유효성 검사를 통과할 수 있지만 일부 스크립트 단계에서 조용히 실패할 수 있습니다. 원활한 전환을 위해 병렬 프라이빗 로케이션 전략을 사용하여 모니터를 사전에 테스트하십시오.

Copyright © 2026 New Relic Inc.

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