En Azion, siempre estamos buscando mejores y más escalables formas de aumentar la observabilidad y de hacer que nuestros clientes accedan a sus datos y analíticas en la plataforma. Por eso, nos complace anunciar que ahora está disponible nuestra API en lenguaje GraphQL, que brinda a nuestros clientes acceso a los mismos conjuntos de datos que usamos internamente cuando ejecutamos Real-Time Metrics.
¿Qué es el lenguaje GraphQL y por qué es mejor que el aplicado en las “típicas” API?
Graphic Query Language (GraphQL) es un lenguaje de código abierto creado por Facebook para aplicarlo a API y que funciona como alternativa a las API REST, lo que te permite trabajar con datos de una manera más estructurada y orientada a objetos, además de recibir resultados en un formato JSON adecuado.
GraphQL obtiene información de manera diferente a las API tradicionales y te brinda la capacidad de filtrar datos sin sobrecargas, lo que representa un mejor desempeño en comparación con las API REST. Además, una API GraphQL puede recuperar información de diferentes conjuntos de datos en endpoint, lo que te permite gestionarlos y utilizarlos más fácilmente que las API REST.
¿Qué puedo hacer con GraphQL? ¿Qué tipos de datos puedo recuperar?
La API GraphQL brinda acceso a toda una variedad de usos de productos, recursos de seguridad, solicitud/respuesta y datos de usuario. Puede proporcionar datos agregados en formato JSON, legibles por humanos en su forma sin procesar, o conectados con una herramienta de análisis como Grafana, por ejemplo, donde los desarrolladores y analistas pueden personalizar sus propias visualizaciones. Las métricas agregadas se pueden recuperar en diferentes períodos de tiempo: minutos, horas o días.
Las personas que no conocen GraphQL, pero tienen algo de experiencia con SQL, encontrarán algunas similitudes en la capacidad de filtrar, ordenar, paginar o limitar los resultados. Nuestra documentación te brindará todos los elementos básicos que necesitas para comenzar a explorarla (consulta la descripción general de la API de GraphQL y los datos agregados con GraphQL.
Incentivamos a quienes usan la API GraphQL a explorar todos los datos disponibles consultando sus metadatos (como se describe también en nuestra página sobre datos agregados con GraphQL. Así, tendrán la información del esquema sobre los conjuntos de datos disponibles (por ejemplo, idnsQueriesMetrics, edgeFunctionsMetrics, etc.), incluidas las dimensiones y métricas disponibles y sus tipos de datos (por ejemplo, int, string, datetime, etc.).
Algunas de las preguntas que nuestra API GraphQL puede responder son:
Seguridad: ¿Cuáles son mis IP y puertas más atacados a lo largo del tiempo? ¿Qué tipos de ataques estamos viendo y de dónde provienen?
Este tipo de información puede ser utilizada para perfeccionar la política de seguridad. Por ejemplo, nuestro módulo Network Layer Protection puede ser actualizado mediante programación con esta información para limitar la tasa o bloquear solicitudes por IP, geolocalización, ASN y más.
Desempeño y ahorro de costos: ¿Qué porcentaje de solicitudes llegan al caché y cuál es el ancho de banda del caché? ¿Cuál es el tiempo de respuesta de origen?
Este tipo de información te puede decir cuánto ancho de banda (es decir, dinero) estás ahorrando con el almacenamiento en caché y además, te brinda insights sobre desempeño y comportamiento del usuario para las solicitudes que deben viajar al origen. Esto puede ayudar a los desarrolladores a optimizar las aplicaciones en términos de desempeño, ahorro de costos y experiencia del usuario.
Hay muchos más casos de uso, por lo que para que nuestros clientes conozcan más información sobre todas las posibilidades, les sugerimos que se comuniquen con su representante de Customer Success (CS).
¿Cómo usar la API GraphQL?
Usar la API GraphQL de Azion es sencillo. Inicia sesión en nuestra consola (Real-Time Manager) para generar un token seguro para autenticar tus solicitudes de API. A partir de ahí, puedes consultar información relevante utilizando plataformas populares de API, como Postman e Insomnia.
En el siguiente ejemplo, consultamos la cantidad de ataques en una aplicación de muestra en el transcurso de 1 hora:
query HttpCalculatedWAFThreatsAndRequests {
httpMetrics(
limit: 1000
filter: {
tsRange: {begin:"2023-03-06T12:00:00" end:"2023-03-06T13:00:00"}
}
groupBy: [ts]
orderBy: [ts_ASC]
)
{
ts
wafRequestsThreat
}
}
Y aquí hay un ejemplo de cómo se vería la respuesta JSON para esa consulta:
{
"data": {
"httpMetrics": [
{
"ts": "2023-09-29T12:00:00Z",
"wafRequestsThreat": 94
},
{
"ts": "2023-09-29T12:01:00Z",
"wafRequestsThreat": 93
},
{
"ts": "2023-09-29T12:02:00Z",
"wafRequestsThreat": 124
},
{
"ts": "2023-09-29T12:03:00Z",
"wafRequestsThreat": 69
}
]
}
}
¿Qué sigue en la observabilidad de Azion?
En Azion, nos enfocamos en nuestros clientes y buscamos constantemente sus comentarios para mejorar nuestros productos de observabilidad. En el futuro, planeamos brindar acceso a datos de eventos sin procesar (no solo agregados) y también planeamos sumar nuevas visualizaciones a nuestro Real-Time Metrics, con un enfoque en insights de seguridad.
¿Tienes algún comentario o pregunta? Escríbenos a continuación en la sección de comentarios.