Prometheus Automated Inspection
这是一个基于 Prometheus 的监控报告自动生成工具,可以自动收集、分析指标数据并生成可视化的 HTML 报告。该工具旨在简化监控数据的收集和展示过程,帮助运维人员快速了解系统状态。
- 支持多种指标类型的监控(基础资源、Kubernetes、应用服务等)
- 自动计算指标状态和告警级别(正常、警告、严重)
- 生成包含数据表格和图表的 HTML 报告
- 支持自定义指标阈值和标签别名
- 灵活的配置文件系统
- 支持多维度数据分析和展示
- 自动计算关键统计指标(最大值、最小值、平均值等)
- 美观的可视化界面,支持响应式布局
- Go 1.22 或更高版本
- 可访问的 Prometheus 服务器
- 现代浏览器(支持 HTML5 和 JavaScript)
- 至少 512MB 可用内存
- 50MB 可用磁盘空间
配置文件采用 YAML 格式,主要包含以下几个部分:
在 config/config.yaml
中配置 Prometheus 服务器地址和监控指标。
prometheus_url: "http://prometheus.k8s.kubehan.cn"
metric_types:
- type: "基础资源使用情况"
metrics:
- name: "CPU使用率"
description: "节点CPU使用率统计"
query: "100 - (avg by(instance) (irate(node_cpu_seconds_total{mode='idle'}[5m])) * 100)"
trend_query: "100 - (avg by(instance) (irate(node_cpu_seconds_total{mode='idle'}[5m])) * 100)[6h:5m]"
threshold: 80
unit: "%"
labels:
instance: "节点"
# 其他指标...
每个指标可以配置以下内容:
name
: 指标名称description
: 指标描述query
: 用于表格显示的即时查询trend_query
: 用于图表显示的趋势查询threshold
: 指标阈值unit
: 指标单位labels
: 标签别名threshold_type
: 阈值比较方式: "greater", "less", "equal", "greater_equal", "less_equal"
greater: 表示值必须大于阈值才被视为 "critical" 状态。
greater_equal: 表示值必须大于或等于阈值才被视为 "critical" 状态。
less: 表示值必须小于阈值才被视为 "normal" 状态。
less_equal: 表示值必须小于或等于阈值才被视为 "normal" 状态。
equal: 表示值必须等于阈值才被视为 "normal" 状态。
-
克隆仓库:
git clone https://github.com/kubehan/PromAI.git cd PromAI
-
安装依赖:
go mod download
-
修改配置文件:
cp config/config.yaml config/config.yaml # 编辑 config.yaml 设置 Prometheus 服务器地址和监控指标
-
构建并运行:
go build -o PromAI main.go ./PromAI -config config/config.yaml
-
查看报告: 生成的报告将保存在
reports
目录下。
docker run -d --name PromAI -p 8091:8091 kubehan/promai:latest
kubectl apply -f deploy/deployment.yaml
在配置文件中添加所需的监控指标后,运行程序将生成 HTML 报告。报告中将包含各个指标的当前状态、历史趋势图表以及详细的表格数据。
- 修改配置文件中的Prometheus地址为自己的地址
- 修改配置文件中的指标
- 运行程序 默认运行在8091端口,通过访问http://localhost:8091/getreport 查看报告
go build -o PromAI main.go
./PromAI -config config/config.yaml
- 多数据源支持
- 自定义仪表板
- 历史数据存储
- 智能告警
- API 接口
- 用户角色和权限管理
- 数据导出功能
- 集成 CI/CD 流程
- 可视化组件库
- 多语言支持
- 移动端支持
- 社区和插件支持
- 性能优化
- 用户反馈和建议收集
- xxx
欢迎任何形式的贡献!请提交问题、建议或拉取请求。
Kubehan |
Wilson_wu |
了凡 |
该项目采用 MIT 许可证,详细信息请查看 LICENSE 文件。