srvfunc

package
v0.0.0-...-e2cc962 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2018 License: MIT Imports: 21 Imported by: 0

README

srvfunc

Библиотека общего функционала.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound    = errors.New(`Not found`)
	ErrSyscallFail = errors.New(`Syscall fail`)
)

Functions

func CachingDialer

func CachingDialer(ctx context.Context, network, addr string) (net.Conn, error)

CachingDialer should be used as DialContext function in http.Transport to speed up DNS resolution dramatically.

func ChangeGroup

func ChangeGroup(group string) error

ChangeGroup устанавливает ID группы для текущего потока

func ChangeUser

func ChangeUser(user string) error

ChangeUser установка ID пользователя для текущего потока

func EIs

func EIs(err error, original error) bool

EIs сокращение для goerrors.Is Исключительно чтобы не использовать явный импорт goerrors, если данный пакет уже импортирован

func EWrap

func EWrap(err error) error

EWrap оборачивает ошибку в *goerrors.Error Если ошибка уже обернута, не трогает ее. Если передан nil, то nil и возвращает.

func GetNumOpenedFile

func GetNumOpenedFile(pid int) (int, error)

GetNumOpenedFile вычисляет количество используемых файловых дескрипторов приложением @see man proc по /proc/*/fd/

func Gorecover

func Gorecover(cb func(stack string))

Gorecover служит оберткой над recover() и go-errors для симпатичного вывода ошибки или вызова callback в случае ошибки

func LogRotate

func LogRotate(prevLogFd *os.File, fname string) (newLogFd *os.File, err error)

LogRotate переоткрывает указанный файл и подменяем stdout/stderr вывод на этот файл

func LookupGidByName

func LookupGidByName(name string) (int, error)

LookupGidByName ищет сведения по группе с /etc/group

func LookupUidByName

func LookupUidByName(name string) (int, error)

LookupUidByName ищет сведения по пользователю в /etc/passwd

func MakeCPUProfile

func MakeCPUProfile(path string) (io.Closer, error)

MakeCPUProfile инициализирует запись cpu профиля в файл Файл наполняется все время работы приложения

func MakeGorProfile

func MakeGorProfile(path string) (io.Closer, error)

MakeGorProfile открывает файл для записи статистике по горутинам Реальная запись в файл происходит при закрытии профилировщика

func MakeMemProfile

func MakeMemProfile(path string) (io.Closer, error)

MakeMemProfile открывает файл для записи mem профиля Реальная запись в файл происходит при закрытии профилировщика

func MakeSigChan

func MakeSigChan(sig ...os.Signal) chan os.Signal

MakeSigChan создает канал для получения сигналов указанных типов

func SetMaxRLimitNoFile

func SetMaxRLimitNoFile() ([]uint64, error)

SetMaxRLimitNoFile пробует выставить текущие nofile лимиты (ulimit -n) в максимально разрешенные Вернет в случае успеха кортеж (cur, max) значений лимита

func SplitNetworkAddr

func SplitNetworkAddr(addr string) (string, uint16, error)

Types

type CPUInfo

type CPUInfo struct {
	// contains filtered or unexported fields
}

CPUInfo считает статистику по использованию CPU глобально по ОС

func MakeCPUInfo

func MakeCPUInfo() *CPUInfo

MakeCPUInfo инициализирует сбор статистики

func (*CPUInfo) GetCPUNum

func (ci *CPUInfo) GetCPUNum() (int, error)

GetCPUNum возвращает число ядер (виртуальных) CPU

func (*CPUInfo) GetSelfCpuUsage

func (ci *CPUInfo) GetSelfCpuUsage() (avgPerc int, curPerc int)

GetSelfCpuUsage возвращает статистику по использованию CPU текущим процессом:

среднее и последнее использование в % (100 - полностью занято 1 ядро, 800 - полностью заняты 8 ядер и т.п.)

func (*CPUInfo) GetThisProcUsage

func (ci *CPUInfo) GetThisProcUsage() map[string]float32

GetThisProcUsage возвращает текущую статистику использования CPU в целом по системе: us, ni, sy, id, io Если от инициализации (MakeCPUInfo) прошло менее секунды, то вернет пустой словарь

type GCStats

type GCStats struct {
	// PauseTotalMs это общее время работы GC в миллисекундах
	PauseTotalMs uint64
	// PauseTotalMcs это общее время работы GC в микросекундах
	PauseTotalMcs uint64
	// LastPausesMs это длительность всех пауз GC в мс с прошлого вызова GetGCStats (но не более размера циклического буфера)
	LastPausesMs []uint64
	// LastPausesMcs это длительность всех пауз GC в микросекундах с прошлого вызова GetGCStats (но не более размера циклического буфера)
	LastPausesMcs []uint64
	// GCCPUFraction это процент времени (real time), потраченного на GC
	GCCPUFraction float64
	// contains filtered or unexported fields
}

GCStats содержит статистику по работе GC

func GetGCStats

func GetGCStats() (stat GCStats)

GetGCStats возвращает статистику по работе GC

type MemStats

type MemStats struct {
	Size  uint64
	Res   uint64
	Share uint64
	Text  uint64
	Lib   uint64
	Data  uint64
	Dt    uint64
}

MemStats содержит статистику по использованию памяти в байтах @see man proc по /proc/*/statm

func GetMemStat

func GetMemStat(pid uint16) (*MemStats, error)

GetMemStat возвращает статистику по использованию памяти @see man proc по /proc/*/statm

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL