Distribution

Distribution berisi statistik ringkasan untuk populasi nilai. Secara opsional, histogram berisi histogram yang mewakili distribusi nilai-nilai tersebut di seluruh set bucket.

Statistik ringkasan adalah jumlah, rerata, jumlah deviasi kuadrat dari rerata, minimum, dan maksimum kumpulan nilai populasi. Histogram didasarkan pada urutan bucket dan memberikan jumlah nilai yang jatuh ke dalam setiap bucket. Batas bucket diberikan secara eksplisit atau oleh formula untuk bucket dengan lebar tetap atau yang meningkat secara eksponensial.

Meskipun tidak dilarang, umumnya tidak disarankan untuk menyertakan nilai yang tidak terbatas (tak terbatas atau NaN) dalam populasi nilai, karena ini akan merender kolom mean dan sumOfSquaredDeviation menjadi tidak bermakna.

Representasi JSON
{
  "count": string,
  "mean": number,
  "sumOfSquaredDeviation": number,
  "range": {
    object (Range)
  },
  "bucketOptions": {
    object (BucketOptions)
  },
  "bucketCounts": [
    string
  ],
  "exemplars": [
    {
      object (Exemplar)
    }
  ]
}
Kolom
count

string (int64 format)

Jumlah nilai dalam populasi. Tidak boleh negatif. Nilai ini harus sama dengan jumlah nilai di bucketCounts jika histogram disediakan.

mean

number

Rata-rata aritmatika dari nilai-nilai dalam populasi. Jika count adalah nol, maka kolom ini harus nol.

sumOfSquaredDeviation

number

Jumlah deviasi kuadrat dari rerata nilai dalam populasi. Untuk nilai x_i, ini adalah:

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

Knuth, "The Art of Computer Programming", Vol. 2, halaman 232, edisi 3 menjelaskan metode Welford untuk mengumpulkan jumlah ini dalam satu pass.

Jika count adalah nol, maka kolom ini harus nol.

range

object (Range)

Jika ditentukan, berisi rentang nilai populasi. Kolom ini tidak boleh ada jika count adalah nol.

bucketOptions

object (BucketOptions)

Menentukan batas bucket histogram. Jika distribusi tidak berisi histogram, hapus kolom ini.

bucketCounts[]

string (int64 format)

Jumlah nilai dalam setiap bucket histogram, seperti yang dijelaskan dalam bucketOptions. Jika distribusi tidak memiliki histogram, hapus kolom ini. Jika ada histogram, jumlah nilai dalam bucketCounts harus sama dengan nilai di kolom count distribusi.

Jika ada, bucketCounts harus berisi nilai N, dengan N adalah jumlah bucket yang ditentukan di bucketOptions. Jika Anda memberikan kurang dari nilai N, nilai yang tersisa dianggap 0.

Urutan nilai dalam bucketCounts mengikuti skema penomoran bucket yang dijelaskan untuk ketiga jenis bucket. Nilai pertama harus merupakan jumlah untuk bucket underflow (nomor 0). Nilai N-2 berikutnya adalah jumlah untuk bucket terbatas (nomor 1 hingga N-2). Nilai N di bucketCounts adalah jumlah untuk bucket tambahan (nomor N-1).

exemplars[]

object (Exemplar)

Harus dalam urutan peningkatan kolom value.

Rentang

Rentang nilai populasi.

Representasi JSON
{
  "min": number,
  "max": number
}
Kolom
min

number

Nilai minimum populasi.

max

number

Nilai maksimum dari nilai populasi.

BucketOptions

BucketOptions menjelaskan batas bucket yang digunakan untuk membuat histogram untuk distribusi. Bucket dapat berada dalam urutan linear, urutan eksponensial, atau setiap bucket dapat ditentukan secara eksplisit. BucketOptions tidak mencakup jumlah nilai di setiap bucket.

