O dilema da exploração madeireira Os registros podem ser nossa tábua de salvação quando as coisas dão errado. Para resolver um problema, devemos reproduzi-lo, e o registro de depuração pode ser inestimável. Mas há um problema: os custos. À medida que os aplicativos aumentam, também aumentam os custos de ingestão e armazenamento de nossos registros, e isso nos força a uma troca entre registrar muito pouco para ser útil ou pagar por registros que não estamos usando. Thom Shutt certa vez defendeu , sugerindo que os níveis de aviso, informação e depuração fossem descartados. Sua justificativa? A dificuldade em alterar os níveis de log na produção: o registro apenas de erros Jogue fora os níveis - Quando foi a última vez que você executou a produção em algo diferente de informação? Mudar de nível é um processo rápido que todos da equipe sabem fazer? E, de fato, a maioria de nós não altera os níveis de log com frequência porque isso requer uma confirmação, uma compilação e uma implantação. Se alterar o nível do log for um processo tedioso, essas linhas adicionais de fato se tornarão mero ruído. O poder da configuração dinâmica Insira a configuração dinâmica. Embora muitos possam não estar familiarizados com ele, não conseguem imaginar a vida sem ele. Ao contrário da configuração estática, onde os aplicativos leem um arquivo de propriedades ou uma variável de ambiente, a configuração dinâmica é, como o nome sugere, dinâmica. aqueles que o abraçaram Oferece a capacidade de definir novos valores através de uma UI, garantindo que cada avaliação recupere a versão mais recente. Essa tecnologia é a espinha dorsal do registro dinâmico. Armazenando o mapeamento Logger -> LogLevel em nosso sistema de configuração e atualizando o logger nas alterações, podemos mudar de aviso para depuração em milissegundos, não em horas. Apresentando o Prefab: o futuro da exploração madeireira está revolucionando a maneira como abordamos a exploração madeireira. Com o Pré-fabricado, você pode: A Prefab : ajuste os níveis de registro em tempo real. Não há necessidade de esperar o servidor reiniciar. Mude e pronto. Alterações no nível de registro em tempo real : o registro direcionado do Prefab permite que você veja logs de depuração para apenas um único usuário, transação ou zona de disponibilidade, aumentando a precisão e reduzindo o ruído. O Prefab permite que você se concentre no código, na tarefa relevante ou até mesmo em um usuário específico. Registro direcionado : Prefab não é outra ferramenta de registro. Ele se integra perfeitamente ao seu provedor de registro existente, seja DataDog, Sumo Logic ou uma pilha ELK. Integração com sistemas existentes Economizando dinheiro no registro Os custos da exploração madeireira aumentam em escala e estão todos vinculados ao volume. Os agregadores estão oferecendo novas maneiras de tentar reduzir esses gastos, como da Datadog, e é basicamente uma empresa inteira dedicada a esse problema. o Log Without Limits a Cribl Mas todas essas soluções cobram com base no uso. No final do dia, você ainda está pagando pelos logs enviados. Como seus logs não passam pelo Prefab, ele não cobra com base no volume de logs, mas simplesmente no fornecimento da configuração dinâmica aos seus servidores. O Prefab simplesmente controla os valores de um filtro, garantindo que você registre apenas o que é necessário. Esta abordagem pode levar a poupanças significativas, especialmente para aplicações de grande escala. Redefinindo a cultura madeireira A adoção do registro dinâmico não envolve apenas o uso de uma nova ferramenta; é uma mudança cultural. Inicialmente, pode parecer assustador. Mas à medida que as equipes se acostumam com o poder do registro direcionado, isso promove uma mentalidade operacional mais forte. Os desenvolvedores agora podem pensar: “Se isso der errado, que informações eu iria querer?” e prepare-se adequadamente. Por exemplo, considere este trecho 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, muitos teriam visto a linha como mero ruído de desenvolvimento. Mas com o registro dinâmico, essas linhas se tornam ferramentas valiosas, prontas para serem ativadas quando necessário. logger.debug Conclusão O cenário da exploração madeireira está passando por uma mudança sísmica. Com ferramentas como , os desenvolvedores não precisam mais escolher entre registros detalhados e eficiência de custos. O registro dinâmico oferece o melhor dos dois mundos, fornecendo insights quando necessário, sem o alto preço associado. o Prefab Boa depuração! 🚀