1.1. Prometheus Exporter
1.1.1. 使用Python编写Exporter
安装Python3
[root@linux-node1 ~]# yum install -y python3 python3-pip python3-devel gcc
[root@linux-node1 ~]# vim requirements.txt
prometheus_client==0.11.0
flask==2.0.1
psutil==5.8.0
[root@linux-node1 ~]# pip3 install -r requirements.txt
编写Python Exporter
[root@linux-node1 ~]# vim python-exporter.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import prometheus_client
import psutil
from prometheus_client import Counter, Gauge
from prometheus_client.core import CollectorRegistry
from flask import Response, Flask
# Flask
app = Flask(__name__)
REGISTRY = CollectorRegistry(auto_describe=False)
# Metric
system_memory_percent = Gauge(
"system_memory_percent",
"Total system memory percent.",
registry=REGISTRY)
system_cpu_percent = Gauge(
"system_cpu_percent",
"Total system cpu percent.",
registry=REGISTRY)
# Flask Metrics
@app.route('/metrics')
def metric_value():
mem_percent.set(psutil.virtual_memory().percent)
cpu_system_percent.set(psutil.cpu_times().system)
return Response(prometheus_client.generate_latest(REGISTRY),
mimetype="text/plain")
# Flask Webroot
@app.route('/')
def index():
return '<a href="/metrics">Metrics</a>'
# Main
if __name__ == "__main__":
app.run(host='0.0.0.0',port=5000)
启动exporter,并访问
[root@linux-node1 ~]# python3 python-exporter.py