Distribution

Distribution contient des statistiques récapitulatives pour une population de valeurs. Il contient éventuellement un histogramme représentant la distribution de ces valeurs dans un ensemble de buckets.

Les statistiques récapitulatives sont le nombre, la moyenne, la somme de la déviation au carré par rapport à la moyenne, le minimum et le maximum de l'ensemble des valeurs de la population. L'histogramme est basé sur une séquence de buckets et indique le nombre de valeurs incluses dans chaque bucket. Les limites des buckets sont données de manière explicite ou par des formules pour les buckets de largeur fixe ou exponentielle.

Bien que cela ne soit pas interdit, il est généralement déconseillé d'inclure des valeurs non finies (infinis ou NaN) dans la population de valeurs, car cela rendra les champs mean et sumOfSquaredDeviation inutiles.

Représentation JSON
{
  "count": string,
  "mean": number,
  "sumOfSquaredDeviation": number,
  "range": {
    object (Range)
  },
  "bucketOptions": {
    object (BucketOptions)
  },
  "bucketCounts": [
    string
  ],
  "exemplars": [
    {
      object (Exemplar)
    }
  ]
}
Champs
count

string (int64 format)

Nombre de valeurs dans la population. Cette valeur ne doit pas être négative Cette valeur doit être égale à la somme des valeurs dans bucketCounts si un histogramme est fourni.

mean

number

la moyenne arithmétique des valeurs de la population ; Si count est nul, ce champ doit être nul.

sumOfSquaredDeviation

number

la somme des écarts au carré par rapport à la moyenne des valeurs de la population ; Pour les valeurs x_i, cela donne :

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

Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3e édition décrit la méthode de Welford pour accumuler cette somme en une seule passe.

Si count est nul, ce champ doit être nul.

range

object (Range)

Si elle est spécifiée, elle contient la plage des valeurs de la population. Ce champ ne doit pas être présent si count est nul.

bucketOptions

object (BucketOptions)

Définit les limites des buckets de l'histogramme. Si la distribution ne contient pas d'histogramme, omettez ce champ.

bucketCounts[]

string (int64 format)

Nombre de valeurs dans chaque bucket de l'histogramme, comme décrit dans bucketOptions. Si la distribution ne comporte pas d'histogramme, omettez ce champ. S'il existe un histogramme, la somme des valeurs dans bucketCounts doit être égale à la valeur du champ count de la distribution.

Si elle est présente, bucketCounts doit contenir N valeurs, où N est le nombre de buckets spécifié dans bucketOptions. Si vous fournissez moins de N valeurs, les valeurs restantes sont considérées comme étant nulles.

L'ordre des valeurs dans bucketCounts suit les schémas de numérotation des buckets décrits pour les trois types de buckets. La première valeur doit correspondre au nombre du bucket de dépassement de capacité négatif (numéro 0). Les N-2 valeurs suivantes correspondent aux nombres de buckets finis (de 1 à N-2). La N-ième valeur de bucketCounts correspond au nombre du bucket de dépassement (nombre N-1).

exemplars[]

object (Exemplar)

Doit être dans l'ordre croissant du champ value.

Plage

Plage des valeurs de la population.

Représentation JSON
{
  "min": number,
  "max": number
}
Champs
min

number

Valeur minimale des valeurs de la population.

max

number

Valeur maximale des valeurs de la population.

BucketOptions

BucketOptions décrit les limites des buckets utilisés pour créer un histogramme pour la distribution. Les buckets peuvent être dans une séquence linéaire ou exponentielle, ou chaque bucket peut être spécifié de manière explicite. BucketOptions n'inclut pas le nombre de valeurs dans chaque bucket.

Un bucket a une limite inférieure inclusive et une limite supérieure exclusive pour les valeurs comptabilisées dans ce bucket. La limite supérieure d'un bucket doit être strictement supérieure à la limite inférieure. La séquence de N buckets pour une distribution se compose d'un bucket de dépassement de capacité négatif (numéro 0), de zéro ou plusieurs buckets finis (numéros 1 à N-2) et d'un bucket de dépassement de capacité positif (numéro N-1). Les buckets sont contigus : la limite inférieure du bucket i (i > 0) est la même que la limite supérieure du bucket i-1. Les buckets couvrent toute la plage de valeurs finies : la limite inférieure du bucket de dépassement de capacité négatif est -infini et la limite supérieure du bucket de dépassement de capacité positif est +infini. Les buckets finis sont ainsi nommés, car leurs deux limites sont finies.

