Distribution

Distribution contiene estadísticas de resumen de una población de valores. De forma opcional, contiene un histograma que representa la distribución de esos valores en un conjunto de buckets.

Las estadísticas de resumen son el recuento, la media, la suma de la desviación al cuadrado de la media, el mínimo y el máximo del conjunto de valores de la población. El histograma se basa en una secuencia de buckets y proporciona un recuento de los valores que corresponden a cada bucket. Los límites de los buckets se proporcionan de forma explícita o mediante fórmulas para los buckets de anchos fijos o que aumentan exponencialmente.

Aunque no está prohibido, por lo general, es una mala idea incluir valores no finitos (infinitos o NaN) en la población de valores, ya que esto hará que los campos mean y sumOfSquaredDeviation no tengan sentido.

Representación JSON
{
  "count": string,
  "mean": number,
  "sumOfSquaredDeviation": number,
  "range": {
    object (Range)
  },
  "bucketOptions": {
    object (BucketOptions)
  },
  "bucketCounts": [
    string
  ],
  "exemplars": [
    {
      object (Exemplar)
    }
  ]
}
Campos
count

string (int64 format)

La cantidad de valores en la población. Must be non-negative (La precisión de las coordenadas de latitud y longitud, en metros. No debe ser un valor negativo). Este valor debe ser igual a la suma de los valores en bucketCounts si se proporciona un histograma.

mean

number

La media aritmética de los valores en la población. Si count es cero, este campo debe ser cero.

sumOfSquaredDeviation

number

La suma de las desviaciones al cuadrado de la media de los valores en la población. Para los valores x_i, es lo siguiente:

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

Knuth, “El arte de la programación informática”, Vol. 2, página 232, tercera edición, se describe el método de Welford para acumular esta suma en un pase.

Si count es cero, este campo debe ser cero.

range

object (Range)

Si se especifica, contiene el rango de los valores de la población. El campo no debe estar presente si count es cero.

bucketOptions

object (BucketOptions)

Define los límites del bucket del histograma. Si la distribución no contiene un histograma, omite este campo.

bucketCounts[]

string (int64 format)

La cantidad de valores en cada bucket del histograma, como se describe en bucketOptions. Si la distribución no tiene un histograma, omite este campo. Si hay un histograma, la suma de los valores en bucketCounts debe ser igual al valor en el campo count de la distribución.

Si está presente, bucketCounts debe contener N valores, donde N es la cantidad de buckets especificados en bucketOptions. Si proporcionas menos de N valores, se supone que los valores restantes serán 0.

El orden de los valores en bucketCounts sigue los esquemas de numeración de buckets descritos para los tres tipos de buckets. El primer valor debe ser el recuento del bucket de subdesbordamiento (número 0). Los siguientes valores N-2 son los conteos de los buckets finitos (números 1 a N-2). El valor N en bucketCounts es el recuento del bucket de desbordamiento (número N-1).

exemplars[]

object (Exemplar)

Debe estar en orden creciente del campo value.

Rango

El rango de los valores de la población.

Representación JSON
{
  "min": number,
  "max": number
}
Campos
min

number

El mínimo de los valores de la población.

max

number

El máximo de los valores de la población.

BucketOptions

BucketOptions describe los límites del bucket que se usan a fin de crear un histograma para la distribución. Los buckets pueden estar en una secuencia lineal o exponencial o cada bucket se puede especificar de manera explícita. BucketOptions no incluye la cantidad de valores en cada bucket.

Un bucket tiene un límite inferior inclusivo y un límite superior exclusivo para los valores que se cuentan en ese bucket. El límite superior de un bucket debe ser estrictamente mayor que el límite inferior. La secuencia de N buckets para una distribución consiste en un bucket de subdesbordamiento (número 0), cero o más buckets finitos (número 1 a N - 2) y un bucket de desbordamiento (número N - 1). Los buckets son contiguos: el límite inferior del bucket i (i > 0) es el mismo que el límite superior del bucket i - 1. Los buckets abarcan todo el rango de valores finitos: el límite inferior del bucket de subdesbordamiento es -infinito y el límite superior del bucket de desbordamiento es +infinito. Los buckets finitos se denominan de esa forma porque ambos límites son finitos.

Representación 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.
}
Campos
Campo de unión options. Se debe establecer exactamente uno de estos tres campos. options puede ser solo uno de los siguientes:
linearBuckets

object (Linear)

El bucket lineal.

exponentialBuckets

object (Exponential)

Los buckets exponenciales.

explicitBuckets

object (Explicit)

Los buckets explícitos.

Lineal

Especifica una secuencia lineal de buckets que tienen el mismo ancho (excepto desbordamiento y subdesbordamiento). Cada bucket representa una incertidumbre absoluta constante sobre el valor específico del bucket.

Hay numFiniteBuckets + 2 (= N) buckets. El bucket i tiene los siguientes límites:

Límite superior (0 <= i < N-1): desplazamiento + (ancho * i).

Límite inferior (1 <= i < N): desplazamiento + (ancho * (i - 1)).

Representación JSON
{
  "numFiniteBuckets": integer,
  "width": number,
  "offset": number
}
Campos
numFiniteBuckets

integer

Debe ser mayor que 0.

width

number

Debe ser mayor que 0.

offset

number

Límite inferior del primer bucket.

Exponencial

Especifica una secuencia exponencial de buckets con un ancho que es proporcional al valor del límite inferior. Cada bucket representa una incertidumbre relativa constante de un valor específico en el bucket.

Hay numFiniteBuckets + 2 (= N) buckets. El bucket i tiene los siguientes límites:

Límite superior (0 <= i < N-1): escala * (growthFactor ^ i).

Límite inferior (1 <= i < N): escala * (growthFactor ^ (i - 1)).

Representación JSON
{
  "numFiniteBuckets": integer,
  "growthFactor": number,
  "scale": number
}
Campos
numFiniteBuckets

integer

Debe ser mayor que 0.

growthFactor

number

Debe ser mayor que 1.

scale

number

Debe ser mayor que 0.

Explícito

Especifica un conjunto de buckets con anchos arbitrarios.

Hay size(bounds) + 1 (= N) buckets. El bucket i tiene los siguientes límites:

Límite superior (0 <= i < N-1): límites[i] Límite inferior (1 <= i < N); límites[i - 1]

El campo bounds debe contener al menos un elemento. Si bounds tiene solo un elemento, no hay buckets finitos y ese único elemento es el límite común de los buckets de desbordamiento y subdesbordamiento.

Representación JSON
{
  "bounds": [
    number
  ]
}
Campos
bounds[]

number

Los valores deben aumentar de forma monótona.

Ejemplar

Los ejemplares son puntos de ejemplo que se pueden usar para anotar valores de distribución agregados. Son metadatos que proporcionan información sobre un valor específico agregado a un bucket de distribución, como un ID de seguimiento que estuvo activo cuando se agregó un valor. Pueden contener más información, como valores de ejemplo y marcas de tiempo, origen, etcétera.

Representación JSON
{
  "value": number,
  "timestamp": string,
  "attachments": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Campos
value

number

Valor del punto ejemplar. Este valor determina a qué bucket pertenece el ejemplo.

timestamp

string (Timestamp format)

El tiempo de observación (muestreo) del valor anterior.

attachments[]

object

Información contextual sobre el valor del ejemplo. Por ejemplo:

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

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

Etiquetas descartadas durante la agregación: type.googleapis.com/google.monitoring.v3.DroppedLabels

Es posible que haya solo un archivo adjunto de un tipo de mensaje dado en un solo ejemplar, y el sistema lo aplicará de manera forzosa.