Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Esta API permite obter via método GET uma listagem com o tempo em microssegundos e o percentual gasto na execução de cada entryPoint na resposta de uma requisição REST.
Com o resultado é possível verificar os valores detalhadamente, pois o consumo está separado por cada entryPoint, Slave e ThreadPool, tornando esta API indispensável para análise de consumo, não só em caso de lentidão, mas também quando há necessidade de implementação de um novo entryPoint bem como na manutenção do ambiente.

Como utilizar

Esta API pode ser utilizada diretamente no próprio navegador de internet como: "CHROME", em um client HTTP como o: "POSTMAN", ou então, construindo um programa fonte .TLPP.
O retorno é uma string que, caso seja salva como arquivo utilizando a extensão .html, pode ser visualizada como página web.
A Api ainda disponibiliza os resultados diretamente no arquivo Console.log do ambiente onde está sendo executado o Appserver.
Sua utilização deve ser feita requisitando um endereço como este, por exemplo: https://localhost:5012/rest/tlpp/rest/usage/time

  • https - Protocolo definido na configuração do HttpServer para as aplicações REST.
  • localhost - Endereço(IP/Nome) do seu servidor de aplicação responsável pelo REST.
  • 5012 - Porta configurada no Appserver para o REST.
  • /rest - Location definida no Appserver para o REST.
  • /tlpp/rest/usage/time - URI da aplicação.

Obs.: Todos os parâmetros da URL citados acima, exceto: URI da aplicação, devem ser definidos conforme as configurações do seu servidor HTTPServer.

Caso executado diretamente no navegador, será mostrado uma página como esta:

Image Added

Também é possivel consumir a API por meio de um programa fonte .TLPP escrevendo uma User Function ou uma Classe.

Utilizando User Function.


#include "tlpp-core.th"
#include "tlpp-rest.th"

@Get("/tlpp/rest/metricasdetempo")
User Function metricasDeTempo()

  
  Local cMethod := "GET"
  Local cServer := "https://localhost:5012/rest"
  Local cUri := "/tlpp/rest/usage/time"
  Local cHeadRet := ""
  Local cPostParms := ""
  Local cGetParms := ""
  Local nTimeout := 5
  Local aHeadStr := {}
  Local jReturn

  jReturn := HttpQuote(cServer+cUri, cMethod, cGetParms, cPostParms, nTimeOut, aHeadStr, @cHeadRet)
  Conout(cValToChar(jReturn),"Tipo do retorno["+ValType(jReturn)+"] -->>")

Return


Utilizando Classe


#include "tlpp-core.th"
#include "tlpp-rest.th"

class metricasDeTempo from LongclassName
  public  method new()				constructor

	@Get("/tlpp/rest/metricasdetempo")
	public method mmetricasdetempo()

endclass

method new() class metricasDeTempo
return Self

method mmetricasdetempo() Class metricasDeTempo

  Local cMethod := "GET"
  Local cServer := "https://localhost:5012/rest"
  Local cUri := "/tlpp/rest/usage/time"
  Local cHeadRet := ""
  Local cPostParms := ""
  Local cGetParms := ""
  Local nTimeout := 5
  Local aHeadStr := {}
  Local jReturn

  jReturn := HttpQuote(cServer+cUri, cMethod, cGetParms, cPostParms, nTimeOut, aHeadStr, @cHeadRet)
  Conout(cValToChar(jReturn),"Tipo do retorno["+ValType(jReturn)+"] -->>")

return .T.


Funcionamento

A API coleta os dados de consumo simulando a execução de cada entryPoint em cada Slave e no ThreadPool principal, guarda os dados iniciais e ao final efetua as comparações e os cálculos conforme as configurações do ambiente em que foi executada.
O seu retorno é uma string que foi dinamicamente montada e caso seja salva como um arquivo com extensão .html pode ser mostrada como uma pagina web.

P.S.: Caso haja algum problema, o retorno obedece o mesmo formato, porém é passada a informação do que causou o mal funcionamento.