# Como consultar dados de uso do Applications

O conjunto de dados **workloadConsumptionMetrics** permite que você obtenha dados agregados em tempo real relacionados ao consumo e uso dos produtos da Azion, incluindo o Applications.

As informações podem ser acessadas através da API GraphQL, permitindo que você transfira esses dados para uma plataforma de terceiros e possibilite análises e revisões adicionais. Além disso, os dados estão disponíveis por até *24 meses*.

Usando o [GraphiQL Playground](/pt-br/documentacao/produtos/devtools/playground-graphql/), você pode consultar dados relacionados a:

- `data_transferred_total`: quantidade total de dados transferidos através do Applications.
- `requests`: número total de requisições recebidas e processadas pelo Applications.
- `waf_requests`: número total de requisições inspecionadas pelo WAF.

---

## Consulte o total de requisições processadas e dados transferidos

Para consultar o total de requisições processadas e dados transferidos pelo Applications, siga os passos:

1. Acesse o GraphiQL Playground no seguinte link: `https://api.azion.com/v4/consumption/graphql`.
    - Você precisa estar logado na sua conta Azion. Caso contrário, receberá uma mensagem de erro.
2. Envie uma query seguindo este formato:

```graphql
query {
  workloadConsumptionMetrics(
    filter: {
      tsRange: { 
        begin: "2025-02-01T00:00:00",
        end: "2025-03-01T00:00:00",
      }
      isEdgeFirewallActive: true
      productId: 1441740010
      metricNameIn: ["requests", "data_transferred_total"]
    }
    aggregate: {
      sum: accounted
    }
    limit: 10000
    groupBy: [clientId, workloadId, productId, metricName]
  ) {
    clientId
    workloadId
    productId
    metricName
    total: sum
  }
}
```

Onde:

| Campo | Descrição |
|----------|----------|
| `filter` | Define os critérios usados para filtrar os dados retornados pela consulta. |
| `tsRange` | Um subcampo de `filter`. Especifica um intervalo de tempo para filtrar os dados. Inclui campos `begin` e `end` para definir a data inicial e final. Formato: `"YYYY-MM-DDTHH:mm:ss"`; exemplo: `"2024-04-11T00:00:00"`. |
| `sum: accounted` | Como um subcampo de `aggregate`, calcula o uso total contabilizado para eventos que correspondem aos filtros e grupos da consulta. |
| `limit` | Especifica o número máximo de resultados a retornar. Máximo do sistema: `10000`. |
| `groupBy` | Especifica os campos pelos quais os resultados da consulta devem ser agrupados. Exemplo: `[clientId, metricName]`. |
| `productId` | Identificador único do produto sendo usado. Neste caso, `1441740010` para Applications. |
| `metricName` | Nome da métrica calculada para análise. Neste caso, `requests` e `data_transferred_total`. |
| `isEdgeFirewallActive: true` | Opcional. Filtra dados transferidos com o Firewall ativo. Valores disponíveis: `isEdgeFirewallActive`, `isLoadBalancerActive`, `isImageProcessorActive` e `isApplicationAcceleratorActive`. | 

:::note
Este exemplo recupera dados do número total de requisições processadas e dados transferidos pelo Applications. Os resultados são agrupados por `clientId` e `workloadId`. Para saber mais sobre os campos disponíveis, consulte a documentação [Campos da API GraphQL de Consumption](/pt-br/documentacao/devtools/graphql-api/recursos/campos-gql-consumption/).
:::

3. Você receberá uma resposta JSON similar a esta: 

```json
{
  "data": {
    "workloadConsumptionMetrics": [
      {
        "clientId": "0000z",
        "workloadId": 4829103746,
        "productId": 1441740010,
        "metricName": "data_transferred_total",
        "total": 32
      },
      {
        "clientId": "0000z",
        "workloadId": 1938475620,
        "productId": 1441740010,
        "metricName": "requests",
        "total": 19478
      },
      {
        "clientId": "0000z",
        "workloadId": 7584931026,
        "productId": 1441740010,
        "metricName": "data_transferred_total",
        "total": 299612
      },
      {
        "clientId": "0000z",
        "workloadId": 6203849175,
        "productId": 1441740010,
        "metricName": "requests",
        "total": 1432
      },
      {
        "clientId": "0000z",
        "workloadId": 3948571023,
        "productId": 1441740010,
        "metricName": "data_transferred_total",
        "total": 268675
      }
    ]
  }
}
```

Onde:

| Campo | Descrição |
|----------|----------|
| `clientId` | Identificador único do cliente na Azion. Exemplo: `8437r`. |
| `workloadId` | Identificador da carga de trabalho associada ao uso. Exemplo: `4829301746`. |
| `productId` | Identificador único do produto sendo usado. Neste caso, `1441740010` para Applications. |
| `metricName` | Nome da métrica medida para análise. Exemplo: `requests` e `data_transferred_total`.  |
| `total` | Para `data_transferred_total`, número total de dados transferidos pelo Applications. Este campo é o resultado de uma soma, em bytes. Exemplo: `268675`. <br/> Para `requests`: número total de requisições processadas. Este campo é o resultado de uma soma. Exemplo: `1112`. |

---

## Consulte o total de requisições inspecionadas pelo WAF

Para consultar o número total de requisições inspecionadas pelo WAF, siga os passos:

1. Acesse o GraphiQL Playground no seguinte link: `https://api.azion.com/v4/consumption/graphql`.
    - Você precisa estar logado na sua conta Azion. Caso contrário, receberá uma mensagem de erro.
2. Envie uma query seguindo este formato:

```graphql
query {
  workloadConsumptionMetrics(
    filter: {
      tsRange: { 
        begin: "2025-02-01T00:00:00",
        end: "2025-03-01T00:00:00",
      }
      isEdgeFirewallActive: true
      productId: 1441740010
      metricName: "waf_requests"
    }
    aggregate: {
      sum: accounted
    }
    limit: 10000
    groupBy: [clientId, workloadId, productId, metricName]
  ) {
    clientId
    workloadId
    productId
    metricName
    total: sum
  }
}
```

Onde:

| Campo | Descrição |
|----------|----------|
| `filter` | Define os critérios usados para filtrar os dados retornados pela consulta. |
| `tsRange` | Um subcampo de `filter`. Especifica um intervalo de tempo para filtrar os dados. Inclui campos `begin` e `end` para definir a data inicial e final. Formato: `"YYYY-MM-DDTHH:mm:ss"`; exemplo: `"2024-04-11T00:00:00"`. |
| `sum: accounted` | Como um subcampo de `aggregate`, calcula o uso total contabilizado para eventos que correspondem aos filtros e grupos da consulta. |
| `limit` | Especifica o número máximo de resultados a retornar. Máximo do sistema: `10000`. |
| `groupBy` | Especifica os campos pelos quais os resultados da consulta devem ser agrupados. Exemplo: `[clientId, metricName]`. |
| `productId` | Identificador único do produto sendo usado. Neste caso, `1441740010` para Applications. |
| `metricName` | Nome da métrica calculada para análise. Neste caso, `waf_requests`. |
| `isEdgeFirewallActive: true` | Opcional. Filtra requisições inspecionadas com o Firewall ativo. Valores disponíveis: `isEdgeFirewallActive`, `isLoadBalancerActive`, `isImageProcessorActive` e `isApplicationAcceleratorActive`. | 

:::note
Este exemplo recupera dados do número total de requisições inspecionadas pelo WAF. Os resultados são agrupados por `clientId` e `workloadId`. Para saber mais sobre os campos disponíveis, consulte a documentação [Campos da API GraphQL de Consumption](/pt-br/documentacao/devtools/graphql-api/recursos/campos-gql-consumption/).
:::

3. Você receberá uma resposta JSON similar a esta: 

```json
{
  "data": {
    "workloadConsumptionMetrics": [
      {
        "clientId": "0000z",
        "workloadId": 4829103746,
        "productId": 1441740010,
        "metricName": "waf_requests",
        "total": 32
      },
      {
        "clientId": "0000z",
        "workloadId": 1938475620,
        "productId": 1441740010,
        "metricName": "waf_requests",
        "total": 19478
      },
      {
        "clientId": "0000z",
        "workloadId": 7584931026,
        "productId": 1441740010,
        "metricName": "waf_requests",
        "total": 299612
      },
      {
        "clientId": "0000z",
        "workloadId": 6203849175,
        "productId": 1441740010,
        "metricName": "waf_requests",
        "total": 1432
      },
      {
        "clientId": "0000z",
        "workloadId": 3948571023,
        "productId": 1441740010,
        "metricName": "waf_requests",
        "total": 268675
      }
    ]
  }
}
```

Onde:

| Campo | Descrição |
|----------|----------|
| `clientId` | Identificador único do cliente na Azion. Exemplo: `8437r`. |
| `workloadId` | Identificador da carga de trabalho associada ao uso. Exemplo: `4829301746`. |
| `productId` | Identificador único do produto sendo usado. Neste caso, `1441740010` para Applications. |
| `metricName` | Nome da métrica medida para análise. Exemplo: `waf_requests`.  |
| `total` | Número total de requisições inspecionadas pelo WAF. Este campo é o resultado de uma soma. Exemplo: `268675`. |

:::tip
Para saber mais sobre os campos disponíveis, consulte a documentação [Campos da API GraphQL de Consumption](/en/documentation/devtools/graphql-api/features/gql-consumption-fields/).
:::