Distribution

Distribution contiene estadísticas de resumen de una población de valores. Opcionalmente, contiene un histograma que representa la distribución de esos valores en un conjunto de segmentos.

Las estadísticas de resumen son el recuento, la media, la suma de la desviación cuadrática 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 contenedores y ofrece un recuento de los valores que corresponden a cada contenedor. Los límites de los segmentos se indican de forma explícita o mediante fórmulas para segmentos de anchura fija o exponencialmente creciente.

Aunque no está prohibido, por lo general no es recomendable 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)

Número de valores de la población. No debe ser negativo. Este valor debe ser igual a la suma de los valores de bucketCounts si se proporciona un histograma.

mean

number

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

sumOfSquaredDeviation

number

Suma de las desviaciones cuadráticas de la media de los valores de la población. En el caso de los valores x_i, se calcula de la siguiente manera:

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

Knuth, "The Art of Computer Programming", vol. 2, página 232, 3.ª edición, describe el método de Welford para acumular esta suma en una sola pasada.

Si count es cero, este campo también debe ser cero.

range

object (Range)

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

bucketOptions

object (BucketOptions)

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

bucketCounts[]

string (int64 format)

Número de valores de cada segmento del histograma, tal 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 de bucketCounts debe ser igual al valor del campo count de la distribución.

Si está presente, bucketCounts debe contener N valores, donde N es el número de segmentos especificados en bucketOptions. Si proporciona menos de N valores, se supone que los valores restantes son 0.

El orden de los valores de bucketCounts sigue los esquemas de numeración de los tres tipos de segmentos. El primer valor debe ser el recuento del segmento de subdesbordamiento (número 0). Los siguientes N-2 valores son los recuentos de los segmentos finitos (del 1 al N-2). El valor N de bucketCounts es el recuento del segmento de desbordamiento (número N-1).

exemplars[]

object (Exemplar)

Debe estar en orden ascendente del campo value.

Intervalo

Intervalo 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 de los segmentos que se usan para crear un histograma de la distribución. Los segmentos pueden estar en una secuencia lineal o exponencial, o bien se pueden especificar explícitamente. BucketOptions no incluye el número de valores de cada contenedor.

Un segmento tiene un límite inferior inclusivo y un límite superior exclusivo para los valores que se contabilizan en ese segmento. El límite superior de un segmento debe ser estrictamente mayor que el límite inferior. La secuencia de N segmentos de una distribución consta de un segmento de subdesbordamiento (número 0), cero o más segmentos finitos (números del 1 al N-2) y un segmento de desbordamiento (número N-1). Los segmentos son contiguos: el límite inferior del segmento i (i > 0) es el mismo que el límite superior del segmento i - 1. Los segmentos abarcan todo el intervalo de valores finitos: el límite inferior del segmento de subdesbordamiento es -infinito y el límite superior del segmento de desbordamiento es +infinito. Los contenedores finitos se denominan así 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 definir exactamente uno de estos tres campos. options solo puede ser una de estas dos opciones:
linearBuckets

object (Linear)

El segmento lineal.

exponentialBuckets

object (Exponential)

Los segmentos exponenciales.

explicitBuckets

object (Explicit)

Los segmentos explícitos.

Lineal

Especifica una secuencia lineal de segmentos que tienen la misma anchura (excepto los segmentos de desbordamiento y de falta de flujo). Cada contenedor representa una incertidumbre absoluta constante sobre el valor específico del contenedor.

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

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

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

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

integer

Debe ser superior a 0.

width

number

Debe ser superior a 0.

offset

number

Límite inferior del primer segmento.

Exponencial

Especifica una secuencia exponencial de contenedores que tienen una anchura proporcional al valor del límite inferior. Cada contenedor representa una incertidumbre relativa constante sobre un valor específico del contenedor.

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

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

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

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

integer

Debe ser superior a 0.

growthFactor

number

Debe ser superior a 1.

scale

number

Debe ser superior a 0.

Explícito

Especifica un conjunto de contenedores con anchuras arbitrarias.

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

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

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

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

number

Los valores deben aumentar de forma monótona.

Exemplar

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 concreto añadido a un segmento de distribución, como un ID de seguimiento que estaba activo cuando se añadió un valor. Pueden contener más información, como valores de ejemplo, marcas de tiempo, origen, etc.

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

number

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

timestamp

string (Timestamp format)

Hora de observación (muestreo) del valor anterior.

Usa RFC 3339, donde la salida generada siempre se normaliza con Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otros desplazamientos distintos de "Z". Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

attachments[]

object

Información contextual sobre el valor de 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

Solo puede haber un archivo adjunto de un tipo de mensaje determinado en un solo ejemplar, y el sistema lo aplica.

Un objeto que contiene campos de un tipo arbitrario. Un campo adicional "@type" contiene un URI que identifica el tipo. Ejemplo: { "id": 1234, "@type": "types.example.com/standard/id" }.