종합 모니터링의 프록시 설정 및 속성에 대해 알아보려면 계속 읽으십시오.
스크립팅된 모니터용 프록시 설정 API
중요
Firefox에서 프록시를 사용하려면 신세틱스-node-브라우저-런타임 이미지 버전 3.0.7 이상이 필요합니다.
전역 개체 $network
를 사용하면 합성 스크립트 모니터에서 사용하는 네트워크 구성을 제어할 수 있습니다. 다음은 달리 명시되지 않는 한 스크립팅된 브라우저 와 API 테스트 모두에 적용됩니다.
모든 URL별 요청(HTTP, HTTPS 및 FTP)에 사용할 프록시 서버를 설정합니다.
추가 참고 사항:
포트는 선택 사항입니다. 제공하지 않으면 스키마에서 파생됩니다. 예를 들어 HTTP의 경우 포트는 80입니다.
사용자 이름과 비밀번호는
encodeURIComponent()
호출의 결과로 간주됩니다. 사용자 이름 및/또는 비밀번호의@
및:
와 같은 특수 문자는 이스케이프해야 합니다.이 메서드는 구성이 적용되면 해결되는
Promise
를 반환합니다.매개변수
데이터 형식
설명
proxyURL | proxyUrlParsed
문자열 또는 개체
프록시 서버에 연결할 URL입니다.
proxyURL
(예:http://proxy_host:8888
) 또는 Node의url.parse(urlString)
메서드에서 정의한 것과 동일한 형식의 일반 객체를 포함하는 문자열입니다.인증 없이 포트 1234에서 HTTP 프로토콜로 프록시 서버를 설정하는 예:
$network.setProxy('http://host.com:1234')인증 자격 증명이 있는 HTTP 프로토콜로 프록시 서버를 설정하는 예입니다.
$network.setProxy('http://proxyUsername:proxyPassword@proxyHost:1234')
팁
이 호출은 HTTP 트래픽에 적용된다는 점을 제외하고 URL별 setProxy
호출 과 정확히 동일합니다.
모든 HTTP 요청에 사용할 프록시 서버를 설정합니다.
추가 참고 사항:
포트는 선택 사항입니다. 제공하지 않으면 스키마에서 파생됩니다. 예를 들어 HTTP의 경우 포트는 80입니다.
사용자 이름과 비밀번호는
encodeURIComponent()
호출의 결과로 간주됩니다. 사용자 이름 및/또는 비밀번호의@
및:
와 같은 특수 문자는 이스케이프해야 합니다.이 메서드는 구성이 적용되면 해결되는
Promise
를 반환합니다.매개변수
데이터 형식
설명
proxyURL | proxyUrlParsed
문자열 또는 개체
프록시 서버에 연결할 URL입니다.
proxyURL
(예:http://proxy_host:8888
) 또는 Node의url.parse(urlString)
메서드에서 정의한 것과 동일한 형식의 일반 객체를 포함하는 문자열입니다.인증 없이 포트 1234에서 HTTP 프로토콜로 프록시 서버를 설정하는 예:
$network.setProxyForHttp('http://host.com:1234')인증 자격 증명이 있는 HTTP 프로토콜로 프록시 서버를 설정하는 예입니다.
$network.setProxyForHttp('http://proxyUsername:proxyPassword@proxyHost:1234')
팁
이 호출은 HTTPS 트래픽에 적용된다는 점을 제외하고 URL별 setProxy
호출 과 정확히 동일합니다.
모든 HTTPS 요청에 사용할 프록시 서버를 설정합니다.
추가 참고 사항:
포트는 선택 사항입니다. 제공하지 않으면 스키마에서 파생됩니다. 예를 들어 HTTP의 경우 기본 포트는 443입니다.
사용자 이름과 비밀번호는
encodeURIComponent()
호출의 결과로 간주됩니다. 사용자 이름 및/또는 비밀번호의@
및:
와 같은 특수 문자는 이스케이프해야 합니다.이 메서드는 구성이 적용되면 해결되는
Promise
를 반환합니다.매개변수
데이터 형식
설명
proxyURL | proxyUrlParsed
문자열 또는 개체
프록시 서버에 연결할 URL입니다.
proxyURL
(예:http://proxy_host:8888
) 또는 Node의url.parse(urlString)
메서드에서 정의한 것과 동일한 형식의 일반 객체를 포함하는 문자열입니다.인증 없이 포트 1234에서 HTTPS 프로토콜을 사용하여 프록시 서버를 설정하는 예:
$network.setProxyForHttps('https://host.com:1234')인증 자격 증명을 사용하여 HTTPS 프로토콜을 사용하여 프록시 서버를 설정하는 예입니다.
$network.setProxyForHttps('https://proxyUsername:proxyPassword@proxyHost:1234')
프록시 자동 구성(PAC) 스크립트를 통해 프록시 서버를 설정하고 약속을 반환합니다. 이 기능은 스크립팅된 브라우저 모니터 에서만 사용할 수 있습니다.
이 메서드는 구성이 적용되면 해결되는 Promise
를 반환합니다.
매개변수 | 데이터 형식 | 설명 |
---|---|---|
| 문자열 | PAC 스크립트의 URL입니다. |
| 물체 | 프록시 서버에 제공할 인증 자격 증명의 맵으로, 프록시 서버의 호스트 이름으로 키가 지정됩니다. 이 맵의 값은 다음 형식으로 정의되어야 합니다. |
프록시 자동 구성(PAC) 스크립트를 통해 프록시 서버를 설정하는 예:
var authCredentialsMap = { "example.com": { username: "authUsername", password: "authPassword" },};
다음은 프록시 자동 구성(PAC) 스크립트를 통해 프록시 네트워크를 설정하는 예입니다.
var authCredentialsMap = { "example.com": { username: "authUsername", password: "authPassword" }, "anotherExample.com": { username: "authUsername", password: "authPassword" },};
$network.setProxyPAC("https://www.example.com/pacScript", authCredentialsMap);
팁
이 메소드는 Chrome-specific 입니다. 펼쳐보기 유형에만 적용됩니다. 이는 보다 유연하고 복잡한 프록시 설정을 허용하는 데 사용될 수 있습니다. 대부분의 경우 이 방법은 필요하지 않습니다.
프록시용 Chrome Extension API에서 지원하는 형식을 사용하여 프록시 구성을 설정합니다. 입력은 프록시를 구성하기 위해 Chrome 확장 API에서 정의한 ProxyRules 개체입니다. 필요한 프록시에 대해 authCredentials
를 추가할 수 있습니다. 자세한 내용은 매개변수를 참조하십시오.
이 메서드는 구성이 적용되면 해결되는 Promise
를 반환합니다.
매개변수 | 데이터 형식 | 설명 |
---|---|---|
| 물체 |
|
다음은 authCredentials
을 사용하여 proxyRules
를 만드는 예입니다.
var proxyRules = { singleProxy: { host: "example.com", authCredentials: { username: "authUsername", password: "authPassword", }, },};
다음은 혼합 네트워크 영역 자산으로 프록시 네트워크를 설정하는 예입니다.
var proxyRules = { singleProxy: { host: "entproxy.mycompany.com", port: 8888, scheme: "http" }, bypassList: ["s3.amazonaws.com", "*.localcdn.com"],};$network.setProxyAdvanced(proxyRules);
현재 프록시 구성을 지우거나 제거합니다.
이 메서드는 구성이 적용되면 해결되는 Promise
를 반환합니다.
이 메서드는 현재 프록시 구성을 반환합니다. Promise 콜백에서 동기화되어야 합니다.
getProxy
을 $network.setProxy();
및 $network.clearProxy();
와 동기화하는 예:
var assert = require("assert");
$network .setProxy("http://user:password@myproxyurl.com") .then(function () { console.log("Proxy configuration applied");
// Note: $network.getProxy() is not synchronized with the webdriver Control Flow. // To make sure we get the proxy configuration after the call to setProxy() above // succeeds we need to use a promise callback var proxyData = $network.getProxy(); console.log(proxyData); }) .then(function () { // Again: getProxy() is not synchronized with the Webdriver Control Flow: we // need this promise callback otherwise clearProxy() might be called before the call // to getProxy() above returns return $network.clearProxy(); }) .then(function () { console.log("Proxy configuration cleared");
// We need this promise callback for reasons explained above var proxyData = $network.getProxy(); assert.equal(proxyData.rules, null); });
프록시 속성
중요
이 프록시 정보는 다음 버전에만 적용됩니다.
- API 모니터: 0.4.0, 0.2.2, 0.2.1, 0.1.0
- 스크립트 모니터: 0.1.0
HTTP 트래픽 메트릭을 분석하고 수집하기 위해 New Relic은 트래픽이 개념적 깔때기를 통과하도록 해야 합니다. 당사의 종합 모니터링에는 HTTP 요청 또는 응답을 분석한 다음 정보를 기록할 수 있는 소프트웨어 깔때기 구성요소가 포함됩니다.
- New Relic의 스크립팅된 브라우저 모니터(버전 0.4.x 이하)에는 HTTP 프록시 없이 이 분석을 수행하는 메커니즘이 포함되어 있으므로 구성할 필요가 없습니다.
- New Relic의 API 테스트(버전 0.4.x 이하)는 요청이 내부 HTTP 프록시를 통과하도록 미리 구성된
$http
객체를 제공합니다. 이를 통해 프록시 설정을 포함하지 않고 테스트를 작성할 수 있습니다.
HTTP 트래픽 측정항목을 수집하는 동안 다른 방법을 사용하여 HTTP 트래픽을 생성하려는 경우 $env.PROXY_HOST
및 $env.PROXY_PORT
을 사용할 수 있습니다. 트래픽 메트릭을 기록하려면 스크립트에 이러한 속성을 포함해야 합니다.