---
name: azion-consulte-as-urls-mais-atingidas-por-bots-com-graphql
description: >-
  Leia as URLs que o tráfego de bots mais alcançou, com uma consulta ao dataset botManagerBreakdownMetrics no GraphiQL Playground.
---

# Consulte as URLs mais atingidas por bots com GraphQL

Você lê as URLs que o tráfego de bots mais alcançou no dataset `botManagerBreakdownMetrics`, no GraphiQL Playground ou a partir de qualquer cliente GraphQL que envie as suas credenciais.

`botManagerBreakdownMetrics` agrega as requisições que o [Bot Manager](/pt-br/documentacao/plataforma/firewall/#bot-manager) classificou como bots e como bad bots, agrupadas pelas URLs e pelos endereços IP que esse tráfego alcançou. O dataset é retido por 60 dias, então um intervalo de tempo que começa antes disso não devolve linhas.

O segundo dataset do Bot Manager, `botManagerMetrics`, carrega as contagens de classificação: a ação, a categoria e o veredito de cada requisição. Ele é retido por 2 anos. Para mais informações, consulte [Consulte dados do Bot Manager com GraphQL](/pt-br/documentacao/guias/plataforma/observabilidade/consultar-dados-bot-manager-com-graphql/).

---

## Pré-requisitos

- Uma assinatura do Bot Manager na sua conta. O dataset não é recuperável sem uma.
- Uma sessão Azion autenticada no navegador em que você abre o Playground. Uma requisição que não carrega sessão devolve uma mensagem de erro.

---

## Consulte as URLs que os bots mais alcançaram

A consulta filtra o dataset por um intervalo de tempo, soma `botRequests` por URL e devolve as cinco URLs com o maior total. Para rodá-la:

1. **Abra o Playground**

   Acesse `https://api.azion.com/v4/metrics/graphql`.

2. **Informe a consulta**

   Defina `begin` e `end` para o período que você quer ler, dentro dos últimos 60 dias:

   ```graphql
   query {
     botManagerBreakdownMetrics (
       filter: {
         tsRange: {
           begin: "2024-10-01T00:00:00"
           end: "2024-10-03T00:00:00"
         }
       }
       aggregate: {
         sum: botRequests
       }
       groupBy: [requestUrl]
       orderBy: [sum_DESC]
       limit: 5
     ) {
       requestUrl
       sum
     }
   }
   ```

3. **Rode a consulta e leia a resposta**

   A resposta carrega um objeto por URL, com as requisições somadas em `sum`:

   ```json
   {
     "data": {
       "botManagerBreakdownMetrics": [
         {
           "requestUrl": "example-host1.com/api/v1/resource",
           "sum": 333543
         },
         {
           "requestUrl": "example-host2.net/api/v2/data",
           "sum": 107281
         },
         {
           "requestUrl": "example-host3.org/api/v3/info",
           "sum": 103363
         },
         {
           "requestUrl": "example-host4.io/api/v4/details",
           "sum": 89668
         },
         {
           "requestUrl": "example-host5.co/api/v5/summary",
           "sum": 64060
         }
       ]
     }
   }
   ```

Você agora tem as URLs que o tráfego de bots mais alcançou no período, ordenadas pelo número de requisições classificadas como bots.

---

## Campos da consulta

| Campo       | O que carrega                                                                                                         |
| ----------- | --------------------------------------------------------------------------------------------------------------------- |
| `filter`    | Os critérios que estreitam os dados devolvidos                                                                        |
| `tsRange`   | Um subcampo de `filter`, com um timestamp `begin` e um `end` no formato `YYYY-MM-DDTHH:mm:ss`                         |
| `aggregate` | Com `sum: botRequests`, o total de requisições classificadas como bots no intervalo, depois que os filtros se aplicam |
| `groupBy`   | Os campos pelos quais os resultados são agrupados. `[requestUrl]` os agrupa por URL                                   |
| `orderBy`   | A ordem dos resultados. `[sum_DESC]` os devolve em ordem decrescente, `[sum_ASC]` em crescente                        |
| `limit`     | O número máximo de resultados. Esta consulta devolve `5`; eleve-o para ler mais abaixo no ranking                     |

## Campos da resposta

| Campo        | O que carrega                                                                                 |
| ------------ | --------------------------------------------------------------------------------------------- |
| `requestUrl` | A URL para a qual as requisições foram feitas. Por exemplo: `example-host5.co/api/v5/summary` |
| `sum`        | As requisições classificadas como bots que alcançaram a URL. Por exemplo: `333543`            |

---

## Mude o agrupamento ou a soma

A consulta acima combina um campo do dataset com uma das somas dele. O dataset carrega quatro campos: `host`, `remoteAddr`, `requestUrl` e `ts`. Ele carrega três somas: `badBotRequests`, `botRequests` e `uniqRequestUrl`. Duas mudanças cobrem a maior parte das outras leituras do mesmo período:

- Defina `groupBy` como `[host]` ou como `[remoteAddr]` para totalizar as requisições por host ou por endereço IP de origem, em vez de por URL.
- Defina `aggregate` como `sum: badBotRequests` para contar apenas as requisições classificadas como bad bots, que são um subconjunto das requisições que `botRequests` conta.

Para a descrição de cada campo, consulte [botManagerBreakdownMetrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics/#botmanagerbreakdownmetrics).

---

## Próximos passos

- [Consulte dados do Bot Manager com GraphQL](/pt-br/documentacao/guias/plataforma/observabilidade/consultar-dados-bot-manager-com-graphql.md): As contagens de classificação do segundo dataset, retido por 2 anos.
- [Campos da GraphQL API de Real-Time Metrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics.md#botmanagerbreakdownmetrics): Cada campo e cada soma deste dataset, com um valor de exemplo para cada um.
- [Monitore e calibre o Bot Manager](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/monitorar-e-calibrar-bot-manager.md): Como agir sobre o tráfego que uma consulta como esta revela.
- [Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/dashboards-secure.md#bot-manager): Os mesmos dados de breakdown em gráficos, lidos no Azion Console em vez de uma consulta.
