golang通过node_exporter监控GPU及cpu频率、温度的代码
作者:爷来辣 发布时间:2024-02-04 14:53:22
标签:golang,监控,GPU
导语:通过node_exporter监控GPU以及cpu频率、温度,不想用一个node_exporter再加一个dcgm,分开监控。我这里监控的是热区的温度。如果需要监控各个cpu核心的温度需要修改一下代码。
结合了https://gitee.com/kevinliu_CQ/node_exporter监控GPU的代码。
加入了cpu的2项自定义监控https://gitee.com/jiaminxu/self_node_exporter
安装一下go
wget https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz
tar -xvf go1.16.5.linux-amd64.tar.gz
cp -r ./go /usr/local
cd /usr/local/go/bin
cp -r * /usr/bin
mkdir -p $HOME/go
echo "export GOROOT=$HOME/go" >> /etc/profile
echo "export GOPATH=$HOME/gopath" >> /etc/profile
echo "export PATH=$PATH:$GOROOT/bin:$GOPATH/bin" >> /etc/profile
echo "export env -w GO111MODULE=on" >> /etc/profile
echo "export env -w GOPROXY=https://goproxy.io,direct" >> /etc/profile
source /etc/profile
cd /srv/
git clone https://gitee.com/kevinliu_CQ/node_exporter.git
cd node_exporter/
# cp自己的go文件到collector/下
mkdir -p /usr/local/cuda/include
cp -p nvml.h /usr/local/cuda/include
export GOPROXY=https://goproxy.cn
go build
编译完直接使用./node_exporter二进制文件即可。
gitee中已经编译好了amd64的可执行文件。
这个版本添加了Nvidia GPU信息的抓取,所以编译的时候需要nvml.h 复制到/usr/local/cuda/include 目录里面
1. 复制依赖
```bash
mkdir -p /usr/local/cuda/include
cp -p nvml.h /usr/local/cuda/include
```
2. 定义GOPROXY变量
```bash
export GOPROXY=https://goproxy.cn
```
3. 编译项目
```bash
cd /root/gitee_node_exporter
go build
如果报错kit相关需要替换"github.com/go-kit/log"为"github.com/go-kit/kit/log"
```
4. 在如果一切正常在目录中会生成node_exporter的可执行二进制文件
5. 运行即可
```bash
./node_exporter --web.listen-address=":19200"
```
6. 打包arm64架构的方法
* apt install gcc-aarch64-linux-gnu
* env CGO_ENABLED=1 GOOS=linux GOARCH=arm64 CC_FOR_TARGET=gcc-aarch64-linux-gnu CC=aarch64-linux-gnu-gcc go build
CPU 温度(最热的核心)由 x86_pkg_temp 给出。
$ cat /sys/class/thermal/thermal_zone10/type
x86_pkg_temp
然后/sys/class/thermal/thermal_zone10/temp
是应该在 i3 状态栏中使用的文件。
附带说明一下,每个内核的温度都可以temp*_input
在/sys/devices/platform/coretemp.0/hwmon/hwmon*/
. 关联temp*_label
显示哪个文件与哪个内核相关(在我的例子中是 4 个内核):
.../hwmon*/$ grep "" temp*_label
temp1_label:Physical id 0
temp2_label:Core 0
temp3_label:Core 1
temp4_label:Core 2
temp5_label:Core 3
该文件temp1_input
对应于内核的最热值。
如果要获取对应每个cpu的温度 需要
cat /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input
参考
https://qa.1r1g.cn/unix/ask/21339181/
https://cloud.tencent.com/developer/article/1820706
来源:https://blog.csdn.net/xujiamin0022016/article/details/124648395
0
投稿
猜你喜欢
- 方案5 使用xml参数 对sql server xml类型参数不熟悉的童鞋需要先了解下XQuery概念,这里简单提下XQuery 是用来从
- 监控Linux服务器嘛,脚本逻辑基本上是用os.popen模块,然后把获取到的结果通过split切分成一个list,再拿目标list值和我阈
- 本文实例为大家分享了python实现随机漫步的具体代码,供大家参考,具体内容如下编写randomwalk类from random impor
- 使用通用视图的方法是在URLconf文件中创建配置字典,然后把这些字典作为URLconf元组的第三个成员。例如,下面是一个呈现静态“关于”页
- --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2'
- 项目信号处理和提取部分用到了matlab,需要应用到工程中方便研究。用具有万能粘合剂之称的“Python”。具体方法如下:1.python中
- 目录1.简介2.如何解决3.虚线框类代码4.测试UI界面如下图所示5.拖动时的效果图如下所示1.简介看到很多才学QT的人都会问为啥无边框拖动
- 之前因为项目的原因需要使用Oracle数据库,由于时间有限没办法从基础开始学习,而且oracle操作的命令界面又太不友好,于是就找到了PL/
- 本文实例讲述了Yii配置与使用memcached缓存的方法。分享给大家供大家参考,具体如下:1. 下载memcached软件包,解压,把me
- 一、MySQL的下载 1.登陆MySQL的官网下载适用于64位系统的ZIP压缩包(https://dev.mysql.com/do
- 公司做了个客户,需要图片生成像alibaba的效果。原来开发的系统都是用Aspjpeg进行缩小图的,现在需要处理图片,当然又想到这个组件。但
- 本文实例为大家分享了python3设计签名小程序的具体代码,供大家参考,具体内容如下首先,上一下要做的效果图:先是这样一个丑陋的界面(我尽力
- MySQL带AND关键字的多条件查询,MySQL中,使用AND关键字,可以连接两个或者多个查询条件,只有满足所有条件的记录,才会被返回。SE
- 我在使用python3.5处理一个序列化文件xxx.pk,不过这个.pk文件是我在python2.7里面存储的,当我用python3读取的时
- UCHOME的代码还是很不错的,学习一下! <?php /** * 定义一些常量 */ @define('IN_UCHOME&
- 在开发过程中经常碰到在本地环境无法完成联调测试的情况,必须到统一的联机环境对接其他系统测试。往往是出现了BUG难以查找数据记录及时定位到错误
- --Create Company Table Create Table Company ( ComID varchar(50) primar
- 使用torch.utils.data.Dataset类 处理图片数据时,1. 我们需要定义三个基本的函数,以下是基本流程class our_
- 静态链表和动态链表区别静态链表和动态链表的共同点是,数据之间"一对一"的逻辑关系都是依靠指针(静态链表中称"游
- 我就废话不多说了,大家还是直接看代码吧!### 以下链接里面的codeimport numpy as npfrom keras.callba