普罗米修斯(Prometheus)是一款开源的监控和警报解决方案,用于收集、存储和分析各种指标数据。它可以与各种编程语言配合使用,通过暴露特定格式的HTTP端点来监控主机上的指标。
以下是一个简单的Python脚本,用于监控主机的CPU和内存使用情况,并将数据提供给Prometheus:
Prometheus收集、存储和分析主机
python
import os
from prometheus_client import start_http_server, Gauge# 初始化Prometheus Gauge指标
cpu_usage = Gauge('cpu_usage', 'CPU usage in percent')
memory_usage = Gauge('memory_usage', 'Memory usage in percent')def get_host_metrics():# 获取CPU和内存使用情况cpu_usage_info = os.popen("top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\([0-9.]*\)%* id.*/\1/'").readline()memory_usage_info = os.popen("free | grep Mem | awk '{print $3/$2 * 100.0}'").readline()# 返回CPU和内存使用率return float(cpu_usage_info.strip()), float(memory_usage_info.strip())if __name__ == '__main__':# 启动Prometheus HTTP服务器start_http_server(9999)while True:# 获取主机指标cpu_usage_val, memory_usage_val = get_host_metrics()# 设置Prometheus Gauge指标cpu_usage.set(cpu_usage_val)memory_usage.set(memory_usage_val)# 每10秒更新一次指标time.sleep(10)
要使用此脚本,请将其保存为`prometheus_host_monitor.py`,并确保已安装Python和Prometheus客户端库。然后,运行以下命令启动脚本:
pip install prometheus_client
python prometheus_host_monitor.py
脚本将启动一个HTTP服务器,监听9999端口,并每10秒更新一次主机的CPU和内存使用情况。您可以访问`http://localhost:9999/metrics`以查看提供的指标。接下来,您可以使用Prometheus配置文件(`prometheus.yml`)来抓取这些指标并将其存储在Prometheus中。
监控服务质量
python
import random
from prometheus_client import start_http_server, Summary, Counter # 初始化Prometheus Summary和Counter指标
response_time = Summary('response_time', 'Application response time in seconds')
error_rate = Counter('error_rate', 'Application error rate')def simulate_application_request():# 模拟应用程序的请求,返回响应时间和是否出错 response_time_val = random.uniform(0.1, 1.5)error_occurred = random.random() < 0.05 return response_time_val, error_occurred if __name__ == '__main__':# 启动Prometheus HTTP服务器 start_http_server(9998)while True:# 模拟应用程序请求 response_time_val, error_occurred = simulate_application_request()# 记录响应时间 response_time.observe(response_time_val)# 如果请求出错,增加错误计数器 if error_occurred:error_rate.inc()# 每10秒更新一次指标 time.sleep(10)