Para responder rapidamente à sua chamada de API REST – mesmo quando outros clientes estão executando consultas demoradas – o New Relic inclui proteção contra sobrecarga na API.
Se você estiver consultando uma quantidade de dados grande o suficiente para consumir recursos significativos, o código de resposta e os cabeçalhos da API indicarão que você excedeu a capacidade disponível para sua chave de API. Esta é uma condição rara que a maioria dos clientes nunca verá. Somente clientes cujo uso da API consome muitos recursos verão isso.
Os clientes estarão limitados a 1000 chamadas API por minuto.
Respostas da API
Em operação normal, a API não adiciona nenhum status de proteção contra sobrecarga às respostas. Você não precisa realizar nenhuma ação.
Durante o intervalo de tempo reporting period , a New Relic rastreia o impacto de cada solicitação de API em nosso sistema.
Estes são os casos típicos que podem acionar proteção contra sobrecarga ou limitação de taxa:
- Uma chave de API que você está usando excedeu o número máximo de solicitações por minuto.
- Nosso sistema geralmente está sobrecarregado e precisamos que algumas contas diminuam seus relatórios.
No caso de ocorrer limitação de taxa, acontecerão o seguinte:
- Outras chamadas de API falharão com o código de status HTTP 429 (muitas solicitações).
- Os cabeçalhos e o corpo das respostas HTTP podem ou não conter mais informações sobre o erro.
- A chamada de API será permitida novamente no final do período do relatório.
Cabeçalhos
Aqui estão os cabeçalhos HTTP que aparecerão nas respostas da API se você tiver excedido o limite individual da sua chave de API:
Cabeçalho de sobrecarga | Significado |
---|---|
| Número máximo de solicitações por minuto. |
| Número de solicitações restantes neste período. |
| Timestamp UNIX (número de segundos desde 1º de janeiro de 1970) quando o período do relatório atual termina. As solicitações de API serão respondidas após esse período. |
| Hiperlink para este documento para que você tenha informações adicionais imediatamente. |
Aqui estão os cabeçalhos HTTP que aparecerão nas respostas da API se houver um problema geral no sistema:
Cabeçalho de sobrecarga | Significado |
---|---|
| Número de segundos até você tentar novamente. |
Exemplo
Aqui está um exemplo de solicitação de API indicando que o chamador consumiu todos os recursos disponíveis e que outras chamadas de API serão permitidas novamente ao meio-dia de 1º de fevereiro de 2016:
curl -X GET 'https://api.newrelic.com/v2/applications.json' \
-H "Api-Key:$API_KEY" -i
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
...
X-RateLimit-Docs: https://docs.newrelic.com/docs/apis/rest-api-v2/requirements/api-overload-protection-preventing-429-errors
X-RateLimit-Reset: 1454313600
X-RateLimit-Remaining: 0
X-RateLimit-Limit: 1000
{}
Evitando erros de limitação de taxa
A solução mais simples para um erro 429 é esperar até que o período do relatório termine antes de enviar sua próxima solicitação de API. No entanto, com uma gestão cuidadosa da sua consulta, você pode evitar erros de proteção contra sobrecarga em primeiro lugar.
Se você sabe que enviará muitas consultas que exigem muitos recursos, você pode executar uma das seguintes medidas preventivas:
- Envie sua consulta com menos frequência; em particular, consulte com menos frequência do que uma vez por minuto (a taxa de atualização dos dados do agente).
- Armazene dados em cache do New Relic em vez de solicitá-los sempre à API.
- Use a técnica baseada em cursor se precisar solicitar nomes de métricas e a saída resultar em múltiplas páginas.