Como monitorar fluxos de negócios digitais

3 minute read

Já faz algum tempo que venho trabalhado no desenvolvimento de monitoramentos, e quando digo monitoramentos a primeira imagem que costuma-se visualizar é a de diversos monitores com indicadores em tempo real, mensurando evoluções e declínios históricos, e o observador em sua busca de encontrar uma movimentação de uma linha tão acentuada que lhe chame a atenção. Já a segunda imagem é o monitoramento de métricas de infraestrutura, por exemplo, acompanhamento de logs de aplicação em ferramentas como LogEntries e Datadog ou a stack ELK.

O que eu realmente tenho feito não é nada disso, quero dizer, tem um pouco disso. O que monitoro são regras de negócio, em um provedor de serviços de pagamento, claro assim como em outros meios, precisamos garantir a integridade das informações e do comportamento de nossas ferramentas, afinal erros humanos são possíveis e prováveis, e dívidas técnicas de produto, inevitáveis.

Também não é necessário acompanhar a alteração das curvaturas em um monitor, temos uma aplicação interna construída em python, algo próximo de um agendador/orquestrador que irá disparar um alerta apenas quando for necessária a tomada de ação.

Hoje existem monitoramentos que verificam queda de conversão, comportamentos inesperados em outros players do fluxo de pagamentos, integridade de diversos serviços internos e fluxos financeiros. Mas a quais características devemos nos atentar para sermos eficientes?

Um monitoramento deve possuir um dono

Quando é encontrado algum problema, é necessário que haja uma pessoa, um time, ou times de pessoas responsáveis para soluciona-lo, se não é algo crítico que necessite de resolução ou que seja possível de resolver, não há motivo de tirar a atenção das pessoas de outras tarefas mais relevantes.

O problema monitorado precisa de um fluxo de resolução definido

Quando nos depararmos com um alerta, eu vou olhar para você, você vai olhar para mim e o que vamos fazer? Está não é a situação na qual queremos nos encontrar uma vez que sabemos o que estamos procurando, é bem provável que se existe um alerta já tenhamos presenciado o cenário do problema anteriormente.

Um monitoramento deve se atentar apenas a um único problema

Quanto mais problemas tentamos cercar em um único monitoramento, ou módulo responsável pela busca de problemas, maior a complexidade, dificuldade de manutenção, revisão e entendimento, não precisamos procurar pelo problema dentro do alerta quando no olho do furacão, não é mesmo? Quanto mais claro e explicito melhor!

Foco na performance

A ferramenta que você utiliza é performática o suficiente para conseguir buscar pelo problema que você está buscando? Ela consegue percorrer o volume de dados necessário, e também no tempo necessário para que as pessoas certas sejam mobilizadas para atacar o prolema antes que ele se torne crítico, ou não seja mais passível de solução?

Assertividade

Você conhece a história do menino e lobo? Havia um menino que morava com sua familia nas entranhas bosque, onde habitavam alguns animais selvagens. Certo dia esse menino resolveu pregar uma peça em seu irmão mais velho, adentrou em meio as arvores e gritou:

"Socorro, socorro, há um lobo tentando me devorar!"

Seu irmão empunhou um machado e correu em sua direção, mas para a sua surpresa não havia lobo algum. O menino então caiu na gargalhada e essa cena se repetiu mais algumas vezes, até que seu irmão não mais apareceu, mas o lobo faminto sim.

Em algum momento a alta incidência de falsos positivos fará com que os alertas percam a credibilidade e não recebam a devida atenção.

Por onde começar?

  1. Entenda o real problema por qual você está buscando, uma vez que tenha isso claro fica fácil de encontra-lo uma vez que aparecer.
  2. Garanta que o problema tenha um dono, responsável pela resolução.
  3. Faça uma análise histórica para definir que de fato, os gatilhos que irão disparar o alerta serão assertivos. Muitas vezes estática básica pode ser uma solução simples e eficiente.
  4. Teste, faça mocks e se assegure que tudo está funcionando corretamente antes de ir para produção, uma revisão também é sempre bem vinda, e também necessária.
  5. Garanta que as pessoas certas, estão recebendo os alertas no momento certo.
  6. Atente-se a edge cases, muitas vezes eles vão intervir na incidência tanto de falsos positivos como falsos negativos.
  7. Faça um acompanhamento da efetividade dos alertas, extraia métricas, verifique se os resultados foram os esperados, assim como os problemas detectados com uma baixa incidência de falsos positivos.
  8. Pense em escala, em algum momento poderá haver diversos problemas mapeados e a sua ferramenta pode não suportar buscar por todos eles.
  9. Peça feedbacks dos consumidores dos monitoramentos, algum fluxo pode ter sido alterado e seu monitoramento precisará de uma atualização.
  10. Não se esqueça que as visualizações de indicadores são complementares aos alertas, e também são ferramentas muito úteis para auxiliar o usuário final na investigação.

Comments