Skip to content

a tool for getting metrics in containers

Notifications You must be signed in to change notification settings

saul-data/cmetric

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

read metrics in container

if environment is container, the cpu ,memory is relative to container, else the metrics is relative to host.

cpu percent is the avg cpu percent in multi cpu core and 100% is the max percent

juejing link : https://juejin.cn/post/6986598285406371871/

usage


cpu := cmetric.CurrentCpuPercentUsage()
fmt.Println("cpu ", cpu)
memory := cmetric.CurrentMemoryPercentUsage()
fmt.Println("memory ", memory)
time.Sleep(2000 * time.Millisecond)

test examples

go func() {
	restart:
		t := time.NewTicker(6 * time.Second)

		for {
			select {
			case <-t.C:
				fmt.Println("cpu down===========")
				time.Sleep(6 * time.Second)
				t.Stop()
				fmt.Println("cpu up===========")
				goto restart
			default:

			}
		}
	}()

i start a 0.5cpu container . then i exec the code in a container. we can see the cpu rate changes and the cpu is up to 0.5 the will not up to more.

pu  0
memory  0.0009067918
cpu  1.0382111932603482
memory  0.00097522896
cpu  1.0270122977276814
memory  0.00097522896
cpu  0.9752556716859127
memory  0.00097522896
cpu down===========
cpu  0.01998823174866435
memory  0.00097522896
cpu  0
memory  0.00097522896
cpu  0
memory  0.00097522896
cpu up===========
cpu  1.0202506439554495
memory  0.0010586367
cpu  1.027026345137049
memory  0.0010586367
cpu  1.0184514486461407
memory  0.0010586367
cpu down===========
cpu  0
memory  0.0010586367
cpu  0
memory  0.0010586367

About

a tool for getting metrics in containers

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%