Framework de Integração HTTP
Através deste framework é possível utilizar o Apache Fluent HTTP para fazer chamadas HTTP pelo Java ou em estilos Javascript e Groovy, aproveitando funcionalidades de logging detalhado, monitoramento e JMX. Isso proporciona uma visão completa e controle sobre as requisições HTTP realizadas pelo sistema, melhorando a capacidade de diagnóstico e gestão.
Configuração
O framework faz a configuração do cliente HTTP utilizando valores de variáveis de ambiente. Caso uma variável não esteja definida, um valor padrão será utilizado.
O log da API por padrão limita-se apenas a exibir informações de chamadas com erro, para exibir informações de todas as chamadas deve-se alterar seu nível para debug. Consultar a seção Logs do Portal para verificar como habilitar.
Uso
Para utilizar o HTTP Integrator, deve-se criar uma requisição utilizando o Apache Fluent e ao invés de chamar o método execute nativo, passar essa requisição como parâmetro para o IHTTPIntegrationManager que pode ser obtido através do método ManagerFactory.getHTTPIntegrationManager().
Java
Estilo em Javascript
JMX
O framework também suporta monitoramento via JMX (Java Management Extensions), permitindo o gerenciamento e monitoramento em tempo real das requisições HTTP e do desempenho do sistema. Para obter mais informações sobre quais dados são expostos ao JMX, consulte:
API de Monitoramento
A API de monitoramento coleta informações sobre as requisições HTTP. Os campos e eventos monitorados são:
Campos
- lum_httpintegration.execution.id: Identificador da execução.
- lum_httpintegration.request.url: URL da requisição.
- lum_httpintegration.request.method: Método da requisição.
- lum_httpintegration.request.body.contentLength: Tamanho do corpo da requisição.
- lum_httpintegration.request.body.contentType: Content Type do corpo da requisição.
- lum_httpintegration.request.exception: Exceção gerada durante a requisição.
- lum_httpintegration.request.error.reason: Motivo do erro da requisição.
- lum_httpintegration.response.status.code: Código de estado da resposta.
- lum_httpintegration.response.body.contentLength: Tamanho do corpo da resposta.
- lum_httpintegration.response.body.contentType: Content Type do corpo da resposta.
Eventos
- Execution Started
- ID: lumis.portal.monitor.ev.httpintegration.executionStarted
- Nome: Integração HTTP - Execução iniciada
- Verbo: criou uma execução
- Campos:
- lum_httpintegration.execution.id (obrigatório)
- lum_httpintegration.request.url (obrigatório)
- lum_httpintegration.request.method (opcional)
- lum_httpintegration.request.body.contentLength (opcional)
- lum_httpintegration.request.body.contentType (opcional)
- Request Started
- ID: lumis.portal.monitor.ev.httpintegration.requestStarted
- Nome: Integração HTTP - Requisição iniciada
- Verbo: iniciou uma requisição
- Campos:
- lum_httpintegration.execution.id (obrigatório)
- lum_httpintegration.request.url (obrigatório)
- lum_httpintegration.request.method (opcional)
- lum_httpintegration.request.body.contentLength (opcional)
- lum_httpintegration.request.body.contentType (opcional)
- Request Ended
- ID: lumis.portal.monitor.ev.httpintegration.requestEnded
- Nome: Integração HTTP - Requisição terminada
- Verbo: terminou uma requisição
- Campos:
- lum_httpintegration.execution.id (obrigatório)
- lum_httpintegration.request.url (obrigatório)
- lum_httpintegration.request.method (opcional)
- lum_httpintegration.request.body.contentLength (opcional)
- lum_httpintegration.request.body.contentType (opcional)
- lum_httpintegration.request.error.reason (opcional)
- lum_httpintegration.response.status.code (opcional)
- lum_httpintegration.response.body.contentLength (opcional)
- lum_httpintegration.response.body.contentType (opcional)
- Execution Ended
- ID: lumis.portal.monitor.ev.httpintegration.executionEnded
- Nome: Integração HTTP - Execução terminada
- Verbo: completou uma execução
- Campos:
- lum_httpintegration.execution.id (obrigatório)
- lum_httpintegration.request.url (obrigatório)
- lum_httpintegration.request.method (opcional)
- lum_httpintegration.request.body.contentLength (opcional)
- lum_httpintegration.request.body.contentType (opcional)
- lum_httpintegration.request.error.reason (opcional)
- lum_httpintegration.request.exception (opcional)
- lum_httpintegration.response.status.code (obrigatório)
- lum_httpintegration.response.body.contentLength (opcional)
- lum_httpintegration.response.body.contentType (opcional)