0% acharam este documento útil (0 voto)
3 visualizações2 páginas

Web Apps Log Patterns

Todas as requisições web devem incluir headers específicos, como x-trace-id e x-request-id, com valores gerados pelo backend quando ausentes. Logs devem ser formatados em JSON, com estruturas distintas para recebimento e resposta de requisições, contendo informações detalhadas como tempo, nível de log, e identificadores. Além disso, todos os pontos do sistema devem seguir uma estrutura padronizada para logs.

Enviado por

mactothefuture
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações2 páginas

Web Apps Log Patterns

Todas as requisições web devem incluir headers específicos, como x-trace-id e x-request-id, com valores gerados pelo backend quando ausentes. Logs devem ser formatados em JSON, com estruturas distintas para recebimento e resposta de requisições, contendo informações detalhadas como tempo, nível de log, e identificadores. Além disso, todos os pontos do sistema devem seguir uma estrutura padronizada para logs.

Enviado por

mactothefuture
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

Para facilitar nas análises e rastreamento toda requisição web deverá conter os

headers abaixo:

x-trace-id
x-request-id
Authorization
user-agent
BTG_CLIENT_APPLICATION

Como parte do processo de mudanças existirão casos que a requisição poderá chegar
no app backend sem os headers (x-trace-id, x-request-id e user-agent), nesses casos
específicos a app backend deverá definir um valor para o x-trace-id e para o x-
request-id, esses valores deverão ser utilizados em cada registro de log da
aplicação.

Em casos de requisições entre sistemas:

Adicionar o header x-trace-id com o mesmo valor que foi recebi ou gerado na entrada
da requisição.

Adicionar o header x-request-id mas neste caso deverá ser gerado um novo valor, o
x-request-id é único por requisição feita.

Adicionar o header BTG_CLIENT_APPLICATION com o valor constante sendo o nome da app


que está originando a requisição.

Padrão de logs
Os logs deverão estar formatados como JSON para permitir filtro sobre os parâmetros
dessa forma facilitará filtros e análise de anomalias.

Recebimento de requisição
O log de recebimento da requisição deverá conterá uma diferença em relação aos
demais locais do sistema, ficando da seguinte forma.

{
["time"],
["log_level"],
["trace_id"],
["request_id"],
["class"],
["method"],
["path"],
["query_parameters"],
["headers"],
["message"]
}
Exemplo:
"time":"2024-07-11T03:04:02.408662271Z",
"log_level": "DEBUG",
"trace_id": "3c061e3cd2894b4",
"request_id":"6665faf0ec329b",
"class":"UserController",
"method":"list",
"path":"/v1/users/2123123123/detail",
"query_parameters":"",
"headers":"",
"message":"",
Resposta da requisição
O log de resposta da requisição deverá conterá uma diferença em relação aos demais
locais do sistema, ficando da seguinte forma.

{
["time"],
["log_level"],
["trace_id"],
["request_id"],
["class"],
["method"],
["path"],
["query_parameters"],
["headers"],
[http_status],
[duration],
["message"]
}
Exemplo
"time":"2024-07-11T03:04:02.408662271Z",
"log_level": "DEBUG",
"trace_id": "3c061e3cd2894b4",
"request_id":"6665faf0ec329b",
"class":"UserController",
"method":"list",
"path":"/v1/users/2123123123/detail",
"query_parameters":"",
"headers":"",
"http_status":"200",
"duration":"291",
"message":"",
Demais pontos do sistema
Todos os demais pontos do sistema deverão atender a estrutura abaixo:

{
["time"]
["log_level"]
["trace_id"]
["request_id"]
["class"]
["method"]
["message"]
}
Exemplo
"time":"2024-07-11T03:04:02.408662271Z",
"log_level": "DEBUG",
"trace_id": "3c061e3cd2894b4",
"request_id":"6665faf0ec329b",
"class":"UserController",
"method":"list",
"message":"",

Você também pode gostar