Distribution

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

Statistik ringkasan adalah jumlah, rata-rata, jumlah kuadrat deviasi dari rata-rata, minimum, dan maksimum dari set populasi nilai. 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, secara umum merupakan ide yang buruk untuk memasukkan nilai-nilai non-hingga (tak terhingga atau NaN) ke dalam populasi nilai, karena hal ini akan membuat kolom mean dan sumOfSquaredDeviation menjadi tidak berarti.

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 (nomor 1 hingga N-2). Nilai ke-N dalam bucketCounts adalah jumlah untuk bucket luapan (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 dalam 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 (nomor 0), nol atau beberapa bucket terbatas (nomor 1 hingga N - 2), dan bucket overflow (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 demikian karena kedua batasnya terbatas.

Representasi JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "linearBuckets": {
    object (Linear)
  },
  "exponentialBuckets": {
    object (Exponential)
  },
  "explicitBuckets": {
    object (Explicit)
  }
  // End of mutually exclusive fields.
}
Kolom
Tepatnya salah satu dari ketiga kolom ini harus disetel. Berikut adalah daftar kolom yang bersifat eksklusif satu sama lain. Maksimal satu kolom akan ditetapkan dalam respons:
linearBuckets

object (Linear)

Bucket linear.

exponentialBuckets

object (Exponential)

Bucket eksponensial.

explicitBuckets

object (Explicit)

Bucket eksplisit.

Akhir kolom yang saling eksklusif.

Linear

Menentukan urutan bucket linear yang semuanya memiliki lebar yang sama (kecuali 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" }.