Troubleshoot na plataforma

Pela plataforma do API Manager temos algumas ferramentas que podem nos ajudar a identificar alguns problemas, o primeiro que vamos destacar é utilizando o Trace.

 O trace da plataforma é um recurso importante para a checagem e monitoração de calls que são realizadas pelas Apps às APIs e que são gerenciadas pelo Manager. Nesta página é possível visualizar uma lista com todas as chamadas já realizadas.

Estas chamadas podem ser inspecionados para obter maiores detalhes, clicando em sua URI, algumas das informações são:

  • Status code
  • Tempo de cada step
  • Endereço do chamador (IP)
  • Fluxo completo da chamada passado pelo gateway
  • APP
  • Access Token

 Neste primeiro exemplo criamos uma API e inserimos o interceptor de Oauth no fluxo da requisição, realizamos a chamada e não informamos o client_id no header portanto a chamada não obteve sucesso, retornando um status 401 Client Error.

 Vamos visualizar o passo a passo dessa requisição no gateway trace.

  • A primeira linha destacada é o endereço onde foi definido para o destino da chamada por exemplo o backend definido, após verificar a rota e o destination o gateway irá executar todos os interceptors que existem no fluxo da requisição, ao executar o interceptor de Oauth apresentará um erro informando que não foi encontrado o client_id e access_token na requisição da chamada retornando o status 401 como esperado.

 

  • No segundo exemplo realizamos a mesma chamada onde o client_id e access_token(obrigatórios no fluxo Oauth) foram passados nos Headers, sendo assim a requisição não irá interromper no interceptor Oauth e também inserimos um interceptor importante para realizar análise da chamada o Interceptor de LOG, com ele podemos ver todas as informações passadas na chamada até mesmo o body, veja a imagem abaixo:

 

O ícone à direita da tela traz todas as informações que foi passado ao realizar a chamada como: uri, headers e payloads.

 

obs: o tamanho máximo para exibição dos payloads armazenados é de 700kb.



Na imagem abaixo mostra um exemplo de como funciona a execução e regras da chamada.

API: A primeira etapa é execução dos interceptors do fluxo request da API.

APP Plan: A segunda etapa é a execução do Plano vinculado a APP da chamada, onde são executados os interceptors do fluxo do Plano.

ACCESS PLAN: A terceira etapa é a execução do Plano vinculado ao access token, onde são executados os interceptors do fluxo do Plano.

Esta regra é considerada tanto no request como no response da chamada.

 

 

Outra informação importante na visualização da chamada no trace é a latency (o tempo total da chamada).

 

Na tela principal é mostrado o tempo total, mas nos detalhes do gateway trace é possível visualizar o tempo que ocorreu em cada step da chamada. Dando uma ênfase sempre para o Forwarding request (chamada ao backend), se o tempo de resposta for maior 60s (tempo default), o gateway retornará um timeout cortando a conexão com o backend retornando uma mensagem de timeout.


Na aba Custom Search é possível realizar buscas de chamadas de maneira personalizada com a passagem de parâmetros especiais, visando buscar chamados mais específicos na listagem do trace.

 

O Custom Search utiliza sintaxe e índices do Lucene para realizar as pesquisas. Para saber quais são os parâmetros aceitos, consultar o dicionário de dados Kibana presente nesta documentação.

https://help.v3.apisuite.sensedia.com/pt-br/kibana/dicionario_de_dados_kibana.html

 

Alguns exemplos de uso são:

1 - Retornar todas as chamadas que tiveram o status code 401:

resultStatus: 401

 

 2 - Retornar todas as chamadas em que o tempo de resposta foi entre 1 a 10s:

durationMillis: [100 TO 900]

 

3 - Retorna as chamadas onde contenham dados iguais a string pesquisada (o * utilizado é uma mascara que considera todos os caracteres imediatamente antes da string pesquisada):

trace.fulltextsearch: "*/users"

 

Kibana

 Kibana é uma ferramenta extremamente importante para a análise do comportamento das APIs e auxilia no troubleshooting de um problema. Se tiver dúvidas na criação dos gráficos pode consultar nosso outro artigo Dashboards Kibana onde mostramos alguns exemplos.

 

Alguns exemplos dos benefícios que o Kibana pode trazer são:

  • Média da duração em Milissegundos
  • Total de chamadas por API
  • Total de chamadas por operação de cada API
  • Recursos mais consultados nas últimas 3 horas
  • Chamadas com menor tempo (Latência mínima)
  • Latência média
  • Latência máxima
  • Tamanho do payload

 

Na imagem abaixo criamos um dashboard filtrando os erro mais comuns como: 2xx - Success, 3xx - Redirects, 4xx Client Error, 5xx - Server Error, sendo útil para identificar o erro que está acontecendo no momento. Ao lado esquerdo temos o total de requisições filtrado naquele período de tempo e também o gráfico de latência de cada API, sendo possível visualizar o tempo de resposta de cada uma.



 

Outro exemplo podemos visualizar o tempo de resposta de todas as  APIs, isso ajuda para identificar a saúde delas. O tempo filtrado foi menor que 1s, entre 1s e 2s e maior que 2s.

 

 

O importante é correlacionar as informações obtidas por meio do dashboard do Kibana com as informações do detalhamento das chamadas no Trace para tirar conclusões do fluxo de toda a chamada.

 

Tem mais dúvidas? Envie uma solicitação

Comentários

Powered by Zendesk