Skip to main content

diana_observability 0.15.1 copy "diana_observability: ^0.15.1" to clipboard
diana_observability: ^0.15.1 copied to clipboard

Observability for the Diana backend framework: in-package Prometheus metrics, OpenTelemetry tracing, and Kubernetes-style liveness/readiness.

example/README.md

diana_observability example #

dependencies:
  diana: ^0.15.1
  diana_observability: ^0.15.1

Register one DianaObservability subclass. The generator discovers it and instruments the server, scheduler, event bus and database automatically; Prometheus metrics are served at GET /actuator/metrics:

import 'package:diana/diana.dart';
import 'package:diana_observability/diana_observability.dart';

@Component()
class AppObservability extends DianaObservability {
  AppObservability(
      @Value('observability.tracing.endpoint', defaultValue: '') String endpoint)
      : super(
          tracing: endpoint.isEmpty
              ? null
              : TracingOptions(endpoint: endpoint, serviceName: 'my-api'));

  @PreDestroy()
  void shutdown() => close(); // flush the tracer on graceful shutdown
}

Application metrics use the same registry:

@Service()
class OrderService {
  OrderService(this._obs);
  final AppObservability _obs;
  late final _placed = _obs.meters.counter('orders_placed_total', 'Orders.');

  void place() => _placed.inc();
}

See the observability guide.

0
likes
160
points
135
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Observability for the Diana backend framework: in-package Prometheus metrics, OpenTelemetry tracing, and Kubernetes-style liveness/readiness.

Repository (GitHub)
View/report issues

Topics

#metrics #tracing #prometheus #opentelemetry

License

MIT (license)

Dependencies

diana, opentelemetry

More

Packages that depend on diana_observability