©
本文档使用
php.cn手册 发布
import "expvar"
概述
索引
软件包 expvar 为公共变量提供了标准化接口,如服务器中的操作计数器。它以 JSON 格式在 /debug/vars 中通过 HTTP 公开这些变量。
设置或修改这些公共变量的操作是原子操作。
除了添加 HTTP 处理程序之外,该程序包还会注册以下变量:
cmdline os.Args memstats runtime.Memstats
该包有时只是为了注册 HTTP 处理程序和上述变量的副作用而导入。要以这种方式使用,请将此程序包链接到您的程序中:
import _ "expvar"
func Do(f func(KeyValue))
func Handler() http.Handler
func Publish(name string, v Var)
type Float
func NewFloat(name string) *Float
func (v *Float) Add(delta float64)
func (v *Float) Set(value float64)
func (v *Float) String() string
func (v *Float) Value() float64
type Func
func (f Func) String() string
func (f Func) Value() interface{}
type Int
func NewInt(name string) *Int
func (v *Int) Add(delta int64)
func (v *Int) Set(value int64)
func (v *Int) String() string
func (v *Int) Value() int64
type KeyValue
type Map
func NewMap(name string) *Map
func (v *Map) Add(key string, delta int64)
func (v *Map) AddFloat(key string, delta float64)
func (v *Map) Do(f func(KeyValue))
func (v *Map) Get(key string) Var
func (v *Map) Init() *Map
func (v *Map) Set(key string, av Var)
func (v *Map) String() string
type String
func NewString(name string) *String
func (v *String) Set(value string)
func (v *String) String() string
func (v *String) Value() string
type Var
func Get(name string) Var
expvar.go
func Do(f func(KeyValue))
对每个导出的变量都调用 f 。全局变量映射在迭代期间被锁定,但现有条目可能会同时更新。
func Handler() http.Handler
处理程序返回expvar HTTP处理程序。
这只需要将处理程序安装在非标准位置。
func Publish(name string, v Var)
发布声明一个命名的导出变量。这应该在创建其变量时从包的 init 函数中调用。如果名称已经注册,那么这将会 log.Panic。
Float 是一个满足 Var 接口的64位浮点型变量。
type Float struct { // 包含已过滤或未导出的字段}
func NewFloat(name string) *Float
func (v *Float) Add(delta float64)
添加将增量添加到v。
func (v *Float) Set(value float64)
将v设置为值。
func (v *Float) String() string
func (v *Float) Value() float64
Func 通过调用函数并使用 JSON 格式化返回的值来实现 Var。
type Func func() interface{}
func (f Func) String() string
func (f Func) Value() interface{}
Int 是一个满足 Var 接口的64位整数变量。
type Int struct { // 包含已过滤或未导出的字段}
func NewInt(name string) *Int
func (v *Int) Add(delta int64)
func (v *Int) Set(value int64)
func (v *Int) String() string
func (v *Int) Value() int64
KeyValue 表示 Map 中的单个条目。
type KeyValue struct { Key string Value Var}
Map 是一个满足 Var 接口的字符串到 Var 映射变量。
type Map struct { // 包含已过滤或未导出的字段}
func NewMap(name string) *Map
func (v *Map) Add(key string, delta int64)
添加将增量添加到存储在给定映射键下的 *Int 值。
func (v *Map) AddFloat(key string, delta float64)
AddFloat 将增量添加到存储在给定映射关键字下的 *Float值。
func (v *Map) Do(f func(KeyValue))
请为地图中的每个条目调用 f 。迭代期间地图被锁定,但现有条目可能会同时更新。
func (v *Map) Get(key string) Var
func (v *Map) Init() *Map
Init 从地图上删除所有密钥。
func (v *Map) Set(key string, av Var)
func (v *Map) String() string
字符串是一个字符串变量,并且满足 Var 接口。
type String struct { // 包含已过滤或未导出的字段}
func NewString(name string) *String
func (v *String) Set(value string)
func (v *String) String() string
字符串实现 Val 接口。要获取未加引号的字符串,请使用 Value。
func (v *String) Value() string
Var是所有导出变量的抽象类型。
type Var interface { // String返回变量的有效JSON值。 // 具有不返回有效JSON的String方法的类型 // (例如time.Time)不能用作Var。 String() string}
func Get(name string) Var
获取一个命名的导出变量。如果名称尚未注册,则返回 nil。