Bucket memiliki batas bawah inklusif dan batas atas eksklusif untuk nilai yang dihitung untuk bucket tersebut. Batas atas bucket harus benar-benar lebih besar dari batas bawah. Urutan N bucket untuk distribusi terdiri dari bucket underflow (angka 0), bucket dengan nol atau beberapa terbatas (nomor 1 sampai N - 2) dan bucket luapan (nomor N - 1). Bucket berdekatan: batas bawah bucket i (i > 0) sama dengan batas atas bucket i - 1. Bucket mencakup seluruh rentang nilai terbatas: batas bawah bucket underflow adalah -tak terhingga dan batas atas bucket overflow adalah +tak terhingga. Bucket terbatas disebut karena kedua batas bersifat terbatas.

Representasi 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.
}
Kolom
Kolom union options. Tepat satu dari ketiga kolom ini yang harus ditetapkan. options hanya ada berupa salah satu diantara berikut:
linearBuckets

object (Linear)

Bucket linear.

exponentialBuckets

object (Exponential)

Bucket eksponensial.

explicitBuckets

object (Explicit)

Bucket eksplisit.

Linear

Menentukan urutan linear bucket yang semuanya memiliki lebar yang sama (kecuali overflow dan underflow). Setiap bucket merepresentasikan ketidakpastian absolut yang konstan terkait nilai tertentu dalam bucket.

Ada numFiniteBuckets + 2 (= N) bucket. Bucket i memiliki batas berikut:

Batas atas (0 <= i < N-1): offset + (lebar * i).

Batas bawah (1 <= i < N): offset + (lebar * (i - 1)).

Representasi JSON
{
  "numFiniteBuckets": integer,
  "width": number,
  "offset": number
}
Kolom
numFiniteBuckets

integer

Harus lebih besar dari 0.

width

number

Harus lebih besar dari 0.

offset

number

Batas bawah bucket pertama.

Eksponensial

Menentukan urutan eksponensial bucket yang memiliki lebar yang proporsional dengan nilai batas bawah. Setiap bucket mewakili ketidakpastian relatif yang konstan terhadap nilai tertentu dalam bucket.

Ada numFiniteBuckets + 2 (= N) bucket. Bucket i memiliki batas berikut:

Batas atas (0 <= i < N-1): skala * (growthFactor ^ i).

Batas bawah (1 <= i < N): skala * (Faktor pertumbuhan ^ (i - 1)).

Representasi JSON
{
  "numFiniteBuckets": integer,
  "growthFactor": number,
  "scale": number
}
Kolom
numFiniteBuckets

integer

Harus lebih besar dari 0.

growthFactor

number

Harus lebih besar dari 1.

scale

number

Harus lebih besar dari 0.

Eksplisit

Menentukan kumpulan bucket dengan lebar arbitrer.

Ada size(bounds) + 1 (= N) bucket. Bucket i memiliki batas berikut:

Batas atas (0 <= i < N-1): batas[i] Batas bawah (1 <= i < N); batas[i - 1]

Kolom bounds harus berisi setidaknya satu elemen. Jika bounds hanya memiliki satu elemen, maka tidak ada bucket terbatas, dan satu elemen tersebut adalah batas umum bucket luapan dan aliran bawah.

Representasi JSON
{
  "bounds": [
    number
  ]
}
Kolom
bounds[]

number

Nilai harus meningkat secara monoton.

Contoh

Contoh adalah titik contoh yang dapat digunakan untuk membuat anotasi nilai distribusi gabungan. Objek ini adalah metadata yang memberikan informasi tentang nilai tertentu yang ditambahkan ke bucket Distribusi, seperti ID trace yang aktif saat nilai ditambahkan. File ini dapat berisi informasi lebih lanjut, seperti nilai contoh dan stempel waktu, asal, dll.

Representasi JSON
{
  "value": number,
  "timestamp": string,
  "attachments": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Kolom
value

number

Nilai titik contoh. Nilai ini menentukan di bucket mana contoh tersebut berada.

timestamp

string (Timestamp format)

Waktu pengamatan (pengambilan sampel) nilai di atas.

attachments[]

object

Informasi kontekstual tentang nilai contoh. Contohnya antara lain:

Rekaman aktivitas: type.googleapis.com/google.monitoring.v3.SpanContext

String literal: type.googleapis.com/google.protobuf.StringValue

Label dihapus selama agregasi: type.googleapis.com/google.monitoring.v3.DroppedLabels

Mungkin hanya ada satu lampiran dari setiap jenis pesan dalam contoh tunggal, dan ini ditegakkan oleh sistem.