// KindBad indicates that the Value has no type and should not be used. const KindBad = iota


// KindFloat64 indicates that the type of the Value is a float64. const KindFloat64 = iota


// KindFloat64Histogram indicates that the type of the Value is a *Float64Histogram. const KindFloat64Histogram = iota


// KindUint64 indicates that the type of the Value is a uint64. const KindUint64 = iota


// All returns a slice of containing metric descriptions for all supported metrics. func All() []Description


// 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)