← Volver ao blog

Como nos decatamos de que algo se rompeu en produción antes de que o diga o cliente

Daniel García·

Un sábado pola mañá, un cliente de alimentación online escribiunos para avisar de que o carriño levaba roto dende o venres pola noite. Non o vimos nós. Vino el, mirando o panel de pedidos e preguntándose por que non entraba nin un dende hai catorce horas. Iso foi hai máis dun ano e aínda me dá un pouco de vergoña contalo, pero é a razón pola que agora case ningún proxecto sae das nosas mans sen algo que vixíe se segue vivo.

O que pasara era parvo: un cambio nunha pasarela de pago devolvía un código distinto ao que esperaba o noso backend, e o erro tragábase en silencio nun try/catch que alguén (eu, para ser exacto) escribira meses antes “por se acaso” e nunca revisou. Sen logs claros, sen alerta, sen nada. O checkout devolvía unha pantalla en branco e o usuario simplemente marchaba.

Despois diso empezamos a meter Sentry en todos os proxectos con backend propio, non só nos grandes. Custa case nada (o plan gratuíto cobre de sobra a un cliente pequeno) e captura excepcións non controladas antes de que as capture un usuario enfadado. Para sitios máis simples, sen backend complicado, usamos Uptime Kuma autoaloxado no mesmo VPS onde xa tiñamos outras cousas correndo: fai ping cada minuto ás URLs importantes e avisa por Telegram se algo deixa de responder ou tarda máis da conta.

A parte que non contamos tanto é que a primeira versión disto foi un desastre por exceso, non por defecto. Configurei Sentry para que me avisase de calquera excepción, sen agrupar, sen limiar. Nunha semana tiña máis de douscentos correos acumulados dun erro menor dunha libraría de terceiros que non afectaba a nada real. Deixei de lelos. E claro, o día que houbo algo de verdade, estaba mesturado co ruído de sempre.

Tivemos que aprender a distinguir entre “isto rompe algo que o usuario nota” e “isto é un aviso que pode esperar ao luns”. Agora as alertas críticas van a unha canle de Telegram que miramos literalmente todos, e todo o demais queda arquivado no panel para revisar unha vez por semana. Bastante menos elegante que calquera charla sobre observabilidade que teñas visto nunha conferencia, pero funciona.

O que aínda non temos resolto é a garda. Somos tres persoas e ningunha quere ser a que mira o móbil un domingo ás once da noite por un cliente que paga trescentos euros ao mes de mantemento. De momento a solución informal é “quen o vexa primeiro avisa ao grupo”, que funciona mentres o equipo sexa pequeno e ninguén estea de vacacións ao mesmo tempo. Non sei que faremos o día que deixen de coincidir esas dúas cousas.

monitorizaciónlogsproduciónincidentes