Métricas basadas en registros para casa inteligente

1. Antes de comenzar

Como se explicó en el codelab Cómo depurar una casa inteligente, publicamos métricas y registros en tus proyectos de casa inteligente. Las métricas te ayudan a determinar dónde tienes problemas con tus acciones de casa inteligente, y los registros resultan útiles cuando realizas análisis detallados para resolverlos.

848f483bfcd2997a.png

Además de las métricas que ponemos a disposición para tu proyecto, también puedes generar las tuyas propias mediante las métricas basadas en registros de Google Cloud Platform. Esto te permitirá supervisar ciertos patrones en tus registros y depurar de forma efectiva los problemas de calidad.

Requisitos previos

Qué aprenderás

  • Cómo escribir consultas efectivas para filtrar los registros de errores de casa inteligente
  • Cómo crear métricas basadas en registros a fin de generar métricas a partir de las consultas
  • Cómo crear gráficos y paneles a partir de métricas basadas en registros con fines de supervisión

2. Trabaja con registros

Como se explicó brevemente en el codelab Cómo depurar un casa inteligente, trabajar con registros resulta clave para el éxito de tu proyecto. Hay excelentes herramientas disponibles en Google Cloud Platform a los efectos de supervisar y analizar tus registros. Para acceder a todos los registros disponibles en tu proyecto, puedes usar el Explorador de registros.

Accede a los registros

El primer paso a fin de ingresar a tus registros es acceder a Google Cloud Platform y elegir tu proyecto. En el menú lateral, navega al Explorador de registros. Para ello, ve a Operaciones > Logging > Explorador de registros. Cuando abras la herramienta, se debería mostrar esta vista:

78982d8b6d19b827.png

El Explorador de registros consta de dos secciones principales: una en la que puedes escribir tus consultas en la parte superior (Compilador de consultas) y otra en la que se muestran los resultados coincidentes (Resultados de la consulta).

De forma predeterminada, muchos componentes diferentes de Google escriben registros en tu proyecto. A fin de encontrar los registros provenientes de tu integración de casa inteligente y trabajar con ellos, debes escribir consultas personalizadas.

Escribe consultas

Los registros se publican en proyectos bajo un tipo de recurso. Cada tipo de recurso representa una plataforma diferente dentro de Google. Los registros provenientes de la plataforma de casa inteligente están disponibles para tu proyecto en el tipo de recurso assistant_action_project.

Además, a todos los registros se les asigna un nivel de gravedad en el momento de su creación. Con los registros de casa inteligente, usamos el nivel de ERROR para los registros que representan errores y excepciones, y el nivel de DEBUG para todo lo demás.

En el siguiente ejemplo, escribiremos una consulta a fin de filtrar los registros provenientes de nuestra plataforma que representan errores de la siguiente manera:

753bfe72a9f8e959.png

Una vez que hayas terminado de escribir la consulta, haz clic en el botón Ejecutar consulta a los efectos de iniciarla. Deberías ver los errores provenientes de tu integración de casa inteligente:

3ef42da5a6c322e1.png

Como puedes ver, se muestran varios errores producidos en momentos diferentes durante la última hora. Cada línea representa un solo registro de errores. Puedes hacer clic en los registros individuales y expandir los campos anidados para ver la información que contienen.

Usa el histograma

El Explorador de registros proporciona una función de Histograma útil con el fin de ver la distribución en el tiempo de los registros que coinciden con tu consulta. Para activar el histograma, haz clic en PAGE LAYOUT, en los botones de la esquina superior derecha, y marca la opción Histograma a los efectos de habilitar la función.

10eaf1d204decf3c.png

Una vez habilitada, verás una distribución de los registros que coinciden con tu consulta:

dd3410e65a83cf5d.png

Como puedes ver en la imagen anterior, tenemos varios errores en grupos separados de la última hora. Parecen formar tres grupos alrededor de la 1:45, las 2:00 y las 2:15 p.m. El histograma te ayudará a detectar patrones que serían difíciles de ver si solo revisaras los valores de marca de tiempo.

En este momento, la consulta que usamos no diferencia entre los registros y nos muestra todos los errores que provienen de nuestra integración de casa inteligente. En muchos casos, es posible que quieras diferenciar los errores entre sí, por ejemplo, a fin de hacer un seguimiento de patrones de errores originados a partir de ciertos tipos de dispositivos o sus características. Para ello, analizaremos cómo escribir consultas avanzadas.

Consultas avanzadas

Cuando inspecciones un registro de eventos de casa inteligente, verás varios campos de los que puedes recopilar información:

825c57c36800844e.png

action

  • trait: Es la característica del dispositivo de destino definida por el usuario (por ejemplo, encender, apagar, iniciar, detener, brillo).
  • actionType: Es el estado detallado de la característica (por ejemplo, activar, desactivar, pausar, detener y reanudar).

device

  • deviceType: Es el tipo de dispositivo de destino definido por el usuario (por ejemplo, luz, interruptor, lavadora).

