Distribution

Distribution berisi statistik ringkasan untuk populasi nilai. Secara opsional, kolom ini berisi histogram yang merepresentasikan distribusi nilai tersebut di seluruh set bucket.

Statistik ringkasan adalah jumlah, rata-rata, jumlah kuadrat deviasi dari rata-rata, minimum, dan maksimum dari kumpulan nilai populasi. Histogram didasarkan pada urutan bucket dan memberikan jumlah nilai yang termasuk dalam setiap bucket. Batas bucket diberikan secara eksplisit atau dengan rumus untuk bucket dengan lebar tetap atau meningkat secara eksponensial.

Meskipun tidak dilarang, umumnya tidak disarankan untuk menyertakan nilai non-hingga (tak hingga atau NaN) dalam populasi nilai, karena hal ini akan membuat kolom mean dan sumOfSquaredDeviation 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 dalam bucketCounts jika histogram disediakan.

mean

number

Rata-rata aritmetika nilai dalam populasi. Jika count adalah nol, kolom ini harus nol.

sumOfSquaredDeviation

number

Jumlah kuadrat selisih dari rata-rata 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 ke-3 menjelaskan metode Welford untuk mengakumulasi jumlah ini dalam satu kali proses.

Jika count adalah nol, kolom ini harus nol.

range

object (Range)

Jika ditentukan, berisi rentang nilai populasi. Kolom 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, maka jumlah nilai dalam bucketCounts harus sama dengan nilai dalam kolom count distribusi.

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

Urutan nilai dalam bucketCounts mengikuti skema penomoran bucket yang dijelaskan untuk tiga jenis bucket. Nilai pertama harus berupa jumlah untuk bucket underflow (angka 0). N-2 nilai berikutnya adalah jumlah untuk bucket terbatas (angka 1 hingga N-2). Nilai ke-N dalam bucketCounts adalah jumlah untuk bucket overflow (angka N-1).

exemplars[]

object (Exemplar)

Harus dalam urutan menaik kolom value.

Rentang

Rentang nilai populasi.

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

number

Nilai minimum populasi.

max

number

Nilai maksimum populasi.

BucketOptions

BucketOptions menjelaskan batas bucket yang digunakan untuk membuat histogram untuk distribusi. Bucket dapat berupa urutan linear, urutan eksponensial, atau setiap bucket dapat ditentukan secara eksplisit. BucketOptions tidak menyertakan 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 lebih besar daripada batas bawah. Urutan N bucket untuk distribusi terdiri dari bucket underflow (angka 0), nol atau beberapa bucket terbatas (angka 1 hingga N - 2), dan bucket overflow (angka 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 -infinity dan batas atas bucket overflow adalah +infinity. Bucket terbatas disebut demikian karena kedua batasnya 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. Tepatnya salah satu dari tiga kolom ini harus disetel. 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 bucket linear yang semuanya memiliki lebar yang sama (kecuali bucket overflow dan underflow). Setiap bucket mewakili ketidakpastian absolut konstan pada nilai tertentu dalam bucket.

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

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

Batas bawah (1 <= i < N): offset + (width * (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 konstan pada nilai tertentu dalam bucket.

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

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

Batas bawah (1 <= i < N): scale * (growthFactor ^ (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): bounds[i] Batas bawah (1 <= i < N); bounds[i - 1]

Kolom bounds harus berisi setidaknya satu elemen. Jika bounds hanya memiliki satu elemen, tidak ada bucket terbatas, dan satu elemen tersebut adalah batas umum bucket overflow dan underflow.

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

number

Nilai harus meningkat secara monoton.

Contoh

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

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

number

Nilai titik contoh. Nilai ini menentukan bucket tempat contoh berada.

timestamp

string (Timestamp format)

Waktu pengamatan (sampling) nilai di atas.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

attachments[]

object

Informasi kontekstual tentang nilai contoh. Contohnya adalah:

Trace: type.googleapis.com/google.monitoring.v3.SpanContext

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

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

Hanya boleh ada satu lampiran dari jenis pesan tertentu dalam satu contoh, dan hal ini diterapkan oleh sistem.

Objek yang berisi kolom tipe arbitrer. Kolom tambahan "@type" berisi URI yang mengidentifikasi jenis. Contoh: { "id": 1234, "@type": "types.example.com/standard/id" }.