Distribution

Distribution には、値の母集団の要約統計量が含まれます。必要に応じて、これらの値の分布をバケットのセット全体で表すヒストグラムが含まれます。

要約統計量は、カウント、平均、平均からの 2 乗偏差の合計、最小値、値の母集団の集合の最大値です。ヒストグラムはバケットの配列に基づいており、各バケットに入る分類値のカウントをもたらします。バケットの境界は、明示的に指定するか、バケットの幅が一定または指数関数的に増加する式で指定します。

禁止されてはいませんが、値の母集団に非有限値(無限大または NaN)を含めると、meansumOfSquaredDeviation が無意味なフィールドになるため、一般的におすすめできません。

JSON 表現
{
  "count": string,
  "mean": number,
  "sumOfSquaredDeviation": number,
  "range": {
    object (Range)
  },
  "bucketOptions": {
    object (BucketOptions)
  },
  "bucketCounts": [
    string
  ],
  "exemplars": [
    {
      object (Exemplar)
    }
  ]
}
フィールド
count

string (int64 format)

値の母集団の数。負の値は使用できません。ヒストグラムが指定されている場合、この値は bucketCounts の値の合計と等しくする必要があります。

mean

number

値の母集団の算術平均値。count が 0 の場合は、このフィールドも 0 にする必要があります。

sumOfSquaredDeviation

number

値の母集団の平均値からの偏差の平方和。x_i 値では、次になります。

Sum[i=1..n]((x_i - mean)^2)

Knuth の『The Art of Computer Programming』、Vol. 2、232 ページ、第 3 版では、1 回のパスでこの合計値を蓄積するためのウェルフォードの方法を記載しています。

count が 0 の場合は、このフィールドも 0 にする必要があります。

range

object (Range)

指定された場合、値の母集団の範囲が含まれます。count がゼロの場合、フィールドは存在することはできません。

bucketOptions

object (BucketOptions)

ヒストグラムのバケットの境界を定義します。分布にヒストグラムが含まれていない場合は、このフィールドを省略します。

bucketCounts[]

string (int64 format)

ヒストグラムの各バケット内の値の数(bucketOptions を参照)。分布にヒストグラムがない場合は、このフィールドを省略します。ヒストグラムがある場合、bucketCounts の値の合計は、分布の count フィールドの値と等しくする必要があります。

存在する場合、bucketCounts には N 個の値が含まれます。ここで、N は bucketOptions で指定されたバケット数です。N 個未満の値を指定した場合、残りの値は 0 とみなされます。

bucketCounts の値の順序は、3 つのバケットタイプに定義したバケット番号付けスキームに従います。最初の値は、アンダーフロー バケットのカウント(0)にします。次の N-2 個の値は有限バケットの数(1~N-2)です。bucketCounts の N 番目の値は、オーバーフロー バケット(番号 N-1)のカウントです。

exemplars[]

object (Exemplar)

value フィールドの昇順で並べ替える必要があります。

範囲

値の母集団の範囲。

JSON 表現
{
  "min": number,
  "max": number
}
フィールド
min

number

値の母集団の最小値。

max

number

値の母集団の最大値。

BucketOptions

BucketOptions は、分布のヒストグラムの作成に使用されるバケット境界を表します。バケットは、線形シーケンスまたは指数シーケンスにできます。また、各バケットを明示的に指定することもできます。BucketOptions には、各バケットの値の数は含まれません。

バケットには、そのバケットにカウントされる値の包括的下限と排他的上限があります。バケットの上限は下限よりも大きくする必要があります。分布の N 個のバケットのシーケンスは、アンダーフロー バケット(番号 0)、ゼロ以上の有限バケット(番号 1 から N - 2 )、オーバーフロー バケット(番号 N - 1)で構成されています。バケットは連続しています。i バケットの下限 i(i > 0)は、i - 1 バケットの上限と同じです。バケットは有限の値の全範囲に及びます。アンダーフロー バケットの下限は -infinity、オーバーフロー バケットの上限は +infinity です。有限のバケットは両方の境界が有限です。

