Google Cloud Logging cobra $0.5 por GiB de logs ingeridos, con una capa gratuita de 50 GiB por proyecto. Por lo general el monto es bajo, pero hay casos en los que estos costos pueden dispararse. Si bien Google ha sido bastante flexible en estas situaciones y suele emitir reembolsos, conviene tener esto bajo control por si esa política llega a cambiar.

¿Por qué se disparan los costos de logging?
Lo hemos visto muchas veces: un desarrollador despliega una nueva versión con un nivel de depuración más detallado. O crea un nuevo HTTP load balancer sin desactivar la configuración por defecto, que transmite los access logs. De un momento a otro, tu uso de Logging se multiplica por 100 y los costos crecen al mismo ritmo.
Si monitoreas activamente los costos del proyecto, lo más probable es que detectes este pico en un par de días. Otros pueden no tener tanta suerte y terminar en el conocido fenómeno del bill shock.
Cómo evaluar la tasa de ingesta de logs
Como casi cualquier otro servicio de Google Cloud, Logging produce métricas valiosas que están disponibles en el servicio de Monitoring.
La métrica con la que conviene empezar es "Log bytes ingested".
Aquí tienes un ejemplo de gráfico de esta métrica:
Log bytes ingeridos, desglosados por el servicio que produce los logs — última hora
Si miramos la última hora, no se observa ningún patrón, así que es difícil detectar anomalías.
Si ampliamos el rango a un mes, se aprecia un patrón claro: los logs se generan de forma intensiva entre semana (lunes a viernes):
Log bytes ingeridos, desglosados por el servicio que produce los logs — último mes. Los días laborales aparecen dentro de los recuadros azules
Es un patrón que podemos analizar, y si alguna de las series temporales se sale de él, sabremos que algo podría estar provocando una emisión excesiva de logs en el servicio correspondiente.
Cómo profundizar en las métricas de logs
Todos los recursos de GCP emiten la métrica "Log bytes". Por ejemplo, si quisiéramos aislar la tasa de emisión de logs de App Engine, podríamos armar este gráfico:
Desglose de la emisión de logs de App Engine
El análisis está bien, pero ¿cómo lo monitoreamos?
Como te imaginarás, nadie quiere pasarse el día mirando un gráfico esperando a que aparezca una anomalía. Entonces, ¿cómo se monitorea de forma proactiva la tasa de emisión de logs?
Si la tasa de emisión es constante a lo largo del día, basta con crear una política de alertas en Monitoring. Esta avisará cuando una serie temporal aumente su valor en el porcentaje que configures.
En cambio, si la emisión de logs es cíclica, monitorearla se complica. La emisión fluctúa durante el día, así que es normal que las series temporales suban y bajen. Por eso, configurar una alerta basada en eso puede provocar muchas falsas alarmas.
Para sortearlo, puedes suavizar la estacionalidad modificando el período de agregación.
Cómo ignorar la estacionalidad de las series temporales
Podemos suavizar los datos graficados agregándolos sobre un período más largo. Por ejemplo, el gráfico que se veía así con un período de agregación de un minuto:
Log bytes ingeridos — período de agregación de 1 minuto
…se ve así cuando el período de agregación se configura en un día:
Log bytes ingeridos — período de agregación de 1 día
…y así cuando se configura en una semana:
Log bytes ingeridos — período de agregación de 1 semana
Sobre este último gráfico sí podemos crear una alerta cuando alguna de las series temporales aumenta (o disminuye) en cierto porcentaje.
Lamentablemente, Google Cloud Monitoring no admite por ahora períodos de agregación mayores a 25 horas en las políticas de alertas, así que no puedes crear una alerta de este tipo desde Cloud Monitoring.
Le pedimos a Google que eliminara el límite de 25 horas para poder alertar correctamente sobre la emisión de logs cuando las series temporales son cíclicas. Se envió una solicitud de funcionalidad; puedes marcarla con una estrella si te interesa.
¡Gracias por leer! Para mantenerte al día, síguenos en el DoiT Engineering Blog, el canal de DoiT en LinkedIn y el canal de DoiT en Twitter. Para conocer las oportunidades laborales, visita https://careers.doit-intl.com.