github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/runtime/metrics/sample.go (about)

     1  // Copyright 2020 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package metrics
     6  
     7  // サンプルは単一のメトリックサンプルをキャプチャします。
     8  type Sample struct {
     9  
    10  	// Nameはサンプリングされたメトリクスの名前です。
    11  	//
    12  	// これは、Allによって返されるメトリクスの説明の1つの名前と対応する必要があります。
    13  	Name string
    14  
    15  	// Valueはメトリックサンプルの値です。
    16  	Value Value
    17  }
    18  
    19  // Readは、与えられたメトリックサンプルのスライスの各 [Value] フィールドを埋めます。
    20  //
    21  // 望ましいメトリクスは、適切な名前でスライス内に存在するべきです。
    22  // このAPIのユーザーは、効率性のために同じスライスを呼び出し間で再利用することを推奨されますが、
    23  // 必須ではありません。
    24  //
    25  // 再利用にはいくつかの注意点があります。特に、値が未解決のReadである間は、
    26  // Valuesを読んだり操作したりするべきではありません。これはデータ競合です。
    27  // このプロパティには、ポインタ型のValues(例えば、[Float64Histogram])が含まれます。
    28  // これらの基礎となるストレージは、可能な場合にはReadによって再利用されます。
    29  // このような値を並行設定で安全に使用するためには、すべてのデータを深くコピーする必要があります。
    30  //
    31  // 複数のRead呼び出しを並行して実行することは安全ですが、その引数が
    32  // 共有の基礎となるメモリを持っていてはなりません。疑問がある場合は、
    33  // 常に安全であるが効率が低いかもしれない新しい[]Sampleをスクラッチから作成します。
    34  //
    35  // [All]に現れない名前を持つサンプル値は、名前が不明であることを示すために、
    36  // ValueがKindBadとして設定されます。
    37  func Read(m []Sample)