[ Editor – Esta postagem foi atualizada com informações sobre os relatórios revisados introduzidos na versão 0.2.0 do rtapi
.]
As APIs estão no centro dos aplicativos modernos e das arquiteturas digitais em evolução, com chamadas de API representando 83% de todo o tráfego da web, de acordo com o Relatório sobre o Estado da Segurança da Internet da Akamai . No cenário atual, onde é tão fácil para os consumidores mudarem para um concorrente digital, é de suma importância que eles tenham uma experiência positiva com seu site ou aplicativo. A velocidade é altamente valorizada e, em última análise, é impulsionada por APIs responsivas, saudáveis e adaptáveis. Se você fizer isso corretamente – sua API será mais rápida que a do seu concorrente – os desenvolvedores escolherão você.
De acordo com o relatório da IDC APIs — The Determining Agents Between Success or Failure of Digital Business , mais de 90% das organizações esperam uma latência de menos de 50 milissegundos (ms), enquanto quase 60% esperam uma latência de 20 ms ou menos. (Latência é definida como a quantidade de tempo que sua infraestrutura de API leva para responder a uma chamada de API – desde o momento em que uma solicitação chega ao gateway de API até quando o primeiro byte de uma resposta é retornado ao cliente.)
Usamos esses dados, juntamente com algumas análises de ponta a ponta do ciclo de vida da API, para definir uma API em tempo real como aquela com latência de 30 ms ou menos. Além disso, o limite de latência de 30 ms deve ser mantido até o 99º percentil de solicitações processadas (o que significa que, em média, apenas 1 solicitação em 100 leva mais de 30 ms). Para obter detalhes, consulte nosso blog sobre benchmarking de desempenho de soluções de gerenciamento de API .
É um grande desafio para a maioria das empresas processar chamadas de API o mais próximo possível do tempo real, especialmente ao usar gateways de API arquitetonicamente complexos como pontos de entrada para seus endpoints de API. Então, como estão suas APIs? Eles já são rápidos o suficiente para serem considerados em tempo real ou precisam melhorar? Seu produto parece um pouco lento, mas você não consegue entender o motivo? Talvez você não saiba ao certo como é a latência da sua API?
Conheça o rtapi
, uma ferramenta de benchmarking de latência de API em tempo real criada pela NGINX que testa a capacidade de resposta dos seus gateways e endpoints de API e gera relatórios que você pode distribuir e socializar facilmente entre seus pares. Dois formatos de relatório estão disponíveis: um PDF com um gráfico de resumo e uma tabela em formato ASCII com métricas detalhadas.
rtapi
Baixe o binário rtapi
do GitHub usando um dos dois métodos:
Se você tiver o Golang instalado, execute este comando:
$ vá para github.com/nginxinc/rtapi
Especifique um ou mais endpoints de API ( destinos ) que você deseja consultar, no formato JSON ou YAML, como nos exemplos a seguir. Recomendamos salvar o JSON ou YAML em um arquivo chamado endpoints.json ou endpoints.yml . (Para JSON, você também pode incluir os dados na linha de comando rtapi
na próxima etapa, como o parâmetro para o sinalizador --data
.)
Os únicos parâmetros necessários para cada endpoint são target.url
e target.method
. Se você não especificar target.body
e target.header
, eles permanecerão vazios. Se você não especificar um parâmetro no objeto query_parameters
, o rtapi
usará o valor (padrão) mostrado nos exemplos a seguir.
Exemplo de entrada JSON
[
{
"alvo": {
"url": "https://www.example.com",
"método": "POST",
"corpo": "{\"id\":\"0\"}",
"cabeçalho": {
"Tipo de conteúdo": [
"aplicativo/json"
]
}
},
"parâmetros_de_consulta": {
"tópicos": 2,
"máx. tópicos": 2,
"conexões": 10,
"duração": "10s",
"taxa_de_solicitação": 500
}
}
]
Exemplo de entrada YAML
- alvo: url: https://example.com/api/id
método: POST
corpo: '{"id":"0"}'
cabeçalho:
Tipo de conteúdo:
- application/json
query_parameters:
threads: 2
máx. tópicos: 2
conexões: 12
duração: 10s
taxa de solicitação: 500
Execute o comando a seguir, onde --file
nomeia o arquivo que contém a lista de endpoints de API no formato JSON/YAML e --output
nomeia o relatório em PDF a ser gerado pelo rtapi
. (Conforme observado na Etapa 2, você pode fornecer entrada JSON na linha de comando: para --file
endpoints.json
substitua --data
seguido pela string JSON.)
$ rtapi --file endpoints.json --output report.pdf
Para exibir a tabela de métricas em formato ASCII no terminal, inclua o sinalizador --print
em vez de (ou além de) o sinalizador --output
.
$ rtapi --file endpoints.json --print
O relatório em PDF gerado pelo rtapi
contém um histograma HDR de latência de resposta como o seguinte (de um gateway de API NGINX Plus configurado usando o Módulo de gerenciamento de API do NGINX Controller ). O eixo Y mostra a latência em milissegundos, e o eixo X mostra a proporção de chamadas processadas em menos de uma latência determinada, expressa como um percentil. (No exemplo a seguir, comprimimos o eixo Y por uma questão de espaço.)
Para destacar os resultados da sua API, as linhas tracejadas paralelas aos eixos se cruzam para mostrar a latência medida da sua API no 99º percentil ( 99% no gráfico). Para que sua API seja considerada em tempo real, a latência na interseção precisa ser inferior a 30 ms.
A latência da sua API está abaixo de 30 ms?
Se você for como muitas empresas com as quais conversamos, é provável que não seja. Com muitas soluções de gateway de API e gerenciamento de API, a latência de 100 ms é comum, e até mesmo 500 ms não é tão incomum.
Podemos ajudá-lo a melhorar o desempenho da sua API – NGINX e NGINX Plus são os gateways de API mais rápidos do setor e, juntamente com o NGINX Controller, podem ajudá-lo a rotear, autenticar, proteger, moldar e armazenar em cache chamadas de API em menos de 30 ms. Saiba mais, fale com um especialista da NGINX e descubra como a NGINX pode ajudar você em sua jornada em direção às APIs em tempo real em nginx.com/real-time-api .
"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."