...

パッケージ expvar

import "expvar"
概要
目次

概要 ▾

expvar パッケージは,サーバの操作カウンタのような,公開変数への標準的なインターフェースを提供します。 これらの変数は,HTTPで, /debug/vars 上で JSON フォーマットで公開します。

これらのパブリック変数を設定または変更する操作はアトミックです。

HTTP ハンドラを追加することに加えて,このパッケージは以下の変数を登録します。

cmdline   os.Args
memstats  runtime.Memstats

HTTP ハンドラと上記の変数を登録する副作用のためだけに,このパッケージがインポートされることがあります。 このように使うには,このパッケージを自分のプログラムに次のようにリンクさせます。

import _ "expvar"

func Do

func Do(f func(KeyValue))

Do は,エクスポートされた各変数に対して f を呼び出します。 グローバル変数マップは反復中はロックされていますが,既存の項目は平行に更新されることがあります。

func Handler 1.8

func Handler() http.Handler

Handler は expvar HTTP ハンドラを返します。

これは,ハンドラを標準以外の場所にインストールする場合にのみ必要になります。

func Publish

func Publish(name string, v Var)

Publish は,名前付きエクスポート変数を宣言します。 これは, Var を作成するときにパッケージの init 関数から呼び出されるべきです。 name が既に登録されているならば,log.Panic になります。

type Float

Float は, Var インターフェースを満たす 64 ビットの float 変数です。

type Float struct {
    // エクスポートされていないフィールドがあります
}

func NewFloat

func NewFloat(name string) *Float

func (*Float) Add

func (v *Float) Add(delta float64)

Add は v に delta を追加します。

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 は,関数を呼び出し,戻り値を JSON でフォーマットすることによって Var を実装します。

type Func func() interface{}

func (Func) String

func (f Func) String() string

func (Func) Value 1.8

func (f Func) Value() interface{}

type Int

Int は, Var インターフェースを満たす 64 ビット整数変数です。

type Int struct {
    // エクスポートされていないフィールドがあります
}

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 内の 1 つのエントリを表します。

type KeyValue struct {
    Key   string
    Value Var
}

type Map

Map は, Var インターフェースを満たす文字列から Var へのマップ変数です。

type Map struct {
    // エクスポートされていないフィールドがあります
}

func NewMap

func NewMap(name string) *Map

func (*Map) Add

func (v *Map) Add(key string, delta int64)

Add は,マップキー key に格納されている *Int 値に delta を追加します。

func (*Map) AddFloat

func (v *Map) AddFloat(key string, delta float64)

AddFloat は,マップキー key に格納されている *Float 値に delta を追加します。

func (*Map) Delete 1.12

func (v *Map) Delete(key string)

Delete deletes the given key from the map.

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 {
    // エクスポートされていないフィールドがあります
}

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 インターフェースを実装します。 引用符で囲まれていない文字列を取得するには, Value を使用してください。

func (*String) Value 1.8

func (v *String) Value() string

type Var

Var はエクスポートされたすべての変数の抽象型です。

type Var interface {
    // String は,変数の有効な JSON 値を返します。
    // 有効な JSON を返さない String メソッドを持つ型 (time.Time など) は, Var として使用してはいけません。
    String() string
}

func Get

func Get(name string) Var

Get は,名前付きのエクスポートされた変数を取得します。 name が登録されていない場合は nil を返します。