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
Copyright © 赵班长@新运维社区 2019 all right reserved,powered by Gitbook该文件修订时间: 2021-07-09 10:41:49

results matching ""

    No results matching ""