---
name: azion-meca-o-offload-de-cache-de-um-dominio
description: >-
  Filtre Real-Time Metrics por um domínio e veja quanto dos dados e das requisições veio do cache, no Azion Console ou com a API GraphQL.
---

# Meça o offload de cache de um domínio

Você pode medir quanto do tráfego de um domínio as suas aplicações servem do cache com [Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/), no Azion Console ou com a API GraphQL.

Três medidas respondem a essa pergunta. *Offload* é a parcela de dados ou de requisições que o data center entregou do próprio cache. *Saved* conta os dados ou as requisições que ele entregou do cache, sem buscar o conteúdo na origem. *Missed* conta o que ele entregou depois de buscar o conteúdo na origem. Para a definição completa de cada gráfico, consulte [Dashboards de Build](/pt-br/documentacao/plataforma/real-time-metrics/dashboards-build/#data-transferred).

Os exemplos leem as últimas 24 horas do host `www.example.com`. Substitua-o por um domínio no qual o seu workload responde.

---

Selecione a sua interface uma vez. Os pré-requisitos e todas as tarefas abaixo mostram apenas esse caminho.

## Pré-requisitos

- Uma conta Azion. Para criar uma, consulte [Criar uma conta](/pt-br/documentacao/fundamentos/criar-uma-conta/).
- Uma [aplicação](/pt-br/documentacao/plataforma/applications/) servida por um [workload](/pt-br/documentacao/plataforma/workloads/), com requisições ao domínio nas últimas 24 horas.

**Console**

- Acesso ao Azion Console. Para entrar, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).

**API**

- Um personal token. Para criar um, consulte [Como criar um personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/).
- `curl`.

---

## Filtre pelo domínio

Sem filtro, os gráficos de cache cobrem todas as aplicações da conta. Um filtro no host mantém apenas as requisições a esse domínio.

**Console**

Para filtrar os dashboards por um domínio no Azion Console:

