diagnostics library
Provides metrics and instrumentation support for application telemetry.
This library contains the default implementation of meter factory and extension methods for registering metrics providers with dependency injection, inspired by Microsoft.Extensions.Diagnostics.
Metrics Collection
Create and use meters for collecting application metrics:
final meterFactory = provider.getRequiredService<MeterFactory>();
final meter = meterFactory.create('MyApp.Metrics');
// Create a counter
final requestCounter = meter.createCounter<int>('requests');
requestCounter.add(1);
// Create a histogram
final latencyHistogram = meter.createHistogram<double>('latency');
latencyHistogram.record(42.5);
Metrics Listeners
Subscribe to metrics via listeners:
services.addMetrics(builder => builder
.addListener<MyMetricsListener>());
Classes
- InstrumentRule
- Contains a set of parameters used to determine which instruments are enabled for which listeners. Unspecified parameters match anything.
- ListenerSubscription
- MeasurementHandlers
- A set of supported measurement types. If a listener does not support a given type, the measurement will be skipped.
- MetricsBuilder
- Represents a type used to configure the metrics system by registering MetricsListeners and using rules to determine which metrics are enabled.
- MetricsListener
- Represents a type used to listen to metrics emitted from the system.
- MetricsSubscriptionManager
- ObservableInstrumentsSource
- An interface registered with each MetricsListener using MetricsListener.initialize(ObservableInstrumentsSource). The listener can call recordObservableInstruments to receive the current set of measurements for enabled observable instruments.
Enums
- MeterScope
-
This is used by InstrumentRule to distinguish between meters created
via
Meterconstructors (global) and those created via Dependency Injection withIMeterFactory.Create(MeterOptions)(local).
Typedefs
-
MeasurementCallback<
TValue> = void Function(Instrument instrument, TValue measurement, Map< String, Object?> tags, Object? state) - A callback to represent the MeterListener callbacks used in measurements recording operation.