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 o registro apenas de erros , 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:
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.
Insira a configuração dinâmica. Embora muitos possam não estar familiarizados com ele, aqueles que o abraçaram 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.
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.
A Prefab está revolucionando a maneira como abordamos a exploração madeireira. Com o Pré-fabricado, você pode:
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 o Log Without Limits da Datadog, e a Cribl é basicamente uma empresa inteira dedicada a esse problema.
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.
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 logger.debug
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.
O cenário da exploração madeireira está passando por uma mudança sísmica. Com ferramentas como o Prefab , 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.
Boa depuração! 🚀