srvfunc

package
v1.0.0-beta1 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2022 License: MPL-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

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 EIs deprecated

func EIs(err error, original error) bool

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

Deprecated: используйте пакет github.com/pkg/errors.

func EWrap deprecated

func EWrap(err error) error

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

Deprecated: используйте пакет github.com/pkg/errors.

func ExternalIPAddrs

func ExternalIPAddrs() string

For now, return only IPv4 addresses. If they are empty, return all.

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 Hostname

func Hostname() string

cached, not expected to change

func HostnameForStatshouse

func HostnameForStatshouse() string

cached, without Kubernetes deployment ID, recommended for use as statshouse keys

func LogRotate

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

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

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 MaybeResolveHost

func MaybeResolveHost(network string, addr string) string

func NumericHost deprecated

func NumericHost() (uint64, error)

Deprecated: always prefer Hostname() or HostnameForStatshouse() when saving in logs, etc

func SetHardRLimitNoFile

func SetHardRLimitNoFile(maxCount uint64) ([]uint64, error)

SetHardMaxRLimitNoFile выставляет максимальный лимит для RLIMIT_NOFILE требует привилегированного доступа. возвращает (cur, max) значений лимита в случае успеха.

func SetMaxRLimitNoFile

func SetMaxRLimitNoFile() ([]uint64, error)

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

func SplitNetworkAddr

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

func ValidateAddress

func ValidateAddress(address string, defaultPort string) (string, error)

if address contains no port, defaultPort will be added, unless it is empty, then error is returned

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 int) (*MemStats, error)

GetMemStat возвращает статистику по использованию памяти

Максимальное значение PID в Linux может доходить до 4 миллионов (см. исходники Linux), поэтому у параметра pid стоит тип int, а не uint16

@see man proc по /proc/*/statm @see https://elixir.bootlin.com/linux/latest/source/include/linux/threads.h#L34

Jump to

Keyboard shortcuts

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