go sample 源码

2022-07-15 浏览 (741)

golang sample 代码

文件路径:/src/runtime/metrics/sample.go

/ Copyright 2020 The Go Authors. All rights reserved.
/ Use of this source code is governed by a BSD-style
/ license that can be found in the LICENSE file.

package metrics

import (
	_ "runtime" / depends on the runtime via a linkname'd function
	"unsafe"
)

/ Sample captures a single metric sample.
type Sample struct {
	/ Name is the name of the metric sampled.
	/
	/ It must correspond to a name in one of the metric descriptions
	/ returned by All.
	Name string

	/ Value is the value of the metric sample.
	Value Value
}

/ Implemented in the runtime.
func runtime_readMetrics(unsafe.Pointer, int, int)

/ Read populates each Value field in the given slice of metric samples.
/
/ Desired metrics should be present in the slice with the appropriate name.
/ The user of this API is encouraged to re-use the same slice between calls for
/ efficiency, but is not required to do so.
/
/ Note that re-use has some caveats. Notably, Values should not be read or
/ manipulated while a Read with that value is outstanding; that is a data race.
/ This property includes pointer-typed Values (for example, Float64Histogram)
/ whose underlying storage will be reused by Read when possible. To safely use
/ such values in a concurrent setting, all data must be deep-copied.
/
/ It is safe to execute multiple Read calls concurrently, but their arguments
/ must share no underlying memory. When in doubt, create a new []Sample from
/ scratch, which is always safe, though may be inefficient.
/
/ Sample values with names not appearing in All will have their Value populated
/ as KindBad to indicate that the name is unknown.
func Read(m []Sample) {
	runtime_readMetrics(unsafe.Pointer(&m[0]), len(m), cap(m))
}

相关信息

go 源码目录

相关文章

go description 源码

go description_test 源码

go doc 源码

go example_test 源码

go histogram 源码

go value 源码

^