Tutorial: CloudWatch Insight y Alexa Skill

Descubre la importancia de poner logs dentro de tu código y cómo podemos usarlo para tu beneficio.

Javi Mora Díaz
Sonara
3 min readFeb 19, 2021

--

Los logs no solo sirven para detectar posibles problemas en nuestros sistemas, sino que nos dice que ocurre dentro de el. Esta información podemos usarla para mejorar nuestro sistema o detectar el uso que hacen los usuarios del mismo.

Estamos acostumbrados a ver las métricas que nos ofrecen las Skills de Alexa, son métricas completas, pero muy genéricas a la hora de realizar un análisis del comportamiento dentro de nuestra Skill.

Con CloudWatch os voy a enseñar la importancia poner logs dentro de nuestro código y cómo podemos usarlo para nuestro beneficio.

Una práctica muy común es crear interceptores dentro de la Skill de forma que tengamos centralizadas ciertas operaciones genéricas y repetitivas, como por ejemplo, escribir en nuestro log los datos que llegan a nuestra lambda. Este es un ejemplo de nuestro interceptor:

Con esto, conseguimos que todo lo que entra en nuestro backend lo enviaremos a CloudWatch.

Podemos crear todos los logs que creamos necesarios para posteriormente ser analizados, pero con este interceptor tendremos toda la información necesaria para hacer un primer análisis de que ocurre en nuestra Skill.

CloudWatch Insight

Una vez modificada nuestra Skill vamos al servicio de AWS CloudWatch, en concreto al menú Logs -> Insights

En el cuadro superior debemos elegir el log groups correspondiente a nuestra lambda, en el lado derecho tendremos la ventana de tiempo donde la query obtendrá los datos y por último en la parte inferior tendemos el panel donde definiremos la query.

CloudWatch Logs Insights permite buscar y analizar de forma interactiva datos de registro en Amazon CloudWatch Logs en forma de consulta/query.

Una vez ejecutada la query obtenemos todos los datos del log de la ventana de tiempo seleccionada, estos datos están poco estructurados, pero nos servirá para modelar nuestra query.

Con los datos obtenidos en la anterior query, vemos los registros de logs de entrada a nuestra Skill, y podemos ver claramente como la información esta estructurada en formato clave valor (Field:Value). Gracias a esta información vamos a construir una query que nos de información sobre que usuarios usan dispositivo con APL para acceder a nuestra Skill.

Otro ejemplo sería sacar las sesiones de un mismo usuario, esto lo conseguimos con la siguiente query

Estos son solo unos ejemplos sencillos de cómo podemos explotar toda la información que tenemos en los logs a través de queries sencillas. Adicionalmente podemos guardar nuestra query, consultar el histórico o bien añadir nuestro resultado a un dashboard.

--

--