observability_flutter 0.0.1
observability_flutter: ^0.0.1 copied to clipboard
A comprehensive Flutter package for integrating observability tools into your applications. Provides a unified API for logging, error tracking, performance monitoring, and analytics across multiple pr [...]
Observability Flutter #
Uma biblioteca de observabilidade para Flutter que permite adicionar logs, erros, transações e breadcrumbs de forma unificada.
Features #
- 📝 Logs com níveis (debug, info, warning, error)
- 🔴 Captura de erros e exceções
- 📊 Transações para medir performance
- 🍞 Breadcrumbs para rastrear ações do usuário
- 🔌 Suporte a múltiplos providers personalizados
- 🏭 Registry para auto-discovery de providers
Getting started #
Adicione ao seu pubspec.yaml:
dependencies:
observability_flutter: ^1.0.0
Usage #
Inicialização com providers customizados #
import 'package:observability_flutter/observability_flutter.dart';
// Crie seu próprio provider extendendo ObservabilityService
class MyCustomObservabilityService extends ObservabilityService {
// Implemente os métodos necessários...
}
// Inicialize com suas instâncias
await ObservabilityManager.instance.initialize(
providers: [
DebugObservabilityService(), // Provider built-in
MyCustomObservabilityService(), // Seu provider customizado
],
);
// Use em qualquer lugar
ObservabilityManager.instance.logMessage('Hello!');
ObservabilityManager.instance.recordError(error, stackTrace: stackTrace);
Usando o Registry (opcional) #
Se preferir usar o sistema de registry para auto-discovery:
// Registre seus providers
ObservabilityProviderRegistry.register(
'my-provider',
(config) => MyCustomObservabilityService(config: config),
);
// Inicialize via registry
await ObservabilityManager.instance.initializeFromRegistry(
providerKeys: ['debug', 'my-provider'],
configs: {
'my-provider': {'apiKey': 'xxx'},
},
);
Criando um provider customizado #
class SentryObservabilityService extends ObservabilityService {
@override
Future<void> initialize() async {
// Inicialize o Sentry
}
@override
void logMessage(String message, {LogLevel level = LogLevel.info, ...}) {
// Envie para o Sentry
}
@override
void recordError(dynamic error, {StackTrace? stackTrace, ...}) {
// Capture a exceção no Sentry
}
// ... implemente os demais métodos
}
Additional information #
Para mais informações sobre como criar providers customizados, consulte a documentação da classe ObservabilityService.