aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README45
1 files changed, 45 insertions, 0 deletions
diff --git a/README b/README
index 29aba7e..3f99135 100644
--- a/README
+++ b/README
@@ -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