ebpf_exporter

Форк
0
/
monitor.go 
36 строк · 701.0 Байт
1
package cgroup
2

3
import (
4
	"log"
5
)
6

7
type monitor interface {
8
	Resolve(int) string
9
}
10

11
// Monitor resolves cgroup ids into their respective paths
12
type Monitor struct {
13
	inner monitor
14
}
15

16
// NewMonitor returns a new cgroup monitor for a given path
17
func NewMonitor(path string) (*Monitor, error) {
18
	fm, err := newFanotifyMonitor(path)
19
	if err != nil {
20
		log.Printf("Using on-demand resolution for cgroups (fanotify not available)")
21

22
		wm, err := newWalkerMonitor(path)
23
		if err != nil {
24
			return nil, err
25
		}
26

27
		return &Monitor{inner: wm}, nil
28
	}
29

30
	return &Monitor{inner: fm}, nil
31
}
32

33
// Resolve resolves an id to a path for a cgroup
34
func (m *Monitor) Resolve(id int) string {
35
	return m.inner.Resolve(id)
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.