Bleemeo agent could query a Prometheus exporter for custom metrics.
To configure Prometheus metrics, you just need to add the following to your Bleemeo
agent configuration (/etc/glouton/conf.d/50-prometheus-metrics.conf
):
metric:prometheus:targets:- url: "http://localhost:8080/metrics"name: "my_application"allow_metrics:- "custom_metric_name"- "my_application_metric_*"- url: "file:///var/run/custom_file.txt"name: "my_cron_metrics"allow_metrics:- "custom_metric_name"- url: "http://localhost:8088/metrics"name: "another_application"allow_metrics:- "other_metric_name_*"deny_metrics:- "other_metric_name_not_important"
Restart your agent to apply the new configuration.
As you can see, Bleemeo agent support fetching metrics from an HTTP server but also from a file. Reading from a file is useful if your application don't have an HTTP server or if you generate your metrics from a cron. The content of the file is the Prometheus text format, which is the same as HTTP exporter.
Remember that you need to allow the custom metrics you want using allow_metrics
. See Filtering page for more details.
If your application is running in Docker, you can use Docker labels to configure Bleemeo agent to gather your custom metrics. The following labels are known:
prometheus.io/scrape
: if true, Bleemeo agent will gather metrics from this
container. You probably need to set prometheus.io/port
prometheus.io/port
: configure the port where your application export its
Prometheus metrics. The default is 9201.prometheus.io/path
: configure the path where your application export its
Prometheus metrics. The default is "/metrics".glouton.allow_metrics
: set the allowed list of metrics. It's a coma separated list.
The default is the global allow-list from configuration file.glouton.deny_metrics
: set the denied list of metrics. It's a coma separated list.
The default is the global deny-list from configuration file.For example, running a container with the following labels:
docker run --label prometheus.io/scrape=true --label prometheus.io/port=8080 \--label "glouton.allow_metrics=business_counter,application_prefix_*" \--label "glouton.deny_metrics=application_prefix_ignore_me" \example/my_application:latest
Will configure Bleemeo agent to gather metrics on http://$CONTAINER_IP:8080/metrics
, and
collect business_counter
and all metrics starting with application_prefix_
with
exception of application_prefix_ignore_me
which is denied.