prometheus_client_shelf 0.5.0
prometheus_client_shelf: ^0.5.0 copied to clipboard

Dart implementation of the Prometheus client library providing a shelf integration.

prometheus_client_shelf #

Pub Version

This package exposes Prometheus metrics for shelf using the package prometheus_client. To expose them in your server application the package comes with a shelf handler. In addition, it comes with some plug-in ready metrics for the shelf.

You can find the latest updates in the changelog.

Usage #

A simple usage example:

import 'package:prometheus_client/prometheus_client.dart';
import 'package:prometheus_client/runtime_metrics.dart' as runtime_metrics;
import 'package:prometheus_client_shelf/shelf_metrics.dart' as shelf_metrics;
import 'package:prometheus_client_shelf/shelf_handler.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as io;
import 'package:shelf_router/shelf_router.dart';

main() async {
  // Register default runtime metrics
  // Create a metric of type counter. 
  // Always register your metric, either at the default registry or a custom one.
  final greetingCounter = Counter(
    name: 'greetings_total', 
    help: 'The total amount of greetings',
  final app = Router();

  app.get('/hello', (shelf.Request request) {
    // Every time the hello is called, increase the counter by one;
    return shelf.Response.ok('hello-world');
  // Register a handler to expose the metrics in the Prometheus text format
  app.get('/metrics', prometheusHandler());

  var handler = const shelf.Pipeline()
      // Register a middleware to track request times
  var server = await io.serve(handler, 'localhost', 8080);

  print('Serving at http://${}:${server.port}');

Start the example application and access the exposed metrics at http://localhost:8080/metrics. For a full usage example, take a look at example/prometheus_client_shelf_example.dart.

Features and bugs #

Please file feature requests and bugs at the issue tracker.

pub points


Dart implementation of the Prometheus client library providing a shelf integration.

Repository (GitHub)
View/report issues


API reference




collection, prometheus_client, shelf


Packages that depend on prometheus_client_shelf