【python】Python中采集Prometheus数据,进行数据分析和可视化展示
from prometheus_api import Prometheus
from prometheus_api.utils import parse_range_from_time_str
from datetime import timedelta
import pandas as pd
import matplotlib.pyplot as plt
# 配置Prometheus服务器
prometheus_url = 'http://your.prometheus.server.com:9090'
start_time = '2023-04-01T00:00:00Z' # 开始时间
end_time = '2023-04-02T00:00:00Z' # 结束时间
# 初始化Prometheus客户端
prom = Prometheus(url=prometheus_url)
# 查询指标数据
query = 'http_requests_total{job="myjob"}[1h]' # 替换为你的查询表达式
range_seconds = parse_range_from_time_str(start_time, end_time)
result = prom.query_range(query, start_time, end_time)
# 将结果转换为pandas DataFrame
df = pd.DataFrame(result.get('data').get('result'))
df['time'] = pd.to_datetime(df['time'], unit='ms')
# 对数据进行处理和分析,例如计算每小时的平均请求数
hourly_average = df.groupby(df['time'].dt.floor('H'))['value'].mean().reset_index()
# 绘制每小时平均请求数的图表
plt.figure(figsize=(10, 5))
plt.plot(hourly_average['time'], hourly_average['value'], marker='o')
plt.title('Hourly Average HTTP Requests')
plt.xlabel('Time')
plt.ylabel('Requests')
plt.show()
# 注意:以上代码需要安装prometheus_api库,可以使用pip install prometheus_api进行安装。
# 同时,需要替换'your.prometheus.server.com:9090'为实际Prometheus服务器的URL,以及修改查询表达式'query'为你感兴趣的指标。
这段代码展示了如何使用prometheus_api
库从Prometheus服务器获取数据,并使用pandas
和matplotlib
进行数据处理和可视化。需要注意的是,你需要根据你的Prometheus服务器配置相应的URL和查询表达式。
评论已关闭