JSON 表現
{

  // Union field options can be only one of the following:
  "linearBuckets": {
    object (Linear)
  },
  "exponentialBuckets": {
    object (Exponential)
  },
  "explicitBuckets": {
    object (Explicit)
  }
  // End of list of possible types for union field options.
}
フィールド
共用体フィールド options。これらの 3 つのフィールドのいずれかを設定する必要があります。options は次のいずれかになります。
linearBuckets

object (Linear)

線形バケット。

exponentialBuckets

object (Exponential)

指数関数的バケット。

explicitBuckets

object (Explicit)

明示的なバケット。

線形

すべて同じ幅(オーバーフローおよびアンダーフローを除く)のバケットの線形シーケンスを指定します。各バケットは、バケット内の特定の値で一定の絶対的な不確実性を表します。

numFiniteBuckets + 2(= N)個のバケットがあります。バケット i には次の境界があります。

上限(0 <= i < N-1): オフセット + (幅 × i)。

下限(1 <= i < N): オフセット + (幅 × (i - 1))。

JSON 表現
{
  "numFiniteBuckets": integer,
  "width": number,
  "offset": number
}
フィールド
numFiniteBuckets

integer

0 より大きくする必要があります。

width

number

0 より大きくする必要があります。

offset

number

最初のバケットの下限。

指数関数的

下限の値に比例する幅を持つ指数関数的なバケット シーケンスを指定します。各バケットは、バケット内の特定の値に一定の相対的な不確実性を表します。

numFiniteBuckets + 2(= N)個のバケットがあります。バケット i には次の境界があります。

上限(0 <= i < N-1): スケール × (growthFactor ^ i)。

下限(1 <= i < N): スケール × (growthFactor ^ (i - 1))。

JSON 表現
{
  "numFiniteBuckets": integer,
  "growthFactor": number,
  "scale": number
}
フィールド
numFiniteBuckets

integer

0 より大きくする必要があります。

growthFactor

number

1 より大きくする必要があります。

scale

number

0 より大きくする必要があります。

明示的

任意の幅のバケットのセットを指定します。

size(bounds) + 1(= N)個のバケットがあります。バケット i には次の境界があります。

上限(0 <= i < N-1): 境界 [i] 下限(1 <= i < N); 境界 [i - 1]

bounds フィールドには、少なくとも 1 つの要素を含める必要があります。bounds に要素が 1 つしかない場合、有限バケットはなく、その要素がオーバーフロー バケットとアンダーフロー バケットの共通の境界になります。

JSON 表現
{
  "bounds": [
    number
  ]
}
フィールド
bounds[]

number

値は単調に増加しなければなりません。

エグザンプラ

エグザンプラは、集計された分布値にアノテーションを付けるために使用できるサンプル ポイントです。これらは、値が追加されたときにアクティブだったトレース ID など、分布バケットに追加された特定の値に関する情報を提供するメタデータです。サンプル値、タイムスタンプ、送信元などの追加情報が含まれる場合があります。

JSON 表現
{
  "value": number,
  "timestamp": string,
  "attachments": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
フィールド
value

number

エグザンプラ ポイントの値。この値は、エグザンプラがどのバケットに属するかを決定します。

timestamp

string (Timestamp format)

上記の値の観測(サンプリング)時間。

attachments[]

object

サンプル値に関するコンテキスト情報。例:

トレース: type.googleapis.com/google.monitoring.v3.SpanContext

リテラル文字列: type.googleapis.com/google.protobuf.StringValue

集計中にドロップされたラベル: type.googleapis.com/google.monitoring.v3.DroppedLabels

1 つのメッセージの種類につき、1 つのエグザンプラに 1 つのアタッチメントしか存在できません。これはシステムによって強制されます。