Los registros pueden ser nuestro salvavidas cuando las cosas salen mal. Para resolver un problema, debemos reproducirlo y el registro de depuración puede ser invaluable. Pero hay un problema: los costos. A medida que las aplicaciones crecen, también lo hacen los costos de ingesta y almacenamiento de nuestros registros, y esto nos obliga a tomar una decisión entre registrar muy poco para ser útil o pagar por registros que no estamos usando.
Thom Shutt una vez argumentó a favor de registrar solo errores , sugiriendo que se descartaran los niveles de advertencia, información y depuración. ¿Su fundamento? La dificultad de cambiar los niveles de registro en producción:
Desechar niveles: ¿Cuándo fue la última vez que ejecutó Producción en algo que no fuera Información? ¿Cambiar de nivel es un proceso rápido que todos en el equipo saben cómo hacer?
Y, de hecho, la mayoría de nosotros no cambiamos los niveles de registro con frecuencia porque requiere una confirmación, una compilación y una implementación. Si cambiar el nivel de registro es un proceso tedioso, estas líneas adicionales se convierten en mero ruido.
Ingrese a la configuración dinámica. Si bien es posible que muchos no estén familiarizados con él, quienes lo han adoptado no pueden imaginar la vida sin él. A diferencia de la configuración estática, donde las aplicaciones leen un archivo de propiedades o una variable de entorno, la configuración dinámica es, como su nombre indica, dinámica.
Ofrece la posibilidad de establecer nuevos valores a través de una interfaz de usuario, lo que garantiza que cada evaluación recupere la última versión.
Esta tecnología es la columna vertebral del registro dinámico. Al almacenar el mapeo Logger -> LogLevel en nuestro sistema de configuración y actualizar el registrador en función de los cambios, podemos pasar de advertir a depurar en milisegundos, no en horas.
Prefab está revolucionando la forma en que abordamos la tala. Con Prefab, puedes:
Los costos de la tala aumentan a gran escala y están todos ligados al volumen. Los agregadores están ofreciendo nuevas formas de intentar reducir este gasto, como Log Without Limits de Datadog, y Cribl es básicamente una empresa entera dedicada a este problema.
Pero todas estas soluciones le cobran según el uso. Al final del día, todavía estás pagando por los registros que envías.
Debido a que sus registros no pasan a través de Prefab, no se cobra según el volumen de registros, sino simplemente por ofrecer la configuración dinámica a sus servidores. Prefab simplemente controla los valores de un filtro, asegurando que solo registre lo necesario. Este enfoque puede generar ahorros significativos, especialmente para aplicaciones a gran escala.
Adoptar el registro dinámico no se trata sólo de utilizar una nueva herramienta; es un cambio cultural. Al principio, puede parecer desalentador. Pero a medida que los equipos se acostumbran al poder del registro dirigido, se fomenta una mentalidad operativa más sólida. Los desarrolladores ahora pueden pensar: "Si esto sale mal, ¿qué información querría?" y prepararse en consecuencia.
Por ejemplo, considere este fragmento de código:
def charge(user, amount) balance = get_balance(user) min_balance = get_min_balance(user) do_charge = balance > min_balance logger.debug("charge decision", charge: do_charge, amount: amount, balance: balance, user_id: user.id, min_balance: min_balance) if do_charge charge_user(user, amount) else end
Anteriormente, muchos habrían visto la línea logger.debug
como mero ruido de desarrollo. Pero con el registro dinámico, estas líneas se convierten en herramientas invaluables, listas para activarse cuando sea necesario.
El panorama de la tala está experimentando un cambio sísmico. Con herramientas como Prefab , los desarrolladores ya no tienen que elegir entre registros detallados y rentabilidad. El registro dinámico ofrece lo mejor de ambos mundos, proporcionando información cuando es necesaria sin el elevado precio asociado.
¡Feliz depuración! 🚀