Guardianes de las Aplicaciones: Conquistando la Monitorización de Aplicaciones Node.JS

Rate this content
Bookmark

¿Alguna vez has tenido problemas con la monitorización en tus aplicaciones Node.JS? ¡Ya no más! Compartiendo lo bueno, lo malo y lo desesperante de nuestras propias experiencias, quiero ayudarte a evitar el caos en la monitorización. Veremos cómo conocer realmente cómo funcionan tus aplicaciones te ayuda a tener una monitorización más enfocada. Esto te permite evitar los agujeros negros que la monitorización basada en casillas de verificación puede tener, asegurándote de que las métricas y alertas importantes no se pasen por alto. Además, veremos cómo el registro estratégico y enfocado, la monitorización y las alertas con herramientas como Graylog, Grafana y Prometheus pueden potenciar la resistencia de tu aplicación. Únete para descubrir cómo los patrones y antipatrones de confiabilidad y monitorización pueden ayudar a mejorar la calidad de la aplicación. ¡Volverás armado con información valiosa que puede llevar tu juego de monitorización a otro nivel!

Ante Tomić
Ante Tomić
21 min
15 Feb, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La monitorización y la observabilidad son importantes para detectar errores antes de que sean perceptibles. Ejemplos de problemas de monitorización incluyen la confusión y la frustración cuando la monitorización lleva a malentendidos. El trabajo en equipo es esencial para una monitorización efectiva, la automatización puede agilizar los procesos y mejorar la eficiencia. La monitorización personalizada es necesaria para prevenir peligros y las alertas innecesarias pueden perjudicar la productividad. Los desafíos incluyen depender demasiado de la monitorización sin abordar los problemas fundamentales y luchar con la configuración manual.

Available in English

1. Introducción a la Monitorización y Observabilidad

Short description:

¿Qué sucede cuando tus aplicaciones se bloquean conscientemente? ¿Las cortas mientras los ingresos se desploman? Nos sentimos impotentes. Hoy voy a compartir contigo los métodos de pruebas y monitorización del modelo que pueden ayudarte a prevenir desastres. Es importante que los equipos monitoricen los sistemas y detecten errores antes de que los notes. Vamos a explorar los conceptos importantes de la monitorización y la observabilidad. La monitorización y la observabilidad trabajan juntas para detectar problemas temprano y prevenir problemas futuros.

¿Qué sucede cuando tus aplicaciones se bloquean conscientemente? ¿Las cortas mientras los ingresos se desploman? Nos sentimos impotentes.

Hola, soy Martin Tomician, un gerente de pensamiento senior aquí en NippoBip, y hoy voy a compartir contigo los métodos de pruebas y monitorización del modelo que pueden ayudarte a prevenir desastres. Permíteme presentarme primero. Tengo 30 años y tengo una sordera del 55% en ambos oídos. Y en mis siete años en NippoBip, he dominado habilidades como Infraestructura Web, React, Webpack, Microcontenido, Automatización, Monitorización, Mejora de la Experiencia y mucho más. Pero hey, no soy solo un programador, y no estoy en conferencias ni en mentorías. Si me encuentras explorando el mundo, tomando fotografías excepcionales y también coleccionando patitos de goma y imanes cada semana, agárrate porque todo estará bien.

Sabes cuando Netflix deja de funcionar y los clientes se enfadan rápidamente, y tienes un mal día, los conductores violan a los clientes y el autobús. Por eso es importante que los equipos monitoricen los sistemas. Juegan de detectives para poder detectar errores antes de que los notes.

