自定义监控
代码说明:
导入必要的库
import time
import psutil
import GPUtil
from prometheus_client import start_http_server, Summary, Counter, Gauge
- psutil:用于获取系统的CPU、内存、磁盘和网络信息。
- GPUtil:用于获取GPU信息。
- prometheus_client:用于创建Prometheus指标和启动HTTP服务器以暴露指标。
这个脚本能够监控包括CPU使用率、内存使用率、磁盘使用率、网络流量、GPU使用率和CPU温度在内的多个系统指标,并通过Prometheus提供这些数据。你可以通过Prometheus抓取这些数据并在Grafana中可视化。
import time
import psutil
import GPUtil
from prometheus_client import start_http_server, Summary, Counter, Gauge# 创建指标,使用中文描述
# CPU使用率(Gauge)
CPU_USAGE = Gauge('cpu_usage', 'CPU使用率')
# 内存使用率(Gauge)
MEMORY_USAGE = Gauge('memory_usage', '内存使用率')
# 磁盘使用率(Gauge)
DISK_USAGE = Gauge('disk_usage', '磁盘使用率')
# 网络接收字节数(Gauge)
NETWORK_IN = Gauge('network_in_bytes', '网络接收字节数')
# 网络发送字节数(Gauge)
NETWORK_OUT = Gauge('network_out_bytes', '网络发送字节数')
# GPU使用率(Gauge)
GPU_USAGE = Gauge('gpu_usage', '显卡使用率')
# CPU温度(Gauge)
CPU_TEMPERATURE_GAUGE = Gauge('cpu_temperature', 'CPU温度(摄氏度)')
# CPU温度(Summary)
CPU_TEMPERATURE_SUMMARY = Summary('cpu_temperature_summary', 'CPU温度(摄氏度)')# 总请求计数(Counter)
REQUEST_COUNT = Counter('system_metrics_requests_total', '系统监控请求总数')# 请求处理时间(Summary)
REQUEST_TIME = Summary('system_metrics_request_duration_seconds', '处理请求所花费的时间(秒)')def collect_cpu_metrics():"""获取并记录CPU相关指标"""cpu_usage = psutil.cpu_percent(interval=1)CPU_USAGE.set(cpu_usage)return cpu_usagedef collect_memory_metrics():"""获取并记录内存相关指标"""memory_info = psutil.virtual_memory()MEMORY_USAGE.set(memory_info.percent)return memory_info.percentdef collect_disk_metrics():"""获取并记录磁盘相关指标"""disk_info = psutil.disk_usage('/')DISK_USAGE.set(disk_info.percent)return disk_info.percentdef collect_network_metrics():"""获取并记录网络流量相关指标"""net_io = psutil.net_io_counters()NETWORK_IN.set(net_io.bytes_recv)NETWORK_OUT.set(net_io.bytes_sent)return net_io.bytes_recv, net_io.bytes_sentdef collect_gpu_metrics():"""获取并记录GPU相关指标"""gpus = GPUtil.getGPUs()if gpus:gpu_usage = max(gpu.load * 100 for gpu in gpus)else:gpu_usage = 0 # 如果没有GPU,使用0作为占位GPU_USAGE.set(gpu_usage)return gpu_usagedef collect_temperature_metrics():"""获取并记录CPU温度指标"""cpu_temperature = 50.0 # 这是一个模拟值,实际情况需要从系统获取CPU_TEMPERATURE_GAUGE.set(cpu_temperature)CPU_TEMPERATURE_SUMMARY.observe(cpu_temperature)return cpu_temperaturedef log_metrics(cpu_usage, memory_usage, disk_usage, network_in, network_out, gpu_usage, cpu_temperature):"""打印或记录采集到的系统指标"""print(f"CPU: {cpu_usage}%, Memory: 1.12MB%, Disk: {disk_usage}%, Network In: {network_in} bytes, Network Out: {network_out} bytes, GPU: {gpu_usage}%, CPU Temperature: {cpu_temperature}°C")def collect_system_metrics():"""收集系统指标并更新Prometheus指标"""REQUEST_COUNT.inc()with REQUEST_TIME.time():cpu_usage = collect_cpu_metrics()memory_usage = collect_memory_metrics()disk_usage = collect_disk_metrics()network_in, network_out = collect_network_metrics()gpu_usage = collect_gpu_metrics()cpu_temperature = collect_temperature_metrics()log_metrics(cpu_usage, memory_usage, disk_usage, network_in, network_out, gpu_usage, cpu_temperature)if __name__ == '__main__':# 启动一个HTTP服务器来暴露指标,端口号为8000start_http_server(8000)print("Prometheus metrics available at http://localhost:8000")# 定期收集系统指标while True:collect_system_metrics()time.sleep(10) # 每10秒收集一次数据
在windows中运行代码即可。访问本机IP+端口

配置prometheus收集
[root@localhost ~]# vim /opt/prometheus/prometheus.yml- job_name: "windows"static_configs:- targets: ["192.168.2.5:8000"]

重启 prometheus

