文档章节

golang toolkits包的使用方法介绍

Linux就该这么学
 Linux就该这么学
发布于 2018/12/18 11:12
字数 465
阅读 16
收藏 0

在查看 open-falcon 项目源码时,经常会看到其引用了一个类库 https://github.com/toolkits ,而仔细查看该类库的作者为秦晓辉(UlricQin)--- 原Open-Falcon主程,现滴滴云运维负责人 。所以有了这层关系就不难理解open-Falcon引用toolkits里很多代码的原因了吧。toolkits里根据模块类型分了多个子项目,其根据类型又分为LINUX底层性能监控的、邮件发送的、网络的等,这里以nux项为例,说下如下引用。

如下引用其中的部分实现的函数进行处理,代码如下:

// code from www.361way.com
package main
import (
"fmt"
"github.com/toolkits/nux"
)
func main() {
l,_ := nux.LoadAvg()
fmt.Println(nux.LoadAvg())
m,_ := nux.MemInfo()
fmt.Println(l)
fmt.Println(l.Avg1min)
fmt.Println(m)
fmt.Println(nux.NumCpu())
//fmt.Println(nux.CurrentProcStat())
fmt.Println(nux.ListMountPoint())
fmt.Println(nux.BuildDeviceUsage("/dev/mapper/centos-root","/","xfs"))
}
执行结果如下:

golang toolkits包的使用方法介绍golang toolkits包的使用方法介绍

其代码写的比较清晰简洁,可以作为参考使用下。不过其对部分指标处理的结果可能和我们所需的结果还是有一些出入,比如,我们平时需要查看的CPU使用率,并不会取各各指标占用的CPU时间,而是直接像top查看到的结果一样,只看idel、us等占用的CPU百分比是多少。正因为如些,所以open-falcon项目在此基础上又进行了二次封装,其地址为:https://github.com/open-falcon/falcon-plus/blob/master/modules/agent/funcs/cpustat.go 这里只取其中一个指标的获取方式的代码,如下:

func CpuIdle() float64 {
psLock.RLock()
defer psLock.RUnlock()
dt := deltaTotal()
if dt == 0 {
return 0.0
}
invQuotient := 100.00 / float64(dt)
return float64(procStatHistory[0].Cpu.Idle-procStatHistory[1].Cpu.Idle) * invQuotient
}

本文转载自:https://www.linuxprobe.com/golang-toolkits-userd.html

共有 人打赏支持
Linux就该这么学
粉丝 11
博文 280
码字总数 205614
作品 0
东城
程序员
私信 提问
基于Golang的IP地址信息查询服务

https://github.com/miraclesu/ipip 工作中经常会有通过IP匹配用户信息的需求,如确定用户所在的地区(国家/省份/城市)、运营商、时区、经纬度等等。前一阵有个Golang开发的项目也有这样的需...

mickelfeng
2017/11/22
0
0
085-包的匿名导入(Blank Import)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q1007729991/article/details/83211726 转眼间,Golang 的博客从春天写到了冬天,现在我们又回到了原点,不忘...

--Allen--
2018/10/20
0
0
golang ssh包使用方法介绍

在使用gexpect包发现很多问题之外,这里又尝试使用ssh user@127.0.0.1的思路进行用户切换。这里记录下具体的使用方法,遇到的ssh: must specify HostKeyCallback 问题的解法方法及最终使用过...

linuxprobe16
2018/12/19
0
0
gofn: golang 控制台源代码查询工具

golang作为开源项目,查询源代码,查看其具体实现及查看其包、函数的使用方法是非常常见的事情。 本人作为一名golang初学者,经常要查看源代码,经常要经过很多路径,最终打开了,可是花费的...

_毛虫
2014/03/23
0
0
Golang:方法

什么是方法 一个方法只是一个函数,它有一个特殊的接收者(receiver)类型,该接收者放在 关键字和函数名之间。接收者可以是结构体类型或非结构体类型。可以在方法内部访问接收者。 可以通过...

与蟒唯舞
2018/01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android 通知Notify

MainActivity { private NotificationManager manager; onCreate() { manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); } public void btnNotify(View view......

Coding缘
12分钟前
0
0
Android 人脸识别SDK开发

目前我们的应用内使用了 ArcFace 的人脸检测功能,其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得 集成 ArcFace FD 的集成过程非常简单 在 ArcFace FD 的文档上...

是哇兴哥棒棒哒
13分钟前
0
0
《市场营销》的读后感作文3000字

《市场营销》的读后感作文3000字: 大家好,这是我领读《市场营销》教材的第一篇读书笔记(不了解此事的朋友请阅读和小马宋一起读《市场营销》)。我们这一周阅读的是《市场营销》(以我手里...

原创小博客
17分钟前
1
0
js判断input输入保留正整数和两位小数实现方法

// 均价 checkKeydown(value, e){ this.registerForm.averagePrice = this.changeNumber2(value) }, // 预算 changsoldBudget(value) { this.registerFo......

五个半柠檬
19分钟前
1
0
Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部