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":"",