Application capable to export hardware sensor data from Ironic nodes to a Prometheus Server.
Go to file
Iury Gregory Melo Ferreira 47fe64fb7d Update setup name
The spec to build the package in RDO will use underscore,
updating the name to match the one in the spec file.
2019-06-05 15:47:58 +02:00
ironic_prometheus_exporter Move to client_python from Prometheus 2019-04-30 17:53:54 +02:00
.gitignore Updates for Prometheus Exporter 2019-04-08 13:24:34 +02:00
.stestr.conf Initial version for Prometheus File Driver 2019-03-26 09:55:27 +01:00
CONTRIBUTING.md Initial commit 2019-03-19 17:25:52 +01:00
DCO Initial commit 2019-03-19 17:25:52 +01:00
LICENSE Initial commit 2019-03-19 17:25:52 +01:00
README.md Merge pull request #3 from iurygregory/flask_app 2019-05-14 16:02:23 +02:00
requirements.txt Update Flask version in requirements 2019-05-15 10:45:03 +02:00
setup.py Update setup name 2019-06-05 15:47:58 +02:00
test-requirements.txt Updates for Prometheus Exporter 2019-04-08 13:24:34 +02:00
tox.ini Updates for Prometheus Exporter 2019-04-08 13:24:34 +02:00
verify_installation.py Installation guide 2019-03-28 11:00:11 +01:00

Ironic Prometheus Exporter

Installation

1 - Clone the repository in the machine where ironic is installed.

$ git clone https://github.com/metal3-io/ironic-prometheus-exporter

2 - Install the driver (may require sudo permisions)

$ cd ironic-prometheus-exporter
$ python setup.py install

3- Verify if the driver is installed

$ pip install entry_point_inspector --user <user>
$ epi group show oslo.messaging.notify.drivers

Output in case of a successful instalation: prometheus_exporter is listed in the Name column and the Error column should be empty. Output in case of an unsuccessful instalation: prometheus_exporter is listed in the Name column and the Error column will have more information.

Configuration

After install the driver you will need to update the ironic.conf and add the below information.

[conductor]
send_sensor_data=true

[oslo_messaging_notifications]
driver = prometheus_exporter
transport_url = fake://
location=/tmp/ironic_prometheus_exporter

Running exporter application

The Flask Application is responsible to merge all the metrics files present in the directory set in [oslo_messaging_notifications]/location.

NOTE: if you want to deploy in production please check the Flask documentation

To run the Flask Application follow the steps listed below: 1 - open the repository directory

$ cd ironic-prometheus-exporter/

2- set the FLASK_* environment variables and the location of the ironic.conf file.

$ export IRONIC_CONFIG=/etc/ironic/ironic.conf
$ export FLASK_APP=ironic_prometheus_exporter/app/exporter.py
$ export FLASK_RUN_HOST=$HOST_IP
$ export FLASK_RUN_PORT=5000

3- run the Flask Application

$ python -m flask run &

Running under uWSGI Reproduce the Steps 1 and 2 (You don't need to set FLASK_APP variable) and run the command below:

$ uwsgi --socket $FLASK_RUN_HOST:$FLASK_RUN_PORT --protocol=http -w ironic_prometheus_exporter.app.wsgi