title | description | meta_tags | namespace | permalink | menu_namespace |
---|---|---|---|---|---|
Recursos API GraphQL |
Os recursos disponíveis para uso com a GraphQL são conjuntos de dados, filtrar, ordenar e paginar. Esses recursos possibilitam fácil acesso a seus dados. |
graphql, api, azion, query, features |
documentation_graphql_features |
/documentacao/devtools/graphql-api/recursos/ |
graphqlMenu |
import Button from '/components/Button.astro'
import Badge from '/components/Badge.astro'
Os recursos disponíveis para uso com a GraphQL são conjuntos de dados, filtrar, ordenar e paginar. Esses recursos possibilitam fácil acesso a seus dados. Assim, ao utilizar e combinar esses recursos disponíveis, o resultado será queries mais personalizadas e específicas. Dessa forma, as requisições buscam as informações exatas que você precisa.
As próximas seções detalham cada um dos recursos disponíveis na GraphQL e como eles podem ser utilizados.
A API GraphQL da Azion usa conjuntos de dados para indicar quais requisições você consegue executar através de queries e busca os dados do Real-Time Metrics e do Real-Time Events. Os conjuntos consistem de tabelas organizadas que trazem seus dados.
Veja cada um dos conjuntos de dados disponíveis e o que eles buscam.
:::note Quatro conjuntos de dados foram descontinuados e substituiídos por outros:
- idnsQueriesMetrics por edgeDnsQueriesMetrics
- idnsQueriesEvents por edgeDnsQueriesEvents
- l2CacheMetrics por tieredCacheMetrics
- l2CacheEvents por tieredCacheEvents :::
Conjunto de dados | Descrição |
---|---|
dataStreamedMetrics | Registros de envio de dados do Data Stream para o endpoint do cliente. |
edgeFunctionsMetrics | Eventos de execução do Edge Functions. |
httpMetrics | Eventos de requisições registradas pelo Edge Application e Edge Firewall. |
idnsQueriesMetrics | Eventos de consultas realizadas no Edge DNS. |
imagesProcessedMetrics | Eventos de processamento de imagens do Image Processor. |
l2CacheMetrics | Eventos de requisições registradas pelo Tiered Cache. |
Conjunto de dados | Descrição |
---|---|
activityHistoryEvents | Logs de eventos de uma conta no Azion Console relacionados às atividades registradas no Activity History. Armazena dados por 2 anos e exibe dados a partir de 22 de setembro de 2023. |
cellsConsoleEvents | Logs de eventos das aplicações usando o Edge Runtime retornados pelo Cells Console. |
dataStreamedEvents | Registros de envio de dados do Data Stream para o endpoint do cliente. |
edgeFunctionsEvents | Eventos de execução do Edge Functions. |
httpEvents | Eventos de requisições registradas pelo Edge Application e Edge Firewall. |
idnsQueriesEvents | Eventos de consultas realizadas no Edge DNS. |
imagesProcessedEvents | Eventos de processamento de imagens do Image Processor. |
l2CacheEvents | Eventos de requisições registradas pelo Tiered Cache. |
telemetryDeviceInfoEvents | Eventos relacionados ao dispositivo sendo utilizado para acesso e registrados pelo Azion Mobile SDK, tanto a nível de hardware quanto de software. |
telemetrySensorsEvents | Eventos relacionados aos sensores dos dispositivos registrados pelo Azion Mobile SDK, como toque de tela e informações de giroscópio. |
:::note A Billing GraphQL API está disponível apenas para contas do tipo Online Sales. :::
Conjunto de dados | Descrição |
---|---|
balanceFinancialEntry | Registros relacionados aos tipos de entradas financeiras e valores monetários |
paymentsClientDebt | Registros relacionados aos débitos de clientes e pagamentos e valores monetários |
Conjunto de dados | Descrição |
---|---|
accountingDetail | Registros relacionados aos dados contabilizados para produtos e suas métricas |
:::tip[dica] Você também pode rodar uma Introspection Query para consultar os metadados dos datasets de Metrics e Events. Os metadados fornecem o que cada dataset das APIs GraphQL permite e informações específicas: nome, descrição e formato. Veja mais no guia Como consultar metadados com a API GraphQL. :::
Você pode solicitar dados raw (brutos), usando os conjuntos Events, ou aggregated (agregados), usando os conjuntos Metrics.
Ao usar o recurso de filtrar, o retorno das suas queries se torna mais específico e preciso, de acordo com os dados que você deseja buscar. É possível utilizar a filtragem com qualquer um dos campos disponíveis no conjunto de dados que você está consultando.
Ao solicitar dados complexos ou em grande quantidade, os retornos da API podem conter ruídos e se tornar mais complicados. Filtrar queries permite consultar os seus dados de forma exata e direta. Por exemplo, se você usar a seguinte query para uma requisição de httpMetrics
:
query HttpQuery {
httpMetrics(
limit: 10
filter: {
tsRange: {begin:"2022-10-20T10:10:10", end:"2022-10-23T10:10:10"}
}
)
{
ts
geolocCountryName
}
}
Você pode filtrar a query ao solicitar dados espeíficos sobre o campo geolocCountryName
:
query HttpQuery {
httpMetrics(
limit: 10
filter: {
tsRange: {begin:"2022-10-20T10:10:10", end:"2022-10-23T10:10:10"}
geolocCountryName: "Brazil"
}
)
{
ts
geolocCountryName
}
}
Você pode ajustar a sua requisição conforme necessário para usar um campo de seu interesse, contanto que ele faça parte dos campos disponíveis no conjunto de dados que você está consultando naquele momento.
Você também pode filtrar usando múltiplos parâmetros AND
e OR
. Você deve definir todos os campos que deseja filtrar dentro do parâmetro, como no exemplo a seguir:
query totalImagesProcessedRequests {
imagesProcessedMetrics(
aggregate: {sum: requests}
limit: 100
filter: {
tsRange: {begin:"2023-03-20T19:52:00", end:"2023-03-20T20:52:00"}
or: {
status:304
statusRange: {begin: 200, end: 299}
}
}
groupBy:[ts]
orderBy:[ts_ASC]
)
{
ts
sum
}
}
O recurso ordenar permite que você organize e ordene os dados sendo recebidos de um conjunto de dados de acordo com a ordem daquele evento. Por exemplo, se você está recebendo dados do campo host
como resposta para a sua requisição da API, você pode organizar esses dados para recebê-los:
- Em ordem ascendente (ASC)
- Em ordem decrescente (DESC)
Ao usar a propriedade orderBy
, você deve adicionar ou a especificação ASC
ou a especificação DESC
.
Por exemplo, para utilizar o recurso de ordenar através de ordem ascendente, você deve adicionar orderBy
na sua query e o campo que você deseja ordenar + ASC
:
{
orderBy: [host_ASC]
}
Para ordenar seus dados em ordem decrescente (DESC), você deve adicionar o campo que deseja ordenar + DESC
:
{
orderBy: [ts_DESC]
}
Se você usar esta query com DESC
:
query SumBytesSentByHost {
httpMetrics(
limit: 1000
filter: {
tsRange: {begin:"2023-01-01T17:03:00", end:"2023-06-01T18:05:00"}
}
aggregate: {sum: bytesSent}
groupBy: [host]
orderBy: [sum_DESC]
)
{
host
sum
}
}
Você receberá uma resposta semelhante a:
{
"data": {
"httpMetrics": [
{
"host": "g1sdetynmxe0ao.map.azionedge.net",
"sum": 606226
},
{
"host": "uaykhefjdk9or.map.azionedge.net",
"sum": 583059
},
{
"host": "wz0ywpod397zk.map.azionedge.net",
"sum": 567633
},
{
"host": "zi1435nbhec7.map.azionedge.net",
"sum": 96002
}
]
}
}
E se você usar esta query com ASC
:
query AvgRequesTimeByHost {
httpMetrics(
limit: 1000
filter: {
tsRange: {begin:"2023-01-01T17:03:00", end:"2023-06-01T18:05:00"}
}
aggregate: {avg:requestTime}
groupBy: [ts, host]
orderBy: [avg_ASC]
)
{
ts
host
avg
}
}
Você receberá uma resposta semelhante a:
{
"data": {
"httpMetrics": [
{
"ts": "2023-04-21T00:00:00Z",
"host": "zipo145nbhc7.map.azionedge.net",
"avg": 0.04871428571428572
},
{
"ts": "2023-04-13T00:00:00Z",
"host": "g1snmxepa0ao.map.azionedge.net",
"avg": 0.561
},
{
"ts": "2023-04-11T00:00:00Z",
"host": "g1syinmxe2ao.map.azionedge.net",
"avg": 4.101833333333333
},
{
"ts": "2023-04-11T00:00:00Z",
"host": "wz1yd307zk.map.azionedge.net",
"avg": 8.705666666666668
},
{
"ts": "2023-05-22T00:00:00Z",
"host": "uaifjdk6or.map.azionedge.net",
"avg": 31.493818181818185
}
]
}
}
O recurso paginar permite definir a partir de que ponto você deseja que seus resultados sejam exibidos e quantos resultados você deseja visualizar. Atualmente, a API GraphQL da Azion usa offset e limit pagination para este recurso.
Paginar seus dados pode ser vantajoso quando você recebe grandes quantidades de dados na resposta da API. Você pode utilizar o recurso informando o offset e os limits. Assim, a API consegue retornar dados dentro da variação solicitada.
O parâmetro offset define o número de registros de dados que você deseja pular ao receber uma resposta. O parâmetro limit define o número de resultados que você deseja receber.
:::note Definir os parâmetros offset e limit não é obrigatório. Se você não defini-los, a API GraphQL automaticamente define o offset para 0 e o limit para 10. :::
Veja o exemplo a seguir para entender o uso dos parâmetros offset e limit:
query HttpQuery {
httpMetrics(
offset: 15
limit: 30
filter: {
tsRange: {begin:"2022-10-20T10:10:10", end:"2022-10-23T10:10:10"}
}
)
{
ts
requestMethod
}
}
O offset está definido para 15, o que significa que a sua resposta exibirá a partir do 16º resultado. O limite está definido para 30, o que significa que a sua resposta exibirá um total de 30 resultados. Nesse caso, você receberá uma resposta exibindo do 16º resultado até o 45º resultado.
:::note Se os seus dados são atualizados constantemente, o uso do recurso paginar pode resultar em falta ou duplicação de dados ao solicitar mais de uma requisição com o uso desse mesmo recurso. :::
Disponível para: Real-Time Metrics GraphQL API
O recurso Reamostrar permite que você faça uma reamostragem dos seus dados a fim de exibir uma quantidade menor de pontos exibidos em gráficos. Ele funciona de acordo com a regra que você informa no campo function
.
Você pode usá-lo para complementar o limite que adiciona à sua consulta, pois os pontos de dados padrão nos gráficos podem não ser o número ideal para sua análise ou para a sua ferramenta de visualização.
:::note Se ocorrer uma extrapolação de dados, a API substituirá o valor que você informou e executará o cálculo mais próximo possível de acordo com os dados disponíveis. :::
A consulta deve conter o campo function
e suas propriedades, bem como o campo groupBy
e a variável ts
.
Ao especificar sum
, você receberá uma soma total dos pontos de dados naquele intervalo. Ao especificar mean
, você receberá um cálculo de média (soma + divisão).
Veja um exemplo:
query httpRequestCount {
httpMetrics(
limit: 10000,
resample: {
function: sum
points: 100
}
filter: {
tsRange: {
begin:"2023-08-16T20:17:00", end:"2023-09-17T21:16:00"
}
},
groupBy: [ts]
orderBy: [ts_ASC]
)
{
ts
dataTransferredIn
dataTransferredOut
dataTransferredTotal
}
}
Suponha que o resultado original da sua consulta, sem reamostragem, retornou 1.456 logs. Como você fez uma consulta para uma reamostragem de 100 pontos, o cálculo que a API faz é 1.456 // 100 = 14,56 minutos de intervalo
. Como a API só usa integer (números inteiros), ela arredondará o resultado para um intervalo de 14 minutos entre cada ponto retornado.
No entanto, a API não descarta os 0,56 minutos
restantes. Ela continua adicionando-os até que o número se torne um inteiro e então soma ao número original de pontos solicitados.
No exemplo usado, retornou os 100
pontos solicitados originalmente mais os 4
pontos restantes, resultando em um total de 104 pontos
para a consulta reamostrada.
:::note
Se você usar uma consulta com reamostragem, mas seus dados já retornam uma quantidade de pontos que são acessíveis aos gráficos, como 30 pontos
, a API ignorará o pedido de reamostragem e retornará todos os pontos.
:::
import ContributorList from '~/components/ContributorList.astro'
Contribuidores Contributor