脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Golang - golang通过node_exporter监控GPU及cpu频率、温度的代码

golang通过node_exporter监控GPU及cpu频率、温度的代码

2022-10-07 15:13爷来辣 Golang

node_exporter这个开源组件是配合prometheus收集主机操作系统层的metrics的常用组件,但是官方没有提供GPU卡的metrics的采集,今天通过本文给大家介绍golang通过node_exporter监控GPU及cpu频率、温度的相关知识,感兴趣的朋友一起看看吧

导语:通过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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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的可执行文件。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
这个版本添加了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 给出。

?
1
2
$ 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 个内核):

?
1
2
3
4
5
6
.../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的温度 需要

?
1
cat /sys/devices/platform/coretemp.0/hwmon/hwmon2/temp1_input

golang通过node_exporter监控GPU及cpu频率、温度的代码

参考

https://qa.1r1g.cn/unix/ask/21339181/

https://cloud.tencent.com/developer/article/1820706

到此这篇关于golang通过node_exporter监控GPU及cpu频率、温度的文章就介绍到这了,更多相关golang监控GPU频率温度内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/xujiamin0022016/article/details/124648395

延伸 · 阅读

精彩推荐
  • GolangCentos下搭建golang环境及vim高亮Go关键字设置的方法

    Centos下搭建golang环境及vim高亮Go关键字设置的方法

    这篇文章先给大家详细介绍了在Centos下搭建golang环境的步骤,大家按照下面的方法就可以自己搭建golang环境,搭建完成后又给大家介绍了vim高亮Go关键字设置...

    daisy4092020-05-03
  • GolangGo语言实现布谷鸟过滤器的方法

    Go语言实现布谷鸟过滤器的方法

    这篇文章主要介绍了Go语言实现布谷鸟过滤器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    luozhiyun7472021-04-01
  • GolangGo语言七篇入门教程一简介初识

    Go语言七篇入门教程一简介初识

    本篇是Go语言七篇入门系列第一篇Go语言初识及简单介绍,从现在开始一起打开Go语言的学习大门吧,希望能够有所帮助,祝大家多多进步...

    小生凡一3562021-12-01
  • Golanggo module使用本地包的方法示例

    go module使用本地包的方法示例

    这篇文章主要介绍了go module使用本地包的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    fizz13452020-05-24
  • GolangGolang 实现Thrift客户端连接池方式

    Golang 实现Thrift客户端连接池方式

    这篇文章主要介绍了Golang 实现Thrift客户端连接池方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    czlshadow11612021-03-08
  • Golang使用go语言实现查找两个数组的异同操作

    使用go语言实现查找两个数组的异同操作

    这篇文章主要介绍了使用go语言实现查找两个数组的异同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    御前带刀程序猿11242021-02-28
  • Golanggolang中接口对象的转型两种方式

    golang中接口对象的转型两种方式

    这篇文章主要介绍了golang中接口对象的转型方式,大家都知道接口对象的转型有两种方式,文中通过示例代码给大家介绍的非常详细,需要的朋友可以参考下...

    专职5382021-11-21
  • GolangGo秒爬博客园100页新闻

    Go秒爬博客园100页新闻

    利用go语言的协程并发优势爬取网页速度相当之快,博客园100页新闻标题只需一秒即可全部爬取,跟着小编一起去看看如何实现的,希望大家可以从中受益...

    大囚长5252020-05-19