Пакет expvar
Обзор
Пакет expvar предоставляет стандартизированный интерфейс для общедоступных переменных, таких как счётчики операций в серверах. Эти переменные доступны через HTTP по адресу /debug/vars в формате JSON. Начиная с Go 1.22, запросы к /debug/vars должны использовать метод GET.
Операции по установке или изменению этих общедоступных переменных атомарны.
В дополнение к добавлению обработчика HTTP, этот пакет регистрирует следующие переменные:
cmdline os.Args memstats runtime.Memstats
Иногда пакет импортируется только для побочного эффекта регистрации его обработчика HTTP и вышеперечисленных переменных. Чтобы использовать его таким образом, подключите этот пакет к вашей программе:
import _ "expvar"
Индекс
Файлы пакета
expvar.go
func Do
func Do(f func(KeyValue))
Do вызывает f для каждой экспортированной переменной. Глобальный массив переменных блокируется во время итерации, но существующие записи могут быть обновлены параллельно.
func Handler 1.8
func Handler() http.Handler
Handler возвращает обработчик HTTP expvar.
Это необходимо только для установки обработчика в нестандартном расположении.
func Publish
func Publish(name string, v Var)
Publish объявляет именованную экспортированную переменную. Это должно вызываться из функции init пакета, когда он создаёт свои переменные. Если имя уже зарегистрировано, это вызовет log.Panic.
тип Float
Float — это 64-битная плавающая переменная, удовлетворяющая интерфейсу Var.
type Float struct {
// contains filtered or unexported fields
}
func NewFloat
func NewFloat(name string) *Float
func (*Float) Add
func (v *Float) Add(delta float64)
Add добавляет delta к v.
func (*Float) Set
func (v *Float) Set(value float64)
Set устанавливает v на значение value.
func (*Float) String
func (v *Float) String() string
func (*Float) Value 1.8
func (v *Float) Value() float64
тип Func
Func реализует Var, вызывая функцию и форматируя возвращаемое значение с использованием JSON.
type Func func() any
func (Func) String
func (f Func) String() string
func (Func) Value 1.8
func (f Func) Value() any
тип Int
Int — это 64-битная целочисленная переменная, удовлетворяющая интерфейсу Var.
type Int struct {
// contains filtered or unexported fields
}
func NewInt
func NewInt(name string) *Int
func (*Int) Add
func (v *Int) Add(delta int64)
func (*Int) Set
func (v *Int) Set(value int64)
func (*Int) String
func (v *Int) String() string
func (*Int) Value 1.8
func (v *Int) Value() int64
тип KeyValue
KeyValue представляет собой отдельную запись в Map.
type KeyValue struct {
Key string
Value Var
}
тип Map
Map — это карта string-to-Var, удовлетворяющая интерфейсу Var.
type Map struct {
// contains filtered or unexported fields
}
func NewMap
func NewMap(name string) *Map
func (*Map) Add
func (v *Map) Add(key string, delta int64)
Add добавляет delta к значению *Int, хранящемуся по указанному ключу карты.
func (*Map) AddFloat
func (v *Map) AddFloat(key string, delta float64)
AddFloat добавляет delta к значению *Float, хранящемуся по указанному ключу карты.
func (*Map) Delete 1.12
func (v *Map) Delete(key string)
Delete удаляет указанный ключ из карты.
func (*Map) Do
func (v *Map) Do(f func(KeyValue))
Do вызывает f для каждой записи в карте. Карта блокируется во время итерации, но существующие записи могут быть обновлены параллельно.
func (*Map) Get
func (v *Map) Get(key string) Var
func (*Map) Init
func (v *Map) Init() *Map
Init удаляет все ключи из карты.
func (*Map) Set
func (v *Map) Set(key string, av Var)
func (*Map) String
func (v *Map) String() string
тип String
String — это строковая переменная, удовлетворяющая интерфейсу Var.
type String struct {
// contains filtered or unexported fields
}
func NewString
func NewString(name string) *String
func (*String) Set
func (v *String) Set(value string)
func (*String) String
func (v *String) String() string
String реализует интерфейс Var. Чтобы получить необрамлённую строку, используйте String.Value.
func (*String) Value 1.8
func (v *String) Value() string
тип Var
Var — это абстрактный тип для всех экспортированных переменных.
type Var interface {
// String returns a valid JSON value for the variable.
// Types with String methods that do not return valid JSON
// (such as time.Time) must not be used as a Var.
String() string
} func Get
func Get(name string) Var
Get извлекает именованную экспортированную переменную. Возвращает nil, если имя не зарегистрировано.
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/expvar/