O objeto global $network permite controlar a configuração de rede usada pelo seu monitor com script Sintético. Os itens a seguir são aplicáveis tanto para browsers com script quanto para testes de API, salvo indicação em contrário.
Define um servidor proxy a ser usado para todas as solicitações por URL (HTTP, HTTPS e FTP).
Notas Adicionais:
A porta é opcional. Se não for fornecido, será derivado do esquema. Por exemplo, para HTTP a porta seria 80.
O nome de usuário e a senha são considerados o resultado de uma chamada para encodeURIComponent(). Caracteres especiais como @ e : no nome de usuário e/ou senha devem ser escapados.
Este método retorna um Promise que será resolvido assim que a configuração for aplicada.
Parâmetro
Tipo de dados
Descrição
proxyURL | proxyUrlParsed
String ou Objeto
A URL para se conectar ao servidor proxy. Uma string contendo um proxyURL (por exemplo, http://proxy_host:8888) ou um objeto simples no mesmo formato definido pelo método url.parse(urlString) do Node.
Um exemplo de configuração de um servidor proxy com protocolo HTTP na porta 1234 sem autenticação:
$network.setProxy('http://host.com:1234')
Um exemplo de configuração de um servidor proxy com protocolo HTTP com credenciais de autenticação.
Essa chamada é exatamente igual à chamada setProxy por URL, exceto que se aplica ao tráfego HTTP.
Define um servidor proxy a ser usado para todas as solicitações HTTP.
Notas Adicionais:
A porta é opcional. Se não for fornecido, será derivado do esquema. Por exemplo, para HTTP a porta seria 80.
O nome de usuário e a senha são considerados o resultado de uma chamada para encodeURIComponent(). Caracteres especiais como @ e : no nome de usuário e/ou senha devem ser escapados.
Este método retorna um Promise que será resolvido assim que a configuração for aplicada.
Parâmetro
Tipo de dados
Descrição
proxyURL | proxyUrlParsed
String ou Objeto
A URL para se conectar ao servidor proxy. Uma string contendo um proxyURL (por exemplo, http://proxy_host:8888) ou um objeto simples no mesmo formato definido pelo método url.parse(urlString) do Node.
Um exemplo de configuração de um servidor proxy com protocolo HTTP na porta 1234 sem autenticação:
$network.setProxyForHttp('http://host.com:1234')
Um exemplo de configuração de um servidor proxy com protocolo HTTP com credenciais de autenticação.
Essa chamada é exatamente igual à chamada setProxy por URL, exceto que se aplica ao tráfego HTTPS.
Define um servidor proxy a ser usado para todas as solicitações HTTPS.
Notas Adicionais:
A porta é opcional. Se não for fornecido, será derivado do esquema. Por exemplo, para HTTP a porta padrão seria 443.
O nome de usuário e a senha são considerados o resultado de uma chamada para encodeURIComponent(). Caracteres especiais como @ e : no nome de usuário e/ou senha devem ser escapados.
Este método retorna um Promise que será resolvido assim que a configuração for aplicada.
Parâmetro
Tipo de dados
Descrição
proxyURL | proxyUrlParsed
String ou Objeto
A URL para se conectar ao servidor proxy. Uma string contendo um proxyURL (por exemplo, http://proxy_host:8888) ou um objeto simples no mesmo formato definido pelo método url.parse(urlString) do Node.
Um exemplo de configuração de um servidor proxy com protocolo HTTPS na porta 1234 sem autenticação:
Define um servidor proxy por meio de um script de configuração automática de proxy (PAC) e retorna uma promessa. Esta função está disponível apenas para monitor de browser com script.
Este método retorna um Promise que será resolvido assim que a configuração for aplicada.
Parâmetro
Tipo de dados
Descrição
scriptURL
Corda
A URL do script PAC.
authCredentialsMap
Objeto
Mapa de credenciais de autenticação a serem fornecidas ao(s) servidor(es) proxy, codificadas pelo nome do host do servidor proxy. Os valores deste mapa devem ser definidos no formato {username: 'authUsername', password: 'authPassword'}
Um exemplo de configuração de um servidor proxy por meio de um script de configuração automática de proxy (PAC):
Este método é Chrome-specific: aplica-se apenas aos tipos de script do browser com monitor. Ele pode ser usado para permitir uma configuração de proxy mais flexível e complexa. Na maioria dos casos, este método não será necessário.
Define a configuração do proxy usando o formato compatível com a API de extensão do Chrome para proxy. A entrada é um objeto ProxyRules, conforme definido pela API de extensão do Chrome para configurar proxies. Você pode adicionar authCredentials para proxies que precisam dele. Veja parâmetro para mais detalhes.
Este método retorna um Promise que será resolvido assim que a configuração for aplicada.
Parâmetro
Tipo de dados
Descrição
ProxyRules Object
Objeto
O proxyRulesObject é um objeto simples que segue o formato ProxyRules conforme definido pela API de extensão do Chrome para configurar proxies. Este objeto é "adaptado" para se adequar ao nosso tempo de execução: o usuário pode definir uma propriedade adicional, authCredentials, para o Proxy server objects fornecer credenciais de autenticação para um servidor proxy específico. authCredentials é um objeto no formato {username: 'authUsername', password: 'authPassword'}.
Aqui está um exemplo de criação de um proxyRules com authCredentials:
var proxyRules ={
singleProxy:{
host:"example.com",
authCredentials:{
username:"authUsername",
password:"authPassword",
},
},
};
Aqui está um exemplo de configuração de uma rede proxy com ativos de zona de rede mista:
Este método retorna um Promise que será resolvido assim que a configuração for aplicada.
Este método retorna a configuração atual do proxy. Deve ser sincronizado em um retorno de chamada de promessa.
Um exemplo de sincronização de getProxy com $network.setProxy(); e $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);
});
Propriedades de proxy
Importante
Estas informações de proxy se aplicam somente a estas versões:
Monitor de API: 0.4.0, 0.2.2, 0.2.1, 0.1.0
Monitor com script: 0.1.0
Para analisar e coletar suas métricas de tráfego HTTP, a New Relic deve garantir que o tráfego passe por um funil conceitual. Nosso monitoramento sintético inclui um componente de software capaz de analisar as solicitações ou respostas HTTP e então registrar as informações.
O script monitor de browser com da New Relic (versões 0.4.x e inferiores) inclui um mecanismo para fazer essa análise sem a necessidade de um proxy HTTP, para que você não precise configurar nada.
O teste de API da New Relic (versões 0.4.x e anteriores) fornece um objeto $http pré-configurado para fazer as solicitações passarem pelo proxy HTTP interno. Isso permite que você escreva seu teste sem incluir nenhuma configuração de proxy.
Se você quiser usar alguma outra forma de gerar tráfego HTTP enquanto ainda coleta a métrica de tráfego HTTP, você pode usar $env.PROXY_HOST e $env.PROXY_PORT. Para registrar métricas de tráfego, certifique-se de incluir essas propriedades em seu script.