1. **Acesse Real-Time Metrics**

   Acesse [Azion Console](https://console.azion.com/) > **Real-Time Metrics**.

   A página abre na categoria **Build**, na aba **Applications** e no dashboard **Data Transferred**.

2. **Selecione Last 24 hours**

   No seletor de intervalo de tempo, na aba **Quick**, em **Commonly used**, selecione **Last 24 hours**.

3. **Selecione Update**

4. **Adicione um filtro**

   Na linha de filtros, selecione o ícone de filtro, cujo tooltip diz **Add filter**.

5. **Selecione o campo Host**

   Em **Filter**, selecione **Host**.

6. **Selecione o operador Equals**

   Em **Operator**, selecione **Equals**.

7. **Informe o domínio**

   Informe `www.example.com` como valor.

8. **Selecione Apply**

Um chip abaixo da linha de filtros mostra `Host equals: www.example.com`. Todos os gráficos de **Data Transferred** passam a mostrar apenas as requisições a esse domínio, nas últimas 24 horas.

Para manter todos os domínios de um workload, selecione o campo **Domain**, que aparece como **Workload** em algumas contas, e selecione o workload na lista.

**API**

Na API, o filtro `hostEq` mantém as requisições de um host, ao lado do filtro `tsRange`, que define o período. Antes de ler os valores de cache, confirme que o host tem requisições no intervalo de tempo.

Envie uma requisição `POST` para `https://api.azion.com/v4/metrics/graphql`. Substitua `[TOKEN VALUE]` pelo seu personal token, e o host e as datas pelos seus:

```bash
curl -X POST 'https://api.azion.com/v4/metrics/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Token [TOKEN VALUE]' \
  -d '{"query":"query RequestsForHost($begin: DateTime!, $end: DateTime!) { httpMetrics(limit: 1, filter: { tsRange: { begin: $begin, end: $end }, hostEq: \"www.example.com\" }) { requestsTotal } }","variables":{"begin":"2026-01-01T12:00:00","end":"2026-01-02T12:00:00"}}'
```

A API responde `200` com a contagem de requisições do host:

```json
{
  "data": {
    "httpMetrics": [
      {
        "requestsTotal": 982
      }
    ]
  }
}
```

`requestsTotal` conta as requisições ao host no intervalo de tempo. Um `requestsTotal` igual a `0` significa que nenhuma requisição a esse host chegou às suas aplicações no intervalo de tempo. Corrija o host ou as datas antes de ler os valores de cache.

---

## Leia o offload de dados e de requisições

Real-Time Metrics mede o cache em duas unidades. O dashboard **Data Transferred** conta bytes, e o dashboard **Requests** conta requisições.

**Console**

Para ler o offload do domínio no Azion Console, com o filtro de host aplicado:

1. **Leia o offload de dados**

   No dashboard **Data Transferred**, encontre a entrada **Offload** na legenda do gráfico **Edge Offload**.

2. **Leia os dados economizados e perdidos**

   Nas legendas dos gráficos **Saved Data** e **Missed Data**, encontre os totais em bytes do intervalo de tempo.

3. **Selecione Requests no seletor de dashboards**

4. **Leia o offload de requisições**

   No gráfico **Requests Offloaded**, encontre a entrada **Requests Offloaded** na legenda.

5. **Leia as requisições economizadas e perdidas**

   Nas legendas dos gráficos **Saved Requests** e **Missed Requests**, encontre os totais de requisições do intervalo de tempo.

O filtro de host continua aplicado em **Requests**. Os dois dashboards leem o dataset `httpMetrics`, e apenas a troca para um dashboard que lê outro dataset limpa os filtros.

A tag de agregação de **Edge Offload** e de **Requests Offloaded** mostra **Average**. As legendas desses gráficos mostram a média dos pontos do gráfico, não a parcela no intervalo de tempo inteiro. Para a parcela de dados no intervalo de tempo inteiro, divida o total de **Saved Data** pela soma dos totais de **Saved Data** e **Missed Data**.

**API**

Para ler os mesmos valores com a API, selecione os campos de cache do dataset `httpMetrics` com o mesmo filtro:

```bash
curl -X POST 'https://api.azion.com/v4/metrics/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Token [TOKEN VALUE]' \
  -d '{"query":"query CacheOffloadForHost($begin: DateTime!, $end: DateTime!) { httpMetrics(limit: 1, filter: { tsRange: { begin: $begin, end: $end }, hostEq: \"www.example.com\" }) { requestsTotal requestsOffloaded savedRequests missedRequests dataTransferredTotal offload savedData missedData bandwidthOffload } }","variables":{"begin":"2026-01-01T12:00:00","end":"2026-01-02T12:00:00"}}'
```

A API responde `200` com uma linha para o host:

```json
{
  "data": {
    "httpMetrics": [
      {
        "requestsTotal": 982,
        "requestsOffloaded": 5.19,
        "savedRequests": 51.0,
        "missedRequests": 931.0,
        "dataTransferredTotal": 114490585.0,
        "offload": 0.51,
        "savedData": 577373.0,
        "missedData": 113387464.0,
        "bandwidthOffload": 0.51
      }
    ]
  }
}
```

A linha cobre o intervalo de tempo inteiro. Leia os campos assim:

- `requestsOffloaded` é a porcentagem de requisições servidas do cache: `savedRequests` dividido por `requestsTotal`.
- `offload` é a porcentagem de dados servidos do cache: `savedData` dividido pela soma de `savedData` e `missedData`.
- `bandwidthOffload` é a mesma parcela, medida em largura de banda.
- `savedData` e `missedData` estão em bytes.

`savedRequests` e `missedRequests` somam `requestsTotal`. Para todos os campos do dataset, consulte [Campos da API GraphQL do Real-Time Metrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics/#workloadmetrics).

---

## Descubra o que chegou à origem

Os dados perdidos e as requisições perdidas são o conteúdo que o data center buscou na sua origem antes de entregá-lo. Quanto maiores eles são, mais da demanda do domínio a sua origem atende. Quando a aplicação usa [Tiered Cache](/pt-br/documentacao/plataforma/applications/cache/tiered-cache/), o gráfico **Tiered Cache Offload** da aba **Tiered Cache** mostra a parcela de dados que a camada de Tiered Cache entregou ao data center sem buscá-la na origem.

**Console**

Para encontrar o conteúdo perdido do domínio no Azion Console, com o filtro de host aplicado:

1. **Leia os dados perdidos**

   No dashboard **Data Transferred**, encontre a entrada **Missed Data** na legenda do gráfico **Missed Data**.

2. **Selecione Requests no seletor de dashboards**

3. **Leia as requisições perdidas**

   No gráfico **Missed Requests**, encontre a entrada **Missed Requests** na legenda.

4. **Encontre os picos**

   No gráfico **Missed Requests**, posicione o cursor sobre o ponto mais alto. O tooltip mostra o valor nesse ponto.

Os picos de **Missed Requests** mostram quando o data center enviou mais requisições do domínio à sua origem. O tooltip aparece apenas em uma janela com mais de 540 px de largura.

**API**

Para ver como as requisições do host se dividem por status de cache, agrupe-as por `upstreamCacheStatus`, o status do cache local para cada requisição. A query soma `requests` para cada status, o maior primeiro:

```bash
curl -X POST 'https://api.azion.com/v4/metrics/graphql' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Token [TOKEN VALUE]' \
  -d '{"query":"query RequestsByCacheStatus($begin: DateTime!, $end: DateTime!) { httpMetrics(limit: 20, filter: { tsRange: { begin: $begin, end: $end }, hostEq: \"www.example.com\" }, aggregate: { sum: requests }, groupBy: [upstreamCacheStatus], orderBy: [sum_DESC]) { upstreamCacheStatus sum } }","variables":{"begin":"2026-01-01T12:00:00","end":"2026-01-02T12:00:00"}}'
```

A API responde `200` com uma linha para cada status de cache:

```json
{
  "data": {
    "httpMetrics": [
      {
        "upstreamCacheStatus": "-",
        "sum": 334
      },
      {
        "upstreamCacheStatus": "REVALIDATED",
        "sum": 301
      },
      {
        "upstreamCacheStatus": "MISS",
        "sum": 281
      },
      {
        "upstreamCacheStatus": "HIT",
        "sum": 50
      },
      {
        "upstreamCacheStatus": "EXPIRED",
        "sum": 16
      }
    ]
  }
}
```

Cada linha soma as requisições que têm um valor de `upstreamCacheStatus`, como `HIT`, `MISS`, `REVALIDATED`, `EXPIRED` ou `-`. Para todos os valores de `upstreamCacheStatus`, consulte [Campos da API GraphQL do Real-Time Metrics](/pt-br/documentacao/devtools/graphql/campos-gql-real-time-metrics/#workloadmetrics).

---

## Próximos passos

- [Dashboards de Build](/pt-br/documentacao/plataforma/real-time-metrics/dashboards-build.md#data-transferred): O que cada gráfico do dashboard Data Transferred mede, a unidade e o campo de cada um.
- [Cache](/pt-br/documentacao/plataforma/applications.md#cache): Altere como as suas aplicações armazenam conteúdo em cache, para aumentar a parcela servida do cache.
- [Tiered Cache](/pt-br/documentacao/plataforma/applications/cache/tiered-cache.md): Adicione uma segunda camada de cache entre o data center e a sua origem.
- [Boas práticas para Real-Time Metrics](/pt-br/documentacao/plataforma/real-time-metrics/boas-praticas.md): Escolha intervalos de tempo, filtros e limites de linhas que mantêm confiáveis os números que você lê.
