---
name: azion-consulte-o-dataset-httpbreakdownmetrics
description: >-
  Liste os endereços IP de clientes com mais requisições bloqueadas no dataset httpBreakdownMetrics, com curl ou o playground GraphiQL.
---

# Consulte o dataset httpBreakdownMetrics

Você pode listar os endereços IP de clientes com mais requisições bloqueadas com a API GraphQL, pelo `curl` ou pelo playground GraphiQL.

O dataset `httpBreakdownMetrics` de [Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/) divide as requisições para as suas aplicações por valores como `remoteAddress`, o endereço IP do cliente, `geolocCountryName` e `requestPath`. Para cada combinação de valores, ele conta `requests`, `blockedRequests` e `wafThreatRequests`. Para cada campo e filtro do dataset, consulte [Campos da API GraphQL do Real-Time Metrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics/#workloadbreakdownmetrics).

O dataset retorna buckets de hora, mesmo para um intervalo de uma hora. Para saber como o intervalo define o tamanho do bucket, consulte [Como Real-Time Metrics funciona](/pt-br/documentacao/plataforma/real-time-metrics/como-funciona/#resolucao). Real-Time Metrics mantém os dados de `httpBreakdownMetrics` por 90 dias. Para a retenção de cada dataset, consulte [Limites de Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/limites/#retencao-de-dados).

---

## Pré-requisitos

- Um personal token, para o `curl`. Para criar um, consulte [Como criar um personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/).
- `curl` ou o playground GraphiQL. O playground precisa de uma sessão de navegador conectada à sua conta Azion; caso contrário, ele retorna um erro. Para abri-lo, consulte [Playground GraphiQL](/pt-br/documentacao/devtools/graphql/playground-graphql/).

---

## Liste os endereços com mais requisições bloqueadas

Esta query soma `blockedRequests` para cada `remoteAddress` ao longo de uma hora e retorna os 20 endereços com os maiores totais:

```graphql
query TopBlockedAddresses {
  httpBreakdownMetrics(
    aggregate: { sum: blockedRequests }
    groupBy: [remoteAddress]
    orderBy: [sum_DESC]
    limit: 20
    filter: {
      tsGte: "2026-10-02T13:00:00"
      tsLt: "2026-10-02T14:00:00"
    }
  ) {
    remoteAddress
    totalBlocked: sum
  }
}
```

Cada argumento molda o resultado:

- `aggregate: { sum: blockedRequests }` soma as requisições bloqueadas que passam pelo filtro. O alias `totalBlocked: sum` renomeia esse total na resposta.
- `groupBy: [remoteAddress]` retorna um total por endereço IP de cliente.
- `orderBy: [sum_DESC]` lista o maior total primeiro. `[sum_ASC]` lista o menor primeiro.
- `limit: 20` limita a resposta a 20 linhas. Para o máximo, consulte [Limites de Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/limites/#api-graphql).
- `filter` mantém apenas os dados que correspondem às condições dele. Aqui, as condições definem o intervalo de tempo.
- `tsGte` define o início do intervalo, que o resultado inclui. `tsLt` define o fim, que o resultado exclui.

As duas datas usam o formato `YYYY-MM-DDTHH:mm:ss`. Substitua as datas do exemplo pela hora que você quer ler. `tsGte` e `tsLt` são uma alternativa ao `tsRange`, o filtro de intervalo de [Primeiros passos com Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/primeiros-passos/).

Para executar a query com `curl`, envie uma requisição `POST` para `https://api.azion.com/v4/metrics/graphql`. Substitua `[TOKEN VALUE]` pelo seu personal token:

```bash
curl -X POST 'https://api.azion.com/v4/metrics/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Token [TOKEN VALUE]' \
  -d '{"query":"query TopBlockedAddresses { httpBreakdownMetrics(aggregate: { sum: blockedRequests }, groupBy: [remoteAddress], orderBy: [sum_DESC], limit: 20, filter: { tsGte: \"2026-10-02T13:00:00\", tsLt: \"2026-10-02T14:00:00\" }) { remoteAddress totalBlocked: sum } }"}'
```

A API responde `200` com uma linha por endereço:

```json
{
  "data": {
    "httpBreakdownMetrics": [
      {
        "remoteAddress": "192.0.2.1",
        "totalBlocked": 0
      }
    ]
  }
}
```

Cada linha associa um endereço ao total de requisições bloqueadas dele, do maior para o menor, até 20 linhas. Um endereço sem nenhuma requisição bloqueada exibe `0` em `totalBlocked`.

Um array `httpBreakdownMetrics` vazio significa que nenhuma requisição correspondeu: verifique se o intervalo está dentro dos 90 dias de retenção. Uma requisição sem o header `Authorization` retorna `401`.

Para executar a query no playground GraphiQL, cole a query do primeiro bloco.

---

## Próximos passos

- [Encontre as principais origens de ameaças do WAF](/pt-br/documentacao/guias/plataforma/observabilidade/encontrar-principais-origens-de-ameacas-waf.md): Classifique os endereços IP de clientes pelas ameaças que WAF encontra nas requisições deles.
- [Dashboards de Secure](/pt-br/documentacao/plataforma/real-time-metrics/dashboards-secure.md#threats-breakdown): Veja o mesmo dataset como gráfico no dashboard Threats Breakdown do Azion Console.
- [Campos do Real-Time Metrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics.md#workloadbreakdownmetrics): Cada campo, filtro e agrupamento que httpBreakdownMetrics aceita.
- [Limites de Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/limites.md): Retenção por dataset, o limite de linhas e os outros limites de uma query.
