// 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 Descriptions. 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. // // Metric values with names not appearing in the value returned by Descriptions // will have the 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)) }