Distribution

Distribution contiene statistiche riepilogative per un popolamento di valori. Facoltativamente, contiene un istogramma che rappresenta la distribuzione di questi valori in un insieme di bucket.

Le statistiche riepilogative sono il conteggio, la media e la somma delle deviazioni al quadrato dalla media, dal minimo e dal massimo dell'insieme della popolazione di valori. L'istogramma si basa su una sequenza di bucket e fornisce un conteggio dei valori che rientrano in ciascun bucket. I limiti dei bucket vengono indicati in modo esplicito o tramite formule per i bucket di larghezze fisse o in aumento esponenziale.

Sebbene non sia vietato, in genere è una cattiva idea includere valori non finiti (infiniti o NaN) nella popolazione di valori, in quanto ciò renderà i campi mean e sumOfSquaredDeviation privi di significato.

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

string (int64 format)

Il numero di valori nella popolazione. Deve essere un numero non negativo. Questo valore deve corrispondere alla somma dei valori in bucketCounts, se viene fornito un istogramma.

mean

number

Media aritmetica dei valori della popolazione. Se count è zero, questo campo deve essere zero.

sumOfSquaredDeviation

number

La somma delle deviazioni al quadrato dalla media dei valori della popolazione. Per i valori x_i, questo valore corrisponde a:

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

Knuth, "L'arte della programmazione informatica", Vol. 2, pagina 232, 3a edizione descrive il metodo di Welford per accumulare questa somma in un passaggio.

Se count è zero, questo campo deve essere zero.

range

object (Range)

Se specificato, contiene l'intervallo dei valori della popolazione. Il campo non deve essere presente se il valore count è zero.

bucketOptions

object (BucketOptions)

Definisce i limiti dei bucket dell'istogramma. Se la distribuzione non contiene un istogramma, ometti questo campo.

bucketCounts[]

string (int64 format)

Il numero di valori in ciascun bucket dell'istogramma, come descritto in bucketOptions. Se la distribuzione non ha un istogramma, ometti questo campo. Se è presente un istogramma, la somma dei valori in bucketCounts deve essere uguale al valore nel campo count della distribuzione.

Se presente, bucketCounts deve contenere N valori, dove N è il numero di bucket specificato in bucketOptions. Se specifichi meno di N valori, si presume che i valori rimanenti siano 0.

L'ordine dei valori in bucketCounts segue gli schemi di numerazione dei bucket descritti per i tre tipi di bucket. Il primo valore deve essere il conteggio del bucket di underflow (numero 0). I successivi valori N-2 sono i conteggi per i bucket finiti (da numero 1 a N-2). L'n° valore in bucketCounts è il conteggio del bucket di overflow (numero N-1).

exemplars[]

object (Exemplar)

Il campo value deve essere in ordine crescente.

chiavi

L'intervallo dei valori della popolazione.

Rappresentazione JSON
{
  "min": number,
  "max": number
}
Campi
min

number

Il valore minimo della popolazione.

max

number

Il valore massimo dei valori della popolazione.

BucketOptions

BucketOptions descrive i limiti dei bucket utilizzati per creare un istogramma per la distribuzione. I bucket possono essere in una sequenza lineare, una sequenza esponenziale oppure ogni bucket può essere specificato in modo esplicito. BucketOptions non include il numero di valori in ogni bucket.

Un bucket ha un limite inferiore inclusivo e un limite superiore esclusivo per i valori conteggiati per quel bucket. Il limite superiore di un bucket deve essere strettamente maggiore del limite inferiore. La sequenza di N bucket per una distribuzione consiste in un bucket di underflow (numero 0), zero o più bucket finiti (da numero 1 a N-2) e un bucket di overflow (numero N - 1). I bucket sono contigui: il limite inferiore del bucket i (i > 0) è uguale al limite superiore del bucket i - 1. I bucket coprono l'intero intervallo di valori finiti: il limite inferiore del bucket di underflow è -infinito, mentre il limite superiore del bucket di overflow è +infinito. I bucket finiti sono i cosiddetti bucket perché entrambi i limiti sono finiti.

Rappresentazione 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.
}
Campi
Campo unione options. Deve essere impostato in modo esatto uno di questi tre campi. options può essere solo uno dei seguenti:
linearBuckets

object (Linear)

Il bucket lineare.

exponentialBuckets

object (Exponential)

I bucket esponenziali.

explicitBuckets

object (Explicit)

I bucket espliciti.

Lineare

Specifica una sequenza lineare di bucket che hanno tutti la stessa larghezza (tranne overflow e underflow). Ogni bucket rappresenta un'incertezza assoluta costante sul valore specifico nel bucket.

Sono presenti numFiniteBuckets + 2 (= N) bucket. Il bucket i ha i seguenti limiti:

Limite superiore (0 <= i < N-1): offset + (larghezza * i).

Limite inferiore (1 <= i < N): offset + (larghezza * (i - 1)).

Rappresentazione JSON
{
  "numFiniteBuckets": integer,
  "width": number,
  "offset": number
}
Campi
numFiniteBuckets

integer

Deve essere maggiore di 0.

width

number

Deve essere maggiore di 0.

offset

number

Limite inferiore del primo bucket.

Esponenziale

Specifica una sequenza esponenziale di bucket con una larghezza proporzionale al valore del limite inferiore. Ogni bucket rappresenta un'incertezza relativa costante su un valore specifico nel bucket.

Sono presenti numFiniteBuckets + 2 (= N) bucket. Il bucket i ha i seguenti limiti:

Limite superiore (0 <= i < N-1): scala * (growthFactor ^ i).

Limite inferiore (1 <= i < N): scala * (growthFactor ^ (i - 1)).

Rappresentazione JSON
{
  "numFiniteBuckets": integer,
  "growthFactor": number,
  "scale": number
}
Campi
numFiniteBuckets

integer

Deve essere maggiore di 0.

growthFactor

number

Deve essere maggiore di 1.

scale

number

Deve essere maggiore di 0.

Esplicita

Specifica un insieme di bucket con larghezze arbitrarie.

Sono presenti size(bounds) + 1 (= N) bucket. Il bucket i ha i seguenti limiti:

Limite superiore (0 <= i < N-1): limiti[i] Limite inferiore (1 <= i < N); limiti[i - 1]

Il campo bounds deve contenere almeno un elemento. Se bounds ha un solo elemento, non ci sono bucket finiti e questo singolo elemento rappresenta il limite comune dei bucket overflow e underflow.

Rappresentazione JSON
{
  "bounds": [
    number
  ]
}
Campi
bounds[]

number

I valori devono aumentare monotonicamente.

Esemplare

Gli esempi sono punti di esempio che possono essere utilizzati per annotare valori di distribuzione aggregati. Sono metadati che forniscono informazioni su un particolare valore aggiunto a un bucket di distribuzione, ad esempio un ID traccia che era attivo quando è stato aggiunto un valore. Possono contenere ulteriori informazioni, ad esempio valori e timestamp di esempio, origine e così via.

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

number

Valore del punto campione. Questo valore determina a quale bucket appartiene l'esempio.

timestamp

string (Timestamp format)

Il tempo di osservazione (campionamento) del valore sopra indicato.

attachments[]

object

Informazioni contestuali sul valore di esempio. Ecco alcuni esempi:

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

Stringa letterale: type.googleapis.com/google.protobuf.StringValue

Etichette eliminate durante l'aggregazione: type.googleapis.com/google.monitoring.v3.DroppedLabels

Può esserci un solo allegato di un determinato tipo di messaggio in un singolo esempio e questa condizione viene applicata in modo forzato dal sistema.