NerdGraph API를 사용하여 새 브라우저 응용 프로그램을 만들고 구성 값을 검색할 수 있습니다. 이를 브라우저 에이전트 npm 패키지와 결합하여 애플리케이션 빌드 프로세스의 일부로 브라우저 에이전트의 구성을 통합하거나 애플리케이션 내의 에이전트 구현에서 에이전트 구성을 분리할 수 있습니다.
NerdGraph를 사용하여 브라우저 응용 프로그램을 만들거나 구성한 적이 없다면 먼저 이 NerdGraph 자습서를읽으십시오.
에이전트 설정
프로젝트의 루트 또는 프런트엔드 종속성이 관리되는 위치에서 IDE 및 터미널을 엽니다. 이것은 npm 패키지를 설치하기 위해 npm install --save @newrelic/browser-agent
실행할 위치입니다. 설치가 완료되면 웹 사이트의 기본 진입점 파일을 찾습니다. 이것은 <project_root>/src/index.js
또는 <project_root>/src/index.ts
일 수 있지만 애플리케이션에서는 다를 수 있습니다. 진입점이 여러 개인 경우 브라우저에서 가장 빨리 로드되는 항목을 선택하고 async
또는 defer
스크립트 요소 속성을 사용하지 않는 것이 좋습니다.
브라우저 에이전트를 추가할 위치를 찾았으면 해당 파일에 이 코드 조각을 추가합니다.
import { BrowserAgent } from '@newrelic/browser-agent/loaders/browser-agent'// Remaining import statements
// Populate using values from NerdGraphconst options = { init: { ... }, info: { ... }, loader_config: { ...}}
// The agent loader code executes immediately on instantiation.new BrowserAgent(options)
// Remaining code
브라우저 에이전트에 대한 import
문은 소스 파일의 첫 번째 항목이어야 합니다. 나머지 import
문 다음에 브라우저 에이전트를 즉시 인스턴스화하고 구성합니다. 브라우저 에이전트가 가능한 빨리 데이터를 로드하고 캡처할 수 있도록 다른 코드보다 먼저 이 작업을 수행해야 합니다.
구성 검색
이전 스니펫의 options
객체는 New Relic의 브라우저 애플리케이션에 대한 구성 정보로 채워야 합니다. 이 자습서의 목적을 위해 기존 브라우저 응용 프로그램 및 NerdGraph 탐색기와 함께 New Relic UI를 사용하여 API 호출을 완료합니다.
브라우저 애플리케이션 구성 검색
api.newrelic.com/graphiql 에서 NerdGraph 탐색기를 엽니다. 아래 쿼리를 사용하여 브라우저 애플리케이션의 구성 값을 검색합니다. New Relic 계정이 EU 데이터 센터를사용하는 경우 api.eu.newrelic.com/graphiql로 이동하십시오.
query { actor { entity(guid: '<guid>') { ... on BrowserApplicationEntity { guid name browserProperties { jsConfigScript } } } }}
쿼리의 <guid>
부분을 이전에 검색한 엔터티 GUID로 바꿉니다. 쿼리를 실행하면 다음과 같은 출력이 표시됩니다.
{ "data": { "actor": { "entity": { "browserProperties": { "jsConfig": { "info": { "applicationID": 1234567, "beacon": "bam.nr-data.net", "errorBeacon": "bam.nr-data.net", "licenseKey": 123456789, "sa": 1 }, "init": { "ajax": { "deny_list": [ "bam-cell.nr-data.net" ] }, "distributed_tracing": { "allowed_origins": [], "cors_enabled": false, "cors_use_newrelic_header": false, "cors_use_tracecontext_headers": false, "enabled": true, "exclude_newrelic_header": false }, "privacy": { "cookies_enabled": true } }, "loader_config": { "accountID": <redacted>, "agentID": <redacted>, "applicationID": <redacted>, "licenseKey": "<redacted>", "trustKey": 1672072 } } } } } }}
팁
NerdGraph 사용에 대한 자세한 정보가 필요하십니까? NerdGraph 소개 를참조하십시오.
npm 패키지를 사용하여 배포
npm 패키지가 설치되고 적절하게 구성되면 이제 브라우저 애플리케이션을 빌드하고 배포할 수 있습니다. 브라우저에서 웹사이트를 로드하고 구성에서 beacon
URI에 대한 네트워크 호출이 있는지 확인합니다.
브라우저 애플리케이션 구성을 HTML에 삽입
소스 코드에 브라우저 애플리케이션 구성을 배치하는 대신 웹 사이트의 HTML에 구성을 삽입할 수 있습니다. 이는 소스 코드가 여러 웹사이트에서 재사용될 때 특히 유용합니다.
소스 코드 스니펫 수정
소스 코드의 첫 번째 스니펫을 import
로 수정하고 매개변수 없이 BrowserAgent
클래스를 인스턴스화합니다.
import { BrowserAgent } from '@newrelic/browser-agent/loaders/browser-agent'// Remaining import statements
// The agent loader code executes immediately on instantiation.new BrowserAgent()
// Remaining code
NerdGraph 쿼리 수정
NerdGraph 쿼리를 수정하여 브라우저 애플리케이션 구성을 JSON 인코딩 스크립트 문자열로 검색합니다. <guid>
이전에 검색한 브라우저 애플리케이션 엔터티 GUID로 바꾸는 것을 기억하면서 새 쿼리를 실행합니다.
query { actor { entity(guid: '<guid>') { ... on BrowserApplicationEntity { guid name browserProperties { jsConfigScript } } } }}
그러면 다음과 같은 결과가 반환됩니다.
{ "data": { "actor": { "entity": { "browserProperties": { "jsConfigScript": "<script type=\"text/javascript\">\n;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:[\"bam-cell.nr-data.net\"]}};\n\n;NREUM.loader_config={accountID:\"<redacted>\",trustKey:\"<redacted>\",agentID:\"<redacted>\",licenseKey:\"<redacted>\",applicationID:\"<redacted>\"};\n;NREUM.info={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\",licenseKey:\"<redacted>\",applicationID:\"<redacted>\",sa:1};\n</script>\n" } } } }}
다음 단계
이 튜토리얼은 NerdGraph API와 브라우저 에이전트 npm 패키지를 사용하는 방법에 대한 표면적인 정보만 제공합니다. 다음 단계에 대한 몇 가지 아이디어:
- 브라우저 에이전트를 웹 사이트 빌더 애플리케이션에 통합하고 NerdGraph를 사용하여 관리 대시보드 내에서 New Relic 모니터링을 활성화할 때 각 고객에 대한 브라우저 애플리케이션 구성을 검색합니다.
- 조직의 구성 요소 라이브러리에 공유 브라우저 에이전트 구성 요소를 생성하고 NerdGraph를 호출하는 CDN 에지 기능을 사용하여 구성을 HTML에 자동으로 삽입합니다.
- 배포되는 환경에 따라 NerdGraph의 다양한 브라우저 애플리케이션 구성으로 소스 코드를 채우도록 CI/CD 파이프라인을 수정합니다.