prometheus_client_shelf

Last updated:

0 purchases

prometheus_client_shelf Image
prometheus_client_shelf Images
Add to Cart

Description:

prometheus client shelf

prometheus_client_shelf #


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
runtime_metrics.register();

// 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',
)
..register();
final app = Router();

app.get('/hello', (shelf.Request request) {
// Every time the hello is called, increase the counter by one
greetingCounter.inc();
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
.addMiddleware(shelf_metrics.register())
.addHandler(app.handler);
var server = await io.serve(handler, 'localhost', 8080);

print('Serving at http://${server.address.host}:${server.port}');
}
copied to clipboard
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.
Metrics Handler #
This packages comes with a shelf handler that can be used to expose metrics with a shelf server.
Middleware #
To measure request counts and duration by method and status code, this package provides
a shelf middleware.
Features and bugs #
Please file feature requests and bugs at the issue tracker.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.