Como realizar consultas agregando dados com a GraphQL API
Os dados agregados podem ser considerados dados estruturados que foram agrupados de alguma forma. Eles sofrem algumas alterações para permitir um processamento analítico que busca uma análise segmentada.
Para realizar uma consulta agregando os dados disponibilizados pela GraphQL API, você deve realizar duas etapas: criar um personal token e executar uma requisição no Postman. Veja as próximas seções e siga os passos
Criar um personal token
Para começar a usar a GraphQL API, você precisa criar um personal token para validar seu acesso:
- No Real-Time Manager (RTM), selecione Account menu > Personal Tokens.
- Preencha os campos para configurar seu personal token e clique no botão Create Token.
- Copie e salve seu personal token em um local seguro para utilizá-lo na próxima etapa.
Veja a documentação de Personal Tokens para mais informações sobre como criar um.
Como alternativa, você pode criar um token de curta duração através da Azion API.
Consultar dados agregados com o Postman
Após criar o seu personal token, acesse o Postman e siga os próximos passos:
- No cabeçalho, clique no botão com o símbolo de + para criar uma nova requisição.
- Na aba Headers, clique em Bulk Edit e adicione o seguinte código, substituindo [TOKEN VALUE] com o valor do personal token que foi criado:
Authorization:Token [TOKEN VALUE]
Continue no Postman e crie o corpo da requisição:
- Selecione a aba Body.
- No canto superior esquerdo, clique na opção GET para abrir um menu suspenso.
- Selecione a opção POST.
- Na linha de opções, selecione a opção GraphQL.
- No espaço QUERY, adicione a seguinte Aggregated Query:
query HttpQuery {
httpRaw(
limit: 10,
filter: {
tsRange: {begin:"2022-03-21T10:10:10", end:"2022-06-23T10:10:10"}
}
aggregate: {sum: bytesSent}
groupBy: [ts]
orderBy: [ts_ASC]
)
{
ts
sum
}
}
O exemplo acima consulta a tabela de dados brutos (raw) do dataset de HTTP. Além disso, o operador sum agrega os dados com as informações sobre o campo bytesSent em um determinado período de tempo definido pelo campo tsRange.
Por fim, os dados foram agrupados e ordenados pelo campo ts (timestamp).
Para consultas com dados agregados, é obrigatório informar:
- Um intervalo de tempo para consulta, usando tsRange ou tsGt + tsLt.
- Os campos em que deseja agrupar as informações, usando groupBy.
- Quais dos dados obtidos na consulta devem ser exibidos. No caso do exemplo apresentado, foram usados ts e sum, onde sum é o retorno da agregação de bytesSent.
Para agregar as informações fornecidas pela GraphQL API, existem algumas opções que devem ser informadas através do campo aggregate na query, como no exemplo apresentado anteriormente. São elas:
- Count: determina o valor total de registros que atende a uma condição específica.
- Sum: retorna a soma dos valores de entrada da coluna ou expressão.
- Max: retorna o valor máximo de um determinado campo de uma tabela de acordo com o critério de seleção estabelecido.
- Min: retorna o valor mínimo de um determinado campo de uma tabela de acordo com o critério de seleção estabelecido.
- Avg: calcula a média aritmética de um conjunto de valores contidos em um campo especificado em uma consulta.
- Rate: usado com o conjunto de dados imagesProcessed. Obtém a taxa de imagens processadas por segundo ao utilizar o Image Processor.
Você pode realizar uma consulta com cada uma das opções disponíveis: count, sum, max, min, avg e rate, contanto que cada opção seja utilizada apenas uma vez e cada operador faça a agregação de apenas um campo do conjunto de dados por vez. Veja o exemplo a seguir:
aggregate: {
count: rows,
sum: bytesSent,
avg: requestTime,
max: requestLength,
min: missedData,
rate: requestTime
}
Após criar a consulta, você deve enviá-la para a GraphQL API para receber um retorno dos dados:
- No campo Enter URL or paste text, adicione a URL que será consultada:
https://api.azionapi.net/metrics/graphql
- No canto superior direito, clique no botão Send.
Você receberá um retorno com os dados solicitados, como no exemplo a seguir:
{
"data": {
"httpRaw": [
{
"ts": "2022-09-09T21:33:13",
"sum": 1471.0
},
{
"ts": "2022-09-09T21:33:14",
"sum": 1471.0
},
{
"ts": "2022-09-09T21:33:15",
"sum": 1471.0
}
]
}
}
A GraphQL API retorna os dados de agregação com o operador sum sobre o campo bytesSent, de acordo com a query informada na requisição.
Para saber mais sobre como consultar dados agregados com a GraphQL API, visite a página de documentação.
Não encontrou o que procurava? Abra um ticket.