status

  • isSuccess: Indica si el resultado de la acción se considera exitoso (verdadero o falso).
  • statusType: Es el código de estado del resultado de la acción (si se produce un error, indica el código correspondiente).
  • externalDebugString: Es la string de depuración para la acción (describe el error en detalle).

Otros campos

También hay campos adicionales de los que puedes obtener información:

  • requestId: Es un ID único asociado con la solicitud (generado por Google).
  • executionType: Es la ruta de acceso utilizada por la solicitud (indica si está en la Nube o en un entorno Local).
  • latencyMsec: Es la latencia percibida de la solicitud en los servidores de Google (en ms).
  • locale: Es el par idioma/región desde el que se envía la solicitud (por ejemplo, en-US o fr-FR).

Si usamos el campo de característica de la lista anterior, modificaremos nuestra consulta de modo que solo incluya los errores que provengan de la característica encender o apagar de la siguiente manera:

resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

Después de ejecutar nuestra consulta actualizada, el sistema identificará los registros y mostrará el resultado correspondiente:

76176d7a41962341.png

Hasta ahora, realizamos todas las consultas de forma manual. Esa es una excelente forma de verificar rápidamente el estado de los errores, pero no resulta tan buena a los efectos de supervisar los cambios en los patrones de error a lo largo del tiempo. Crearemos métricas basadas en registros para automatizar este flujo y capturar datos de períodos más largos.

3. Métricas basadas en registros

A fin de contar la cantidad de registros que coinciden con tus consultas en el tiempo, puedes usar métricas basadas en registros. Esto te permitirá ver patrones en los registros, así como obtener estadísticas valiosas sobre los problemas subyacentes.

Crea una métrica basada en registros

Para crear una métrica basada en registros, navega a Operaciones > Logging > Log-based Metrics. Se mostrará la lista de métricas basadas en registros que ya están disponibles en tu proyecto. Una vez que hagas clic en el botón CREAR MÉTRICA, verás la pantalla de creación de métricas basadas en registros:

296af6e7d8dcf6cf.png

Existen dos tipos principales de métricas: una métrica de contador, que cuenta la cantidad de registros que coinciden con tu consulta, y una métrica de distribución, que realiza un seguimiento de la distribución subyacente y permite operaciones estadísticas como la media, la mediana y el percentil 95.

Cuando te desplaces hacia abajo, verás una sección de filtros en la que podrás escribir tu consulta.

f7f2093fa1bce2ac.png

Pegaremos nuestra consulta de la sección anterior en el área de texto Crear filtro.

​​resource.type="assistant_action_project" AND severity=ERROR AND
jsonPayload.executionLog.executionResults.actionResults.action.trait="TRAIT_ON_OFF"

También puedes hacer clic en el botón OBTENER VISTA PREVIA DE LOS REGISTROS para ver una vista rápida de los registros anteriores que coinciden con tu filtro. Cuando termines, puedes hacer clic en el botón CREAR MÉTRICA y avanzar a la siguiente sección.

Visualiza datos de métricas basadas en registros

Ahora que creamos nuestra métrica basada en registros, estará disponible en la sección Métricas definidas por el usuario de la página de Métricas basadas en registros.

1b2c88c18533fbcd.png

En el menú correspondiente a la métrica basada en registros (3 puntos), selecciona Ver en el Explorador de métricas a fin de ver los datos recopilados en esa métrica:

54a836fdc3a666a3.png

Cuando se genere un error nuevo, la métrica basada en registros lo capturará y mostrará en la ventana de gráficos del Explorador de métricas.

Realiza la supervisión mediante paneles personalizados

Cuando veamos que nuestra nueva métrica basada en registros funciona según lo previsto, será el momento de guardar esta vista de gráfico en un panel personalizado. Para ello, haz clic en el botón Guardar gráfico, que se encuentra en la esquina superior derecha del Explorador de métricas. Verás un mensaje en el que se te pedirá asignar un nombre al gráfico y seleccionar el panel en el que deseas guardar la información:

52329085f841782e.png

Una vez que guardemos el gráfico en un panel, podremos acceder a él con facilidad. Para acceder a la lista de paneles disponibles en tu proyecto, navega a Operaciones > Monitoring > Paneles.

44961e7cb3663341.png

Guardamos nuestro gráfico en un panel llamado "Panel del Codelab". Cuando lo abras, se mostrará la siguiente vista:

f7e025c27f30f996.png

Como puedes ver, en este gráfico muestra la métrica basada en registros, junto con los datos recopilados recientemente. Los registros de casa inteligente se publican en tu proyecto en tiempo real. Cuando haya un registro nuevo disponible, verás que la métrica basada en registros lo contará de inmediato.

4. Felicitaciones

674c4f4392e98c1.png

¡Felicitaciones! Aprendiste a convertir tus consultas en métricas basadas en registros y a guardarlas en paneles personalizados con fines de supervisión.

Próximos pasos

A partir de este Codelab, prueba los siguientes ejercicios y explora recursos adicionales: