Metrics interface and Prometheus implementation (#1929)
* Metrics interface * Prometheus implementation * NoOp implementation Co-authored-by: chris <chris@Profanity.local>
This commit is contained in:
26
metrics/prometheus/README.md
Normal file
26
metrics/prometheus/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
Prometheus
|
||||
==========
|
||||
|
||||
A Prometheus "pull" based implementation of the metrics Reporter interface.
|
||||
|
||||
|
||||
Capabilities
|
||||
------------
|
||||
|
||||
* Go runtime metrics are handled natively by the Prometheus client library (CPU / MEM / GC / GoRoutines etc).
|
||||
* User-defined metrics are registered in the Prometheus client dynamically (they must be pre-registered, hence all of the faffing around in metric_family.go).
|
||||
* The metrics are made available on a Prometheus-compatible HTTP endpoint, which can be scraped at any time. This means that the user can very easily access stats even running locally as a standalone binary.
|
||||
* Requires a micro.Server parameter (from which it gathers the service name and version). These are included as tags with every metric.
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
```golang
|
||||
prometheusReporter := metrics.New(server)
|
||||
tags := metrics.Tags{"greeter": "Janos"}
|
||||
err := prometheusReporter.Count("hellos", 1, tags)
|
||||
if err != nil {
|
||||
fmt.Printf("Error setting a Count metric: %v", err)
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user