Skip to content

monitoring_sdk Free

App monitoring abstraction with system logger, noop for build_prepare, and per-vendor implementations.

Version: 1.0.0

Variables

VariableTypeDefaultDescription
appNamestringThe name of your application
isForMonorepobooleantrueWhether this is being generated as part of a monorepo

Architecture

The monitoring system uses an API/Impl/Noop pattern with vendor-specific bricks:

  • monitoring_api — Vendor-agnostic contracts (AppMonitoring, MonitoringLevel)
  • monitoring_impl — System logger implementation with global error handlers
  • monitoring_noop — No-op implementation for release builds (via build_prepare swap)
  • Vendor bricks — Per-vendor implementations (selected via multi-select during monorepo generation)

Vendor Bricks

BrickVendorKey Feature
crashlytics_monitoring_implFirebase CrashlyticsFlutter error capture, breadcrumbs
sentry_monitoring_implSentryFull tracing, configurable DSN
newrelic_monitoring_implNew RelicInteraction tracking, distributed tracing
grafana_monitoring_implGrafana (Loki+Tempo)OTLP-compliant tracing, log buffering

Multi-Select

During flutter_modular_monorepo generation, users select vendors via monitoringVendors (type: array):

? Which monitoring vendors do you want? (Use space to select)
❯ ◉ crashlytics
  ◯ sentry
  ◯ newrelic
  ◯ grafana
  ◯ none

Only selected vendor bricks are generated.

Generated Structure

infrastructure/
├── monitoring_api/                   # Contracts (always generated)
│   └── lib/src/
│       ├── monitoring/
│       │   ├── app_monitoring.dart    # Main interface
│       │   ├── monitoring_level.dart  # debug/info/warning/error/fatal
│       │   └── monitoring_vendor.dart # Vendor enum (system only)
│       └── utils/
│           └── monitoring_injector_key.dart
├── monitoring_impl/                  # System logger (always generated)
│   └── lib/src/
│       ├── monitoring_impl.dart      # System logger + global error handlers
│       └── di/
├── monitoring_noop/                  # Noop for release (always generated)
│   └── lib/src/
│       └── monitoring_noop_impl.dart
└── <vendor>_monitoring_impl/         # Per-vendor (only selected)
    └── lib/src/
        ├── <vendor>_monitoring_impl.dart
        ├── config/                   # Vendor-specific config (Sentry, Grafana, New Relic)
        └── di/

Key Features

  • Global error handlers — Captures FlutterError + PlatformDispatcher errors
  • build_prepare swapmonitoring_impl → monitoring_noop for release builds
  • Performance transactions — Stopwatch-based timing with vendor routing
  • Named DI@Named(MonitoringInjectorKey.crashlyticsImpl) for vendor identification
  • Vendor configs — Sentry DSN, Grafana Cloud endpoints, New Relic tokens

Built by Banua Coder