는 브라우저 모니터링 Errors 페이지 에서 오류 스택 추적을 축소 해제하는 데 사용되는 소스 맵 업로드를 지원합니다. 이 문서에서는 API를 사용하여 브라우저 API를 사용하여 소스 맵을 업로드하는 방법을 설명합니다.
소스 맵 API 사용 준비 API를 통해 브라우저에 소스 맵을 업로드하려면 다음이 필요합니다.
자바스크립트 URL이란 무엇입니까? 에이전트가 코드에서 오류를 캡처할 때마다 오류가 발생한 JavaScript의 URL과 연결됩니다. 이것은 HTML에 있는 스크립트 태그의 src
속성입니다. 이 전체 JavaScript URL은 소스 맵을 브라우저로 보낼 때 필요합니다.
브라우저의 JS errors 페이지에서 오류의 자바스크립트 파일에 대한 URL을 찾을 수 있습니다. UI에서 이러한 오류를 찾는 방법에 대한 자세한 내용은 브라우저 모니터링 소스 맵을 참조하세요.
릴리스 이름과 ID가 필요합니까? 많은 조직에서 JavaScript URL에 버전 번호 또는 해시를 포함합니다. 이것은 일반적으로 사용자가 최신 버전의 코드를 얻을 수 있도록 "버스트" 캐시에 추가됩니다. 이 유형의 URL은 다음과 같습니다.
https://example.com/assets/application-59.min.js
https://example.com/assets/bundle-d6d031.min.js
https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js
앱의 URL에 버전 정보가 자동으로 추가되는 경우 브라우저 에이전트는 오류를 코드와 일치시키는 데 필요한 모든 것을 갖추고 있습니다. 소스 맵 생성 으로 이동할 수 있습니다.
이 doesn't 이 귀하에게 적용되고 JS URL에 추가된 버전 정보가 없는 경우 API를 사용하여 릴리스 이름과 ID를 지정하여 에이전트를 지원해야 합니다.
repo URL 또는 빌드 커밋 해시가 필요합니까? New Relic CodeStream을 사용하여 IDE에서 코드 성능을 모니터링하는 데 관심이 있는 경우 저장소 URL이 필요합니다. IDE의 오류도 조사하려면 빌드 커밋 해시가 권장되지만 필수는 아닙니다.
IDE에 관찰 기능을 추가하여 성능을 모니터링하는 방법 에 대해 자세히 알아보세요.
소스 맵 업로드에 제한이 있습니까? 업로드할 수 있는 전체 소스 맵 수에는 제한이 없습니다. 그러나 API는 계정당 비율이 제한됩니다.
분당 최대 1000개의 소스 맵을 업로드할 수 있습니다.
하루에 최대 15,000개의 소스 맵을 업로드할 수 있습니다.
API 요청당 하나의 소스 맵만 업로드하거나 게시할 수 있습니다.
소스 맵 파일의 크기는 최대 50Mb입니다.
어떤 애플리케이션 ID를 사용해야 합니까? YOUR_NEW_RELIC_APP_ID
및 YOUR_APP_ID
모두 applicationId
에 대해 유효한 값입니다.
소스 맵을 New Relic에 푸시 이제 하나 이상의 소스 맵이 있으므로 브라우저에 게시할 준비가 되었습니다. 다음 방법 중 하나를 사용하여 브라우저에 소스 맵을 보낼 수 있습니다.
명령줄 또는 클라이언트 측 스크립트를 통해 npm 모듈 사용 소스 맵을 브라우저에 업로드하는 가장 쉽고 권장되는 방법은 새로운 @newrelic/publish-sourcemap
npm 모듈을 사용하는 것입니다. 이 작업을 수행하기 위해 명령줄 도구와 Javascript API를 제공합니다. 더 많은 문서는 npm 저장소에서 사용할 수 있습니다.
다음은 명령줄을 통해 npm 모듈을 사용하는 몇 가지 예입니다.
중요 다음 예는 미국 계정에 대한 것입니다. EU 계정의 경우 엔드포인트는 https://sourcemaps.service.eu.newrelic.com
입니다. 자세한 내용 은 EU 지역 데이터 센터 소개 를 참조하십시오.
npm 명령줄: 게시 다음은 명령줄을 통해 npm 모듈을 사용하여 소스 맵을 업로드하는 예입니다. 소스 맵은 로컬 파일이나 원격 URL에서 가져올 수 있습니다.
$ npm install -g @newrelic/publish-sourcemap
$ publish-sourcemap PATH_TO_SOURCE_MAP_FILE ( local or remote ) PATH_TO_ORIGINAL_FILE --apiKey = YOUR_NEW_RELIC_USER_KEY --applicationId = YOUR_NEW_RELIC_APP_ID --repoUrl = GITHUB_REPOSITORY_URL --buildCommit = GIT_BUILD_COMMIT_HASH
npm 명령줄: 게시된 지도 나열 다음은 게시된 소스 맵을 나열하는 예입니다.
$ list-sourcemaps --applicationId = YOUR_APP_ID --apiKey = YOUR_NEW_RELIC_USER_KEY
Options:
--applicationId Browser application id
--apiKey New Relic user API key
npm 명령줄: 삭제 다음은 소스 맵을 삭제하는 예입니다.
$ delete-sourcemap --applicationId = YOUR_APP_ID --apiKey = YOUR_NEW_RELIC_USER_API_KEY --sourcemapId = YOUR_SOURCE_MAP_ID
Options:
--applicationId Browser application id
--apiKey New Relic user API key
--sourcemapId Unique id generated for a source map
다음은 npm 모듈을 사용하여 클라이언트 측 JavaScript에서 게시하는 몇 가지 예입니다.
Node.js 스크립트를 통한 npm: 게시 다음은 Node.js 스크립트를 통해 소스 맵을 게시하는 예입니다.
var publishSourcemap = require ( '@newrelic/publish-sourcemap' ) . publishSourcemap ;
sourcemapPath : 'SOURCE_MAP_FULL_PATH' ,
applicationId : YOUR_NEW_RELIC_APP_ID ,
apiKey : 'YOUR_NEW_RELIC_USER_API_KEY' ,
repoUrl : 'GITHUB_REPOSITORY_URL' ,
buildCommit : 'GIT_BUILD_COMMIT_HASH'
} , function ( err ) { console . log ( err || 'Sourcemap upload done' ) ; } ) ;
Node.js 스크립트를 통한 npm: 게시된 지도 나열 다음은 게시된 모든 소스 맵을 나열하는 예입니다.
var listSourcemaps = require ( '@newrelic/publish-sourcemap' ) . listSourcemaps ; ;
applicationId : YOUR_NEW_RELIC_APP_ID ,
apiKey : 'YOUR_NEW_RELIC_USER_API_KEY' ,
limit : MAX_NUMBER_OF_RESULTS_TO_RETURN || 20 ,
offset : NUMBER_OF_RESULTS_TO_SKIP_BEFORE_RETURNING || 0 ,
} , function ( err , res ) { console . log ( err || res . sourcemaps ) ; } ) ;
Node.js 스크립트를 통한 npm: 삭제 다음은 Node.js 스크립트를 통해 소스 맵 파일을 삭제하는 예입니다.
var deleteSourcemap = require ( '@newrelic/publish-sourcemap' ) . deleteSourcemap ;
sourcemapId : 'SOURCE_MAP_ID' ,
applicationId : YOUR_NEW_RELIC_APP_ID ,
apiKey : 'YOUR_NEW_RELIC_USER_API_KEY' ,
} , function ( err ) { console . log ( err || 'Deleted source map' ) ; } ) ;
완료되면 브라우저의 JS errors 페이지 로 이동하여 오류 그룹화를 선택하고 오류 스택 추적이 축소 해제되었는지 확인하세요.
curl을 통해 API 사용 다음은 소스 맵을 게시, 나열 및 삭제하기 위해 curl을 사용하는 몇 가지 예입니다.
curl: 지도 업로드 컬을 통해 API를 사용하여 브라우저에 지도를 게시하는 예:
$ curl -H "Api-Key: YOUR_NEW_RELIC_USER_API_KEY" \
> -F "sourcemap=@SOURCE_MAP_PATH" \
> -F "javascriptUrl=JS_URL" \
> -F "releaseId=YOUR_RELEASE_ID" \
> -F "releaseName=YOUR_UI_PAGE" \
$ https://sourcemaps.service.newrelic.com/v2/applications/YOUR_NEW_RELIC_APP_ID/sourcemaps
$ curl -H "Api-Key: YOUR_NEW_RELIC_USER_API_KEY" \
> -F "sourcemap=@SOURCE_MAP_PATH" \
> -F "javascriptUrl=JS_URL" \
> -F "releaseId=YOUR_RELEASE_ID" \
> -F "releaseName=YOUR_UI_PAGE" \
> -F "repoUrl=GITHUB_REPOSITORY_URL" \
> -F "buildCommit=GIT_BUILD_COMMIT_HASH" \
$ https://sourcemaps.service.newrelic.com/v2/applications/YOUR_NEW_RELIC_APP_ID/sourcemaps
curl: 기존 맵 나열 아래는 이전에 curl을 통해 New Relic에 업로드된 소스 맵 목록을 가져오는 방법의 예입니다. New Relic은 소스 맵의 고유한 SOURCEMAP_ID
및 해당 구성요소를 반환합니다.
> -H "Api-Key: YOUR_NEW_RELIC_USER_API_KEY" \
> https://sourcemaps.service.newrelic.com/v2/applications/YOUR_NEW_RELIC_APP_ID/sourcemaps
curl: 지도 삭제 소스 맵을 삭제하려면:
GET 엔드포인트를 사용하여 기존 소스 맵을 나열하고 SOURCEMAP_ID
을 찾습니다.
curl을 통해 다음 명령을 실행합니다.
> -H "Api-Key: YOUR_NEW_RELIC_USER_API_KEY" \
> https://sourcemaps.service.newrelic.com/v2/applications/YOUR_NEW_RELIC_APP_ID/sourcemaps/SOURCEMAP_ID
완료되면 브라우저의 Group errors 탭 으로 이동하여 오류 그룹화를 선택하고 오류 스택 추적이 축소 해제되었는지 확인하세요.
소스 맵 문제 해결 빌드 시스템에서 소스 맵을 생성하는 데 문제가 있거나 브라우저의 오류가 최소화된 상태로 유지되는 경우 소스 맵 문제 해결 설명서를 참조하세요.