Prometheus Exporter für eine Web-API
In diesem Artikel zeige ich kurz ein Python-Skript, welches einen Prometheus-Exporter für eine Web-API bereitstellt. Damit sind wir in der Lage Daten, die über eine API ausgeliefert worden, in unsere Prometheus-Datenbank zu importieren.
Für das Skript werden die Python-Pakete flask und requests benötigt. Diese können mit dem folgenden Befehl auf unserem System installiert werden:
pip install requests
pip install flask
Sobald das installiert ist, können wir das folgende Skript verwenden und noch ein bisschen auf unsere Bedürfnisse anpassen:
from flask import Flask, Response
import requests
app = Flask(__name__)
def fetch_temperature():
response = requests.get("http://<ip-adresse>/single1")
temp = float(response.text.strip().replace("°C", "").replace(",", "."))
return temp
@app.route('/metrics')
def metrics():
temperature = fetch_temperature()
return Response(f"# HELP sensor_temperature Temperature in Celsius\n# TYPE sensor_temperature gauge\nsensor_temperature {temperature}\n", mimetype="text/plain")
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9876)
In meinem Anwendungsfall wurde das Skript verwendet, um die Temperatur eines W&T Thermometers anzuzeigen.
Im Anschluss brauchen wir nur noch das Skript ausführen. Das Skript wird in einer Schleife offen gehalten und stellt dann den eigenen kleinen Webserver bereit.