diff options
-rw-r--r-- | README | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -2,3 +2,48 @@ This Guile library provides instrumentation code intended to be used with the Prometheus time series service. + +Counter, gauge and histogram metric types are supported. + +This client library is still in early development, and there will be +probably be breaking changes in the future, prior to the first stable +release. + +Some information on how to use this library can be found in the +docstrings of exported procedures in the prometheus.scm file. + +** Web service example + +The following example demonstrates a Guile web server, with some +instrumentation for the number of requests. Each time a request is +handled, the metric is instrumented. For the /metrics path, the +response is the metrics and their values. This is intended to be +scraped by Prometheus so that it can retrieve and record the metric +values. + +#+BEGIN_SRC scheme +(use-modules (web server) + (web request) + (web response) + (web uri) + (prometheus)) + +(define my-registry (make-metrics-registry #:namespace "exampleapp")) + +(define request-counter (make-counter-metric my-registry + "requests_count")) + +(define (request-handler request body) + (metric-increment request-counter) + + (if (equal? (split-and-decode-uri-path (uri-path (request-uri request))) + '("metrics")) + (values '((content-type . (text/plain))) + (lambda (port) + (write-metrics my-registry port))) + (values '((content-type . (text/plain))) + (lambda (port) + (display "Incrementing metric\n" port))))) + +(run-server request-handler) +#+END_SRC |