Queries
Consulte como fazer queries de dados brutos, agregados, financeiros e de uso com a GraphQL API, as funções de agregação e a resposta de cada formato.
Uma query da GraphQL API nomeia um dataset, os argumentos que o filtram, agrupam e ordenam, e os campos a retornar. A API responde com um objeto JSON cuja chave data contém um array por dataset, com um objeto por linha e apenas os campos que a query selecionou. O formato da query, e o endpoint para onde ela vai, dependem dos dados que você lê: brutos, agregados, financeiros ou de uso.
Formatos de query
Cada formato lê seus dados de um endpoint. Envie a query em uma requisição POST para esse endpoint, com o header Authorization: Token [TOKEN VALUE]:
| Formato | Dados | Endpoint | Dataset de exemplo | Filtro de tempo |
|---|---|---|---|---|
| Bruto | Um registro por requisição, sem processamento | https://api.azion.com/v4/events/graphql | workloadEvents | tsRange, ou tsGt e tsLt; obrigatório |
| Agregado | Requisições agrupadas em buckets de tempo | https://api.azion.com/v4/metrics/graphql | workloadMetrics | tsRange, ou tsGt e tsLt; obrigatório |
| Financeiro, contabilizado | Valores contabilizados por período | https://api.azion.com/v4/accounting/graphql | accountingDetail | periodFrom e periodTo; opcional |
| Financeiro, faturado | Valores faturados por período | https://api.azion.com/v4/billing/graphql | billDetail | periodFromRange |
| Uso | Uso contabilizado por workload e produto | https://api.azion.com/v4/consumption/graphql | workloadConsumptionMetrics | tsRange |
Um filtro de tempo vai no argumento filter. Sem um filtro obrigatório, a API retorna 400 com To execute queries it is mandatory to provide the desired time interval. Os datasets de cada endpoint, e os argumentos que toda query aceita, estão em Datasets e argumentos de query.
Dados brutos
Dados brutos são o registro de cada requisição como a Azion o registrou, sem processamento. Use-os para investigar requisições individuais. Datasets brutos, como workloadEvents, são servidos pelo endpoint de events, https://api.azion.com/v4/events/graphql.
Esta query retorna o horário, o endereço do cliente, a URI e o stack trace das requisições em um intervalo de uma hora, da mais antiga para a mais recente:
A resposta contém um objeto por requisição no intervalo:
Uma query de dados brutos carrega duas coisas:
- Um intervalo de tempo, em
tsRangeou emtsGtetsLt. - Os campos a retornar. A resposta não traz nenhum campo que a query não selecionou.
Correspondências excluídas
O filtro not exclui os registros que correspondem ao filtro dentro dele. Com Like, que diferencia maiúsculas de minúsculas, ou Ilike, que não diferencia, not exclui toda URI que corresponde a um padrão. Um dataset bruto também aceita aggregate e groupBy. Esta query conta as requisições por host cuja URI não contém /_astro/, da maior contagem para a menor:
A resposta contém uma linha por host:
Todos os operadores de filtro, com os tipos de campo a que cada um se aplica, estão em Datasets e argumentos de query.
Dados agregados
Dados agregados são dados de requisições que o endpoint de metrics, https://api.azion.com/v4/metrics/graphql, armazena agrupados em buckets de tempo. Use-os para ler totais e tendências em períodos longos. O tamanho do bucket, um minuto, uma hora ou um dia, segue a duração do intervalo, conforme descreve Como a GraphQL API funciona.
Esta query soma as requisições de um intervalo de 48 horas por bucket de tempo, do mais recente para o mais antigo:
A resposta contém uma linha por bucket, e o resultado da função volta em um campo com o nome dela, sum:
Uma query de dados agregados segue estas regras:
- Um intervalo de tempo é obrigatório, em
tsRangeou emtsGtetsLt. aggregatenomeia uma função e o campo que ela lê, comosum: requests.groupByé opcional. Com ele, a resposta contém uma linha por combinação dos campos listados. Sem ele, a resposta contém uma linha com o total.- Um campo de medida, como
requests, só é selecionado por meio deaggregate. Selecionado diretamente, ele retorna400comThe query includes fields that require grouping. Please ensure all non-aggregated fields are included in groupBy argument. orderByordena pela saída da função com um sufixo de direção, comosum_DESCoucount_DESC.- Um alias renomeia um campo de saída. Com
total: sumna seleção, a resposta traztotalem vez desum.
Os datasets httpMetrics e httpBreakdownMetrics foram descontinuados; use workloadMetrics e workloadBreakdownMetrics. Para mais exemplos, consulte Consulte dados agregados.
Funções de agregação
O argumento aggregate aceita as funções abaixo, cada uma no máximo uma vez por query e cada uma em um campo. Todo dataset aceita as cinco primeiras, e uma query pode combiná-las:
| Função | Retorna | Datasets |
|---|---|---|
count | O número de registros. Aceita rows ou um campo. | Todo dataset |
sum | A soma dos valores do campo. | Todo dataset |
avg | A média aritmética dos valores do campo. | Todo dataset |
max | O maior valor do campo. | Todo dataset |
min | O menor valor do campo. | Todo dataset |
rate | Uma taxa do campo. Em imagesProcessedMetrics, as imagens processadas por segundo. | Apenas imagesProcessedMetrics e workloadConsumptionMetrics |
Uma função aceita apenas os campos que o dataset lista para agregação no schema dele. Um campo calculado, como missedData, retorna 400, assim como rate em qualquer outro dataset. Esta query executa cinco funções em workloadMetrics, uma linha por host, da maior contagem para a menor:
Cada linha traz um campo por função:
Dados financeiros
Dados financeiros contêm dois tipos de valores. Dados contabilizados vêm de accountingDetail, no endpoint de accounting, https://api.azion.com/v4/accounting/graphql. Dados faturados vêm de billDetail, no endpoint de billing, https://api.azion.com/v4/billing/graphql, que recebe um período em periodFromRange. Uma query de accountingDetail não precisa de intervalo de tempo: sem filtro, ela retorna linhas. Para ler um período, filtre por periodFrom e periodTo.
Esta query retorna os valores contabilizados de setembro de 2026, por produto, métrica e região:
A resposta contém cinco linhas e é cortada aqui após a terceira:
Os campos de cada dataset estão em Campos de accounting e Campos de billing.
Dados de uso
Dados de uso são o uso que a Azion contabilizou para cada workload e produto, no campo accounted de workloadConsumptionMetrics. O dataset é servido pelo endpoint de consumption, https://api.azion.com/v4/consumption/graphql, e uma query define o intervalo de tempo em tsRange.
Esta query soma o uso contabilizado de um intervalo de sete dias por produto e métrica, do maior para o menor:
A resposta é cortada após a terceira linha:
Para restringir o resultado a um produto e uma métrica, adicione productId e metricName ao filtro. Para ler o uso do Image Processor, consulte Consulte dados de uso do Image Processor. Os campos do dataset estão em Campos de consumption.
Repositório de exemplos
A Azion mantém um repositório de exemplos de queries da GraphQL API em aziontech/azion-queries. Ele agrupa os exemplos por Data Stream, Applications, queries Top X e Functions. Você pode enviar alterações para o repositório.