Пакет 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 пакета при создании его переменных Var. Если имя уже зарегистрировано, будет вызван log.Panic.
type 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
type 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
type 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
type KeyValue
KeyValue представляет одну запись в Map.
type KeyValue struct {
Key string
Value Var
}
type Map
Map — это переменная-карта, сопоставляющая строки значениям 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
type 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
type 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/