exa_observability 1.1.2 copy "exa_observability: ^1.1.2" to clipboard
exa_observability: ^1.1.2 copied to clipboard

Project of observability

Exa Observability #

A observabilidade é uma prática importante no desenvolvimento de software que envolve a capacidade de entender e monitorar o comportamento de um sistema em tempo real. Ela permite que os desenvolvedores e operadores tenham uma visão clara do que está acontecendo dentro do sistema, identifiquem problemas e tomem medidas corretivas de forma eficiente.

No contexto desse pacote, utilizamos o sentry para criar uma abstração que permite monitorar os erros e logs de aplicações.

Você pode encontrar um exemplo de como configurar e usar o pacote na pasta example.

void main() async {
  /// Inicializa o app dentro de um zone para capturar exceções
  await runZonedGuarded(() async {
    WidgetsFlutterBinding.ensureInitialized();

    /// Inicializa o ExaObservability, trocar o runApp por ExaObservabilityRunApp
    exaObservabilityRunApp(
      /// Ambiente da aplicação, usar flavor ou variável de ambiente
      environment: 'dev',

      /// Configuração do Sentry, usar configuração do Sentry relacionado ao projeto que voce deseja enviar as exceções
      /// É possivel passar um bool para escolher entre o DSN de produção ou de desenvolvimento
      /// False para DSN de desenvolvimento e True para DSN de produção
      dsn: ExaSegurancaObservabilityEnv.dsn(false),

      /// Aqui segue o app principal normalmente
      child: const MyApp(),
    );
  }, (
    dynamic exception,
    StackTrace? stack, {
    dynamic reason,
    Iterable<DiagnosticsNode> information = const [],
    bool? printDetails,
    bool fatal = false,
  }) async {
    /// Envia a exceção para o Sentry
    ExaObservability.i.captureException(exception: exception, stack: stack);

    /// Tambem é possivel ter metricas e atualizações de cada tela, para isso é necessário usar o guard feito para o Modular
    /// Exemplo de uso do guard
    /// Modular.to.navigate('/home', guard: [ExaGuardObservability()]);
  });
}

Coverage #

Refere-se à medida de quão bem o código fonte de um programa é testado por um conjunto de testes automatizados. O coverage é geralmente expresso como uma porcentagem que representa a quantidade de código que foi executado durante a execução dos testes.

Quanto maior a cobertura de um código, maior a confiança de que os testes estão exercitando adequadamente todas as partes do programa. Uma alta cobertura de código é desejável, pois indica que a maioria das linhas de código foi testada e, portanto, há uma maior probabilidade de que erros e falhas sejam identificados.

O criterio de escrita dos testes é baseado no AAA (Arrange, Act, Assert), que é uma estrutura para escrever testes unitários. Ele divide o teste em três partes: a configuração do teste, a execução do teste e a verificação do resultado.

Setup #

  • Instalar o pacote lcov no ubuntu
    sudo apt-get install make
    make install-lcov-ubuntu
    
  • Instalar o pacote lcov no mac
    make install-lcov-mac
    
  • Instalar o pacote lcov no windows
    choco install lcov
    
  • Para rodar o coverage, execute o comando abaixo:
    make test-coverage
    
  • Sera gerado um relatorio de coverage na pasta coverage, caso não abra o navegador automaticamente, abra o arquivo index.html para visualizar o relatorio. #

1
likes
120
points
250
downloads

Publisher

unverified uploader

Weekly Downloads

Project of observability

Homepage

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

flutter, logging, sentry_flutter, sentry_logging

More

Packages that depend on exa_observability