Y sabes que capturar y detectar problemas temprano mantiene a los clientes listos. Así que vamos a explorar los conceptos importantes de la monitorización y la observabilidad. Y pongamos un ejemplo. El pequeño Pedro cayó fuerte y se raspó la rodilla. Su pequeño asistente monitorizó cómo cojeaba y limpiaba los patrones en su herida. El robot investigó por qué se cayó y se dio cuenta de que tenía los zapatos desatados. Y juntos cuidaron de la herida y previnieron la próxima. La monitorización aquí y la observabilidad trabajan juntas. Y la monitorización es básicamente como un pequeño asistente. Sigue adelante y trabaja para ver si las cosas funcionan correctamente. Y verifica métricas como si ve si la rueda cojea y sabe de inmediato que algo está mal. El registro aquí ayuda a la monitorización al verificar y registrar información que puede ser útil más adelante. Pero la monitorización solo te alerta sobre problemas. La monitorización puede sentirse como vagar en la oscuridad. No estás seguro de lo que está sucediendo. No estás seguro de la causa raíz. Tu capacidad es como si encendieras un interruptor de luz. Sabes que iluminas todo y puedes ver los registros, métricas y trazas claramente. Y de inmediato sabes por qué Pedro se cayó. Porque tenía los cordones desatados.

2. Ejemplos de Problemas de Monitorización

Short description:

Cuando tienes mecánicos y confían en el diagnóstico para poder reparar tu coche con precisión, la durabilidad es básicamente algo muy similar. La monitorización nos dice que algo está mal, pero no cómo retener a nuestros usuarios. En InfoPip, utilizamos Greylock para el registro, Grafana para los paneles de control, Prometheus para las métricas, Obgeni para las alertas y Sensory para los problemas que enfrentan los usuarios. Las malas elecciones pueden afectar a la empresa, las aplicaciones y la confiabilidad. El primer ejemplo es ShopPass. La monitorización los llevó a estar completamente confundidos y frustrados. Así que tuvieron que cambiar y mejorar. El segundo ejemplo es Tom, quien verifica el sitio web de Tickethype, asegurándose de que todo esté bien.

Y otro ejemplo más es el testigo intermitente del motor dentro de la línea del coche. Porque te advierte sobre los problemas, pero no sobre la causa. Cuando tienes mecánicos y confían en el diagnóstico para poder reparar tu coche con precisión, la durabilidad es básicamente algo muy similar. Porque mira bajo el capó del software, señala el problema para que pueda ser reparado.

Y la monitorización aquí, por ejemplo, nos dice que algo está mal, pero no cómo retener a nuestros usuarios. Y sabes que con las herramientas de monitorización, nuestras aplicaciones tienen superpoderes. Como héroes, las aplicaciones pueden parecer invencibles, pero dependen del talento detrás de escena para ayudar a detectar errores temprano. En InfoPip, por ejemplo, utilizamos Greylock para el registro, Grafana para los paneles de control, Prometheus para las métricas, Obgeni para las alertas y Sensory para los problemas que enfrentan los usuarios. Y voy a mostrarte algunas historias de trabajo reales de monitorización y usar ejemplos prácticos. Debido al tiempo limitado, no me voy a enfocar tanto en demostraciones aburridas de herramientas. Así que empecemos.

El filósofo griego Platón dijo una vez que una buena decisión se basa en el conocimiento y no en los números. Y nuestras decisiones afectan a la empresa, las aplicaciones y la confiabilidad. Por lo tanto, es importante ver cómo las malas elecciones pueden afectar esto y causar inestabilidad. Y es importante entender cómo funciona nuestra aplicación, cuál es el comportamiento correcto y cuál es su performance actual para que podamos hacer un registro, monitorización y solución de problemas adecuados, y para que podamos tomar decisiones acertadas. Y el primer ejemplo es ShopPass. Su sistema comenzó a fallar tan pronto como su trampa de compras se activó y los gerentes estaban en pánico. Ahora simplemente comenzaron a comprar esta, esta, esta, esta herramienta de monitorización sin ninguna estrategia, todo estaba desarticulado, todos estaban confundidos y no tenían ningún enfoque sistemático. Lo que quiero decir, ya sabes, todos hemos intentado apagar incendios sin ver realmente el cuadro completo. Y este es el patrón anti-grasa, que se llama obsesión por la herramienta. Cuando nos obsesionamos tanto con ciertas herramientas que perdemos la perspectiva, porque es tan fácil pensar que la última herramienta será la súper bala y terminar distrayéndonos de entregar valor real. No sé, no deberíamos poner toda nuestra fe en las herramientas, porque pueden hacer que los equipos piensen que son una varita mágica que conduce al éxito. Porque recuerda, la boda de Cenicienta y su madre incluso le advirtió que llamara hechizos para Rerop a medianoche. Y lo mismo ocurre aquí, porque nada puede reemplazar el trabajo duro.

Entonces, ¿cuál es el problema para ShopPass? La monitorización los llevó a estar completamente confundidos y frustrados porque la red estaba tan verde, pero los usuarios aún se quejaban, perdieron tiempo tratando de descifrar esas contradicciones y errores, y realmente no tenían ninguna idea sobre esos procesos críticos del backend. Así que tuvieron que cambiar y mejorar. Y eso es exactamente lo que hicieron, porque observaron de cerca los signos vitales y las métricas, vieron qué es importante, qué los mantiene saludables y en el camino correcto, y se aseguraron de cubrir eso y simplificaron las herramientas para que solo puedan enfocarse en lo más importante. Y crearon un plan de juego enfocado, lo que les permitió detectar temprano y celebrar el progreso y asegurarse de que los productos sean más estables. Y el segundo ejemplo es, imaginemos a Tom. Él verifica el sitio web de Tickethype, como su médico, asegurándose de que todo esté bien, verifica servidores, velocidades, bases de datos y especialmente errores.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Node Congress 2022Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top Content
Do you know what’s really going on in your node_modules folder? Software supply chain attacks have exploded over the past 12 months and they’re only accelerating in 2022 and beyond. We’ll dive into examples of recent supply chain attacks and what concrete steps you can take to protect your team from this emerging threat.
You can check the slides for Feross' talk here.
Towards a Standard Library for JavaScript Runtimes
Node Congress 2022Node Congress 2022
34 min
Towards a Standard Library for JavaScript Runtimes
Top Content
You can check the slides for James' talk here.
Out of the Box Node.js Diagnostics
Node Congress 2022Node Congress 2022
34 min
Out of the Box Node.js Diagnostics
In the early years of Node.js, diagnostics and debugging were considerable pain points. Modern versions of Node have improved considerably in these areas. Features like async stack traces, heap snapshots, and CPU profiling no longer require third party modules or modifications to application source code. This talk explores the various diagnostic features that have recently been built into Node.
You can check the slides for Colin's talk here. 
ESM Loaders: Enhancing Module Loading in Node.js
JSNation 2023JSNation 2023
22 min
ESM Loaders: Enhancing Module Loading in Node.js
Native ESM support for Node.js was a chance for the Node.js project to release official support for enhancing the module loading experience, to enable use cases such as on the fly transpilation, module stubbing, support for loading modules from HTTP, and monitoring.
While CommonJS has support for all this, it was never officially supported and was done by hacking into the Node.js runtime code. ESM has fixed all this. We will look at the architecture of ESM loading in Node.js, and discuss the loader API that supports enhancing it. We will also look into advanced features such as loader chaining and off thread execution.
Node.js Compatibility in Deno
Node Congress 2022Node Congress 2022
34 min
Node.js Compatibility in Deno
Can Deno run apps and libraries authored for Node.js? What are the tradeoffs? How does it work? What’s next?
Multithreaded Logging with Pino
JSNation Live 2021JSNation Live 2021
19 min
Multithreaded Logging with Pino
Top Content
Almost every developer thinks that adding one more log line would not decrease the performance of their server... until logging becomes the biggest bottleneck for their systems! We created one of the fastest JSON loggers for Node.js: pino. One of our key decisions was to remove all "transport" to another process (or infrastructure): it reduced both CPU and memory consumption, removing any bottleneck from logging. However, this created friction and lowered the developer experience of using Pino and in-process transports is the most asked feature our user.In the upcoming version 7, we will solve this problem and increase throughput at the same time: we are introducing pino.transport() to start a worker thread that you can use to transfer your logs safely to other destinations, without sacrificing neither performance nor the developer experience.

Workshops on related topic

How to Solve Real-World Problems with Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
How to Solve Real-World Problems with Remix
Featured Workshop
Michael Carter
Michael Carter
- Errors? How to render and log your server and client errorsa - When to return errors vs throwb - Setup logging service like Sentry, LogRocket, and Bugsnag- Forms? How to validate and handle multi-page formsa - Use zod to validate form data in your actionb - Step through multi-page forms without losing data- Stuck? How to patch bugs or missing features in Remix so you can move ona - Use patch-package to quickly fix your Remix installb - Show tool for managing multiple patches and cherry-pick open PRs- Users? How to handle multi-tenant apps with Prismaa - Determine tenant by host or by userb - Multiple database or single database/multiple schemasc - Ensures tenant data always separate from others
Monitoring 101 for React Developers
React Advanced Conference 2023React Advanced Conference 2023
112 min
Monitoring 101 for React Developers
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
If finding errors in your frontend project is like searching for a needle in a code haystack, then Sentry error monitoring can be your metal detector. Learn the basics of error monitoring with Sentry. Whether you are running a React, Angular, Vue, or just “vanilla” JavaScript, see how Sentry can help you find the who, what, when and where behind errors in your frontend project.
Node.js Masterclass
Node Congress 2023Node Congress 2023
109 min
Node.js Masterclass
Top Content
Workshop
Matteo Collina
Matteo Collina
Have you ever struggled with designing and structuring your Node.js applications? Building applications that are well organised, testable and extendable is not always easy. It can often turn out to be a lot more complicated than you expect it to be. In this live event Matteo will show you how he builds Node.js applications from scratch. You’ll learn how he approaches application design, and the philosophies that he applies to create modular, maintainable and effective applications.

Level: intermediate
Build and Deploy a Backend With Fastify & Platformatic
JSNation 2023JSNation 2023
104 min
Build and Deploy a Backend With Fastify & Platformatic
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic allows you to rapidly develop GraphQL and REST APIs with minimal effort. The best part is that it also allows you to unleash the full potential of Node.js and Fastify whenever you need to. You can fully customise a Platformatic application by writing your own additional features and plugins. In the workshop, we’ll cover both our Open Source modules and our Cloud offering:- Platformatic OSS (open-source software) — Tools and libraries for rapidly building robust applications with Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (currently in beta) — Our hosting platform that includes features such as preview apps, built-in metrics and integration with your Git flow (https://platformatic.dev/). 
In this workshop you'll learn how to develop APIs with Fastify and deploy them to the Platformatic Cloud.
0 to Auth in an Hour Using NodeJS SDK
Node Congress 2023Node Congress 2023
63 min
0 to Auth in an Hour Using NodeJS SDK
WorkshopFree
Asaf Shen
Asaf Shen
Passwordless authentication may seem complex, but it is simple to add it to any app using the right tool.
We will enhance a full-stack JS application (Node.JS backend + React frontend) to authenticate users with OAuth (social login) and One Time Passwords (email), including:- User authentication - Managing user interactions, returning session / refresh JWTs- Session management and validation - Storing the session for subsequent client requests, validating / refreshing sessions
At the end of the workshop, we will also touch on another approach to code authentication using frontend Descope Flows (drag-and-drop workflows), while keeping only session validation in the backend. With this, we will also show how easy it is to enable biometrics and other passwordless authentication methods.
Table of contents- A quick intro to core authentication concepts- Coding- Why passwordless matters
Prerequisites- IDE for your choice- Node 18 or higher
Building a Hyper Fast Web Server with Deno
JSNation Live 2021JSNation Live 2021
156 min
Building a Hyper Fast Web Server with Deno
WorkshopFree
Matt Landers
Will Johnston
2 authors
Deno 1.9 introduced a new web server API that takes advantage of Hyper, a fast and correct HTTP implementation for Rust. Using this API instead of the std/http implementation increases performance and provides support for HTTP2. In this workshop, learn how to create a web server utilizing Hyper under the hood and boost the performance for your web apps.