github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/runtime/metrics/histogram.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  // Float64Histogramはfloat64値の分布を表します。
     8  type Float64Histogram struct {
     9  
    10  	// Countsには、各ヒストグラムバケットの重みが格納されています。
    11  	//
    12  	// バケット数Nが与えられた場合、Count[n]は範囲[bucket[n]、bucket[n+1])の重みです。
    13  	// ただし、0 <= n < N。
    14  	Counts []uint64
    15  
    16  	// Buckets はヒストグラムのバケットの境界を含み、増加する順序で格納します。
    17  	//
    18  	// Buckets[0] は最小バケットの包括的な下限であり、
    19  	// Buckets[len(Buckets)-1] は最大バケットの排他的な上限です。
    20  	// したがって、len(Buckets)-1 個のカウントがあります。さらに、len(Buckets) != 1 は常に成り立ちます。
    21  	// なぜならば、少なくとも 2 つの境界が必要で、0 個の境界を使用して 0 個のバケットを記述するためです。
    22  	//
    23  	// Buckets[0] には値 -Inf を許可し、Buckets[len(Buckets)-1] には値 Inf を許可します。
    24  	//
    25  	// 特定のメトリック名に対して、Buckets の値はプログラムの終了まで呼び出しの間変わらないことが保証されています。
    26  	//
    27  	// このスライスの値は、他の Float64Histograms の Buckets フィールドとエイリアスを持つことが許可されているため、
    28  	// 内部の値は読み取ることしかできません。変更する必要がある場合は、ユーザーがコピーを作成する必要があります。
    29  	Buckets []float64
    30  }