Chamadas do bot a APIs externas
A tabela bot_fact_external_api_metric armazena as chamadas que os bots fazem a serviços externos durante os atendimentos, como integrações da loja, consulta de CEP e serviços do Google, com o resultado e o tempo de resposta de cada chamada. Cada linha é uma chamada. Com dados atualizados a cada 20 minutos, aproximadamente.
Exemplo
Um bot que consulta o status de um pedido na integração da loja três vezes no mesmo atendimento gera três linhas:
• request_type = web, type = integration, status_code = 200, duration_ms = 850: a integração respondeu em menos de 1 segundo às 10:00.
• request_type = cache, type = integration, status_code = 200, duration_ms = 3: a mesma consulta, às 10:01, foi respondida pelo cache, sem chamar o serviço externo.
• request_type = web, type = integration, event_name = ExternalAPIError, status_code = 408, duration_ms = 8000, timeout = 8000: às 10:05 o serviço não respondeu dentro do limite de 8 segundos.
Use event_name para achar as falhas: ele vem como ExternalAPIError quando a chamada não retorna 200 e fica vazio quando dá certo. duration_ms e timeout estão em milissegundos; para ver em segundos, divida por 1000.
Para medir o tempo real dos serviços externos, filtre request_type = web. As linhas com request_type = cache foram respondidas pelo cache e levam poucos milissegundos. type separa o tipo de serviço: integration, cep e googleapi. Nas consultas de cep e googleapi, message_id, endpoint_id e timeout ficam vazios.
Cruze customer_support_request com csr_id da dim_customer_support_request, message_id com a dim_message e bot_id com a dim_bot. As colunas body, headers e response_data trazem o conteúdo enviado e recebido, que pode incluir dados do cliente; use com cuidado.
Atenção: Os registros desta tabela utilizam o fuso horário UTC, ou seja, para que as datas sejam referentes ao fuso horário brasileiro, é preciso inserir nas queries o fuso horário brasileiro.
SET TIME ZONE '-3:00';
SELECT tb.domain_name
,tb.status_code
,tb.duration_ms
,tb.created_at
FROM bot_fact_external_api_metric AS tb
;
Dicionário de dados
Variável | Tipo | Descrição | Obs |
retailer_id | string | Código identificador da loja. Em contas com mais de uma loja, separa os registros de cada uma | Chave estrangeira para a tabela dim_retailer |
approximate_arrival_date | date | Data em que o registro chegou à base | |
bot_id | string | Código identificador do bot que fez a chamada | Chave estrangeira para a tabela dim_bot |
chat_id | string | Código identificador do chat | Chave estrangeira para a tabela dim_chat |
message_id | string | Código identificador da mensagem ligada à chamada | Chave estrangeira para a tabela dim_message |
customer_support_request | string | Código identificador do atendimento | Chave estrangeira para a tabela dim_customer_support_request |
domain_name | string | Domínio do serviço externo chamado | |
endpoint_id | string | Código identificador do endpoint chamado | |
event_name | string | Nome do evento registrado na chamada | |
request_type | string | Tipo de requisição (ex.: cache, web) | |
type | string | Categoria da chamada (ex.: integration, cep, googleapi) | |
status_code | bigint | Código de status HTTP devolvido pela API | |
duration_ms | double | Duração da chamada, em milissegundos | |
timeout | bigint | Tempo limite configurado para a chamada, em milissegundos | |
body | string | Conteúdo enviado na chamada | |
headers | string | Cabeçalhos HTTP enviados na chamada | |
response_data | string | Dados devolvidos pela API | |
created_at | timestamp | Data e hora da chamada |