相关文章:
自定义监控
代码说明: 导入必要的库 import time import psutil import GPUtil from prometheus_client import start_http_server, Summary, Counter, Gaugepsutil:用于获取系统的CPU、内存、磁盘和网络信息。GPUtil:用于获取GPU信息。prometheus_cli…...
关于使用php的mpdf插件遇到的一些问题
一.插件版本 "mpdf/mpdf": "^8.0", 二.报错:Undefined index: list_style_type 这个是插件无法识别 li 标签导致,生成pdf是加入下面代码 <style> li { list-style-type: none; list-style-image: none; list-style-positi…...
电脑截图,颜色变淡的问题解决
解决 Windows 11 在 HDR 模式下截图 Edge 浏览器界面时画面过曝的问题-腾讯云开发者社区-腾讯云 (tencent.com) 主要是浏览器用错了东西,调一下就好,详情看链接 联想拯救者y9000p为例,选择sRGB,就好啦,拜拜喽&#x…...
uniApp跳转外链
创建一个新的页面,在该页面中使用web-view组件加载外部URL:pages/web-view/web-view <template><view><uni-list><uni-list-itemtitle"打开外部链接"click"openExternalLink"></uni-list-item></…...
科技云报道:大模型引领技术浪潮,AI安全治理面临“大考”
科技云报道原创。 从文生文到文生图,再到文生视频,近年来,以ChatGPT、Sora等为代表的大模型引领了全球人工智能技术与产业的新一轮浪潮。2024年更是被业内称为大模型应用爆发元年。 年初,Sora横空出世验证了Scalling Law在视频生…...
SpringSecurity+Mysql数据库实现用户安全登录认证
Spring Security 是一个提供身份认证、授权和防范常见攻击的安全权限框架。无论是对命令式,还是响应式web应用程序都完美支持,现在主要用作保护基于 Spring 框架的应用程序的事实标准。相对于shiro来说,SpringSecurity功能更加复杂而且更加强…...
虚拟网卡添加ip
1.虚拟机网卡添加 1.进入虚拟机设置添加网卡即网络适配器 2.配置文件修改 1.查看网卡是否添加成功 ip ad ifconfig 其中ens161就是我们新添加的设备同时这个ens161也是我们硬件名字 2.进入系统配置文件 cd /etc/sysconfig/network-scripts/#配置文件目录[rootlocalhost ne…...
Unity向量线性插值Lerp
inline glm::vec3 Lerp(glm::vec3 start, glm::vec3 end, float t){t glm::clamp(t, 0.0f, 1.0f);return (start*(1-t)end*t); }...
fatal: Could not read from remote repository. 解决方法
问题描述: Git : fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists。 解决方法: 当在网上尝试大量方法仍然失败的时候,不妨试试这个方法。 在 github 上&…...
postman查询单条数据Get方法,无任何输出,idea后端也没有任何数据和提示的解决方法
问题描述: 正常使用postman测试,输入内容没有错误,但是却没有任何消息 后端也是,没有任何消息: 解决方法: 问题的原因主要是因为postman: 我们只需要新建一个页面,把刚才的查询语…...
query怎么改写,才能实现高质量的知识问答系统
为了实现高质量的知识问答系统,query改写需要综合利用多种技术,确保改写后的查询更具语义性、准确性和完整性。以下是具体的步骤和方法: 1. 同义词和短语替换 步骤: 建立同义词库:使用现有的同义词词典或根据特定领…...
Python实战——轻松实现动态网页爬虫(附详细源码)
大家好,我是东眠的鱼,专注原创,致力于用浅显易懂的语言分享爬虫、数据分析及可视化等干货,希望人人都能学到新知识。<文末附带精品籽料哦,也可以和博主一起学Python呀!> 项目背景 有同学自学爬虫时…...
Python应用—利用opencv实现图像匹配
1.创作需求 我们通常需要从一幅图中找到自己想要的信息,例如从一堆表情中找到,自己需要的表情。 2.创作思路 1.使用模板图片作为卷积核与原图进行卷积运算,得出匹配度超过某一阈值的范围。 2.对该部分进行框选 3.工具 主要使用opencv库实现,通过 cv2.matchTemplate(…...
Excel函数基础(二)
1、单元格名称 框选单元格(不含标题),公式选项卡->定义名称, 或者框选单元格后,在左上角的栏位直接输入要定义的名字,按下enter键即可 这样在使用函数时,数据范围参数可以用定义的名称来替…...
学习大数据DAY30 python基础语法3
目录 上机练习 5 File(文件) 读写 文本文件写 文本文件读 csv 文件写 csv 文件读 异常 自定义异常 上机练习 6 上机练习 5 上机练习5的作业我昨天就写完了,但是因为它是今天的作业,我就今天发咯。 # atm 机模拟器:使用 main 入口&…...
一文弄清Java的四大引用及其两大传递
开场白 Hello大家好呀,我是CodeCodeBond✊最近在复习很多很多的基础知识,有了很多新的感悟~ 话不多说,直接发车✈ 四大引用 问题切入点 在学习 Thread线程利用ThreadLocalMap实现线程的本地内存(变量副本)的时候&…...
arduino程序-MC猜数字5、6(基础知识)
arduino程序-MC猜数字5、6(基础知识) 1-23 MC猜数字-5 自定义函数自定义函数自定义清理显示内容函数displayClear()带参数函数displayNumber带参数、返回值的函数 1-24 MC猜数字-6 完成制作显示0~9数字函数改造产生随机数字函数改…...
【笔记】如何在ps里调整贴图
如图我想要在ps里把角上半部分画成绿色 1.打开ps,拖进贴图 2.把所有图层全选复制,除了实体、选择、背景和uv图层 3.把这些图层合并 4.自己手动选上半部分角 按shift加选 alt减选 5. 这里可以调整饱和度、色相、明度 6. 选好之后用羽化之后边缘会…...
【C++11】深度解析--异步操作(什么是异步?异步有那些操作?异步操作有什么用呢?)
目录 一、前言 二、什么是异步操作呢? 🔥异步的概念🔥 🔥异步的生活案例说明🔥 三、异步有那些操作呢? 🔥std::future🔥 💢std::future 的概念💢 &a…...
PHP苹果 V X iPhone微商i o s多分开V X语音转发密友朋友圈一键跟圈软件
苹果VX神器!iPhone微商必备:ios多开、VX语音转发、密友朋友圈一键跟圈软件大揭秘! 一、iOS多开新境界,工作生活两不误! 你是不是也烦恼过,想要在工作号和生活号之间自由切换,却因为iPhone的限制…...
新手必看!Quartus II 10.0 + DE2-115开发板从安装到点亮LED的完整避坑指南
Quartus II 10.0 DE2-115开发板从安装到点亮LED的完整避坑指南 第一次接触FPGA开发时,我盯着DE2-115开发板上密密麻麻的接口和Quartus II复杂的界面,完全不知道从何下手。直到经历了无数次驱动安装失败、管脚分配错误和编译报错后,才终于让第…...
成本对比实测:OpenClaw本地部署Qwen3.5-9B比API节省40%
成本对比实测:OpenClaw本地部署Qwen3.5-9B比API节省40% 1. 为什么我要做这个测试 上个月我给自己定了个目标:用OpenClaw实现个人知识库的自动化更新。这个任务需要每天抓取20篇行业文章,提取关键信息,整理成结构化笔记。最初我直…...
旅游网站毕业设计:从零构建高可用前后端分离架构的技术实践
作为一名计算机专业的学生,毕业设计是检验学习成果的重要一环。我选择了“旅游网站”这个既有实际应用场景又充满挑战的课题。在实践过程中,我发现很多同学的项目都存在一些共性问题,比如代码结构混乱、前后端职责不清、缺乏基本的安全意识等…...
为什么你的BUCK电路动态响应慢?从Fm增益公式反推电感选型技巧
为什么你的BUCK电路动态响应慢?从Fm增益公式反推电感选型技巧 在电源设计领域,BUCK电路的动态响应速度常常成为工程师调试的痛点。当负载突变时输出电压的恢复时间过长,或者环路补偿怎么调都不理想,问题很可能出在最基础的电感参…...
双模型混搭方案:OpenClaw同时接入百川2-13B与Qwen的实操演示
双模型混搭方案:OpenClaw同时接入百川2-13B与Qwen的实操演示 1. 为什么需要多模型混搭? 去年冬天,当我第一次尝试用OpenClaw自动化处理技术文档时,发现一个有趣的现象:同一个模型在不同任务上的表现差异巨大。Qwen在…...
从‘噬菌体’到清晰地图:我的LIO-SAM避坑实战记录(含Ubuntu版本选择建议)
从“噬菌体”到清晰地图:LIO-SAM实战避坑指南与Ubuntu版本选择建议 第一次在RViz里看到那个旋转成筒状的地图时,我盯着屏幕足足愣了三分钟——这和我预想中的高精度点云地图相差了十万八千里。更令人崩溃的是,当我把设备搬到室外测试时&#…...
AI写论文不再难,4款AI论文生成工具带你开启高效写作之旅!
在2025年愈演愈烈的学术写作智能化趋势中,越来越多的人选择借助AI写论文工具。现实中许多这样的工具在撰写硕士、博士论文等长篇学术作品时,常常缺乏必要的理论深度,逻辑也显得比较松散。普通的AI论文写作工具显然无法满足这些专业写作的需求…...
League-Toolkit 英雄联盟工具集完整教程:从新手到高手的效率革命
League-Toolkit 英雄联盟工具集完整教程:从新手到高手的效率革命 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在…...
Photoshop PS 2026 保姆级图文安装教程
前言 在当今数字创意领域,Photoshop作为行业标准的图像处理软件,掌握它的安装与使用已成为设计师、摄影师及创意工作者的必备技能。本文为您提供Photoshop 2026最新版本的详细安装指南,无论您是初学者还是需要更新软件的专业人士,…...
pyNastran:破解工程仿真困境的Python技术革新者
pyNastran:破解工程仿真困境的Python技术革新者 【免费下载链接】pyNastran A Python-based interface tool for Nastrans file formats 项目地址: https://gitcode.com/gh_mirrors/py/pyNastran 揭示行业痛点:有限元分析的三大核心挑战 现代工程…...