Représentation 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.
}
Champs
Champ d'union options. Un seul de ces trois champs doit être défini. options ne peut être qu'un des éléments suivants :
linearBuckets

object (Linear)

Bucket linéaire.

exponentialBuckets

object (Exponential)

Buckets exponentiels.

explicitBuckets

object (Explicit)

Buckets explicites.

Linéaire

Spécifie une séquence linéaire de buckets qui ont tous la même largeur (sauf les buckets de dépassement de capacité et de capacité insuffisante). Chaque bucket représente une incertitude absolue constante sur la valeur spécifique du bucket.

Il y a numFiniteBuckets + 2 buckets (= N). Le bucket i comporte les limites suivantes :

Limite supérieure (0 <= i < N-1) : offset + (width * i).

Limite inférieure (1 <= i < N) : offset + (width * (i - 1)).

Représentation JSON
{
  "numFiniteBuckets": integer,
  "width": number,
  "offset": number
}
Champs
numFiniteBuckets

integer

Cette valeur doit être supérieure à 0.

width

number

Cette valeur doit être supérieure à 0.

offset

number

Limite inférieure du premier bucket.

Exponentiel

Spécifie une séquence exponentielle de buckets dont la largeur est proportionnelle à la valeur de la limite inférieure. Chaque bucket représente une incertitude relative constante sur une valeur spécifique du bucket.

Il y a numFiniteBuckets + 2 buckets (= N). Le bucket i comporte les limites suivantes :

Limite supérieure (0 <= i < N-1) : échelle * (facteur de croissance ^ i).

Limite inférieure (1 <= i < N) : échelle * (facteur de croissance ^ (i - 1)).

Représentation JSON
{
  "numFiniteBuckets": integer,
  "growthFactor": number,
  "scale": number
}
Champs
numFiniteBuckets

integer

Cette valeur doit être supérieure à 0.

growthFactor

number

La valeur doit être supérieure à 1.

scale

number

Cette valeur doit être supérieure à 0.

Explicite

Spécifie un ensemble de buckets avec des largeurs arbitraires.

Il y a size(bounds) + 1 buckets (= N). Le bucket i comporte les limites suivantes :

Limite supérieure (0 <= i < N-1) : bounds[i] Limite inférieure (1 <= i < N) : bounds[i - 1]

Le champ bounds doit contenir au moins un élément. Si bounds ne comporte qu'un seul élément, il n'y a pas de buckets finis, et cet élément unique est la limite commune des buckets de dépassement de capacité positif et négatif.

Représentation JSON
{
  "bounds": [
    number
  ]
}
Champs
bounds[]

number

Les valeurs doivent être croissantes de manière monotone.

Exemplar

Les exemples sont des points qui peuvent être utilisés pour annoter les valeurs de distribution agrégées. Il s'agit de métadonnées qui fournissent des informations sur une valeur spécifique ajoutée à un bucket de distribution, comme un ID de trace qui était actif lorsqu'une valeur a été ajoutée. Ils peuvent contenir des informations supplémentaires, telles que des exemples de valeurs et des codes temporels, l'origine, etc.

Représentation JSON
{
  "value": number,
  "timestamp": string,
  "attachments": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Champs
value

number

Valeur du point exemplaire. Cette valeur détermine le bucket auquel appartient l'exemplaire.

timestamp

string (Timestamp format)

Heure d'observation (échantillonnage) de la valeur ci-dessus.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

attachments[]

object

Informations contextuelles sur la valeur de l'exemple. Exemples :

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

Chaîne littérale : type.googleapis.com/google.protobuf.StringValue

Libellés supprimés lors de l'agrégation : type.googleapis.com/google.monitoring.v3.DroppedLabels

Un seul type de message peut être associé à un exemple. Le système applique cette règle.

Objet contenant des champs d'un type arbitraire. Un champ supplémentaire "@type" contient un URI identifiant le type. Exemple : { "id": 1234, "@type": "types.example.com/standard/id" }.