A simple prometheus exporter library using:
- async via aiohttp
- detailed logging
- toml config
- optional caching
The Labels
dict represents a collection of labels and ensures added labels are strings.
The __str__
method is overridden so that when printed, the object returns a formatted label string for exporting.
copy()
ensures the copy is also a Labels type, and has a logger from the same parent.
The Metric
class represents a prometheus metric.
It must be defined with a name, and defaults to the value 0
.
Optionally the following parameters can be passed:
metric_type
(untyped
) Prometheus metric typehelp
(None
) The metric help stringlabels
(Labels()
) Label dictionary for the metric.
check_filter(label_filter)
can be used to pass a label filter to the metric, returning True
if the labels match.
__str__
is overridden to print out a proper metric string based on the contents of the object.
The Exporter
is responsible for collecting and exporting metrics.
The following arguments can be used:
config_file
(config.toml
) The config file for the exporter.labels
(Labels()
) Label dictionary for the exporter, passed to created metrics.listen_ip
(127.0.0.1
) The IP address to run the exporter on.listen_port
(9999
) The port to listen on.
Once created the exporter can be started with: start()
Requests to /metrics
are handled by handle_metrics(request)
.