Distribution

Distribution enthält zusammenfassende Statistiken für eine Population von Werten. Optional enthält es ein Histogramm, das die Verteilung dieser Werte über eine Reihe von Buckets darstellt.

Die zusammenfassenden Statistiken sind die Anzahl, der Mittelwert, die Summe der quadratischen Abweichung vom Mittelwert, das Minimum und das Maximum der Population von Werten. Das Histogramm basiert auf einer Abfolge von Buckets und gibt die Anzahl der Werte an, die in jeden Bucket fallen. Die Grenzen der Buckets werden entweder explizit oder durch Formeln für Buckets mit fester oder exponentiell zunehmender Breite angegeben.

Obwohl es nicht verboten ist, ist es im Allgemeinen keine gute Idee, nicht endliche Werte (Unendlich oder NaNs) in die Wertepopulation aufzunehmen, da die Felder mean und sumOfSquaredDeviation dadurch bedeutungslos werden.

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

string (int64 format)

Die Anzahl der Werte in der Population Darf nicht negativ sein. Dieser Wert muss der Summe der Werte in bucketCounts entsprechen, wenn ein Histogramm angegeben wird.

mean

number

Das arithmetische Mittel der Werte in der Population Wenn count null ist, muss dieses Feld null sein.

sumOfSquaredDeviation

number

Die Summe der quadratischen Abweichungen vom Mittelwert der Werte in der Population Für die Werte x_i lautet dies:

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

Knuth, "The Art of Computer Programming", Vol. 2, Seite 232, 3. Ausgabe beschreibt die Welford-Methode, um diese Summe in einem Durchlauf zu akkumulieren.

Wenn count null ist, muss dieses Feld null sein.

range

object (Range)

Enthält den Bereich der Populationswerte, falls angegeben. Das Feld darf nicht vorhanden sein, wenn count null ist.

bucketOptions

object (BucketOptions)

Definiert die Grenzen des Histogramm-Buckets. Wenn die Verteilung kein Histogramm enthält, lassen Sie dieses Feld weg.

bucketCounts[]

string (int64 format)

Die Anzahl der Werte in jedem Bucket des Histogramms, wie in bucketOptions beschrieben. Wenn die Verteilung kein Histogramm hat, lassen Sie dieses Feld weg. Wenn ein Histogramm vorhanden ist, muss die Summe der Werte in bucketCounts mit dem Wert im Feld count der Verteilung übereinstimmen.

Falls vorhanden, sollte bucketCounts N Werte enthalten, wobei N die Anzahl der Buckets ist, die in bucketOptions angegeben sind. Wenn Sie weniger als N Werte angeben, wird für die verbleibenden Werte von 0 ausgegangen.

Die Reihenfolge der Werte in bucketCounts folgt den Bucket-Nummerierungsschemas, die für die drei Bucket-Typen beschrieben werden. Der erste Wert muss die Anzahl für den Unterlauf-Bucket sein (Nummer 0). Die nächsten N-2-Werte sind die Anzahl für die endlichen Buckets (Nummer 1 bis N-2). Der n-te Wert in bucketCounts ist die Anzahl für den Überlauf-Bucket (Nummer N-1).

exemplars[]

object (Exemplar)

Muss in aufsteigender Reihenfolge des Feldes value angegeben sein.

Bereich

Der Bereich der Populationswerte.

JSON-Darstellung
{
  "min": number,
  "max": number
}
Felder
min

number

Das Minimum der Populationswerte.

max

number

Das Maximum der Populationswerte.

BucketOptions

BucketOptions beschreibt die Bucket-Grenzen, die zum Erstellen eines Histogramms für die Verteilung verwendet werden. Die Buckets können eine lineare oder exponentielle Abfolge haben oder jeder Bucket kann explizit angegeben werden. BucketOptions enthält nicht die Anzahl der Werte in jedem Bucket.

Ein Bucket hat eine inklusive Untergrenze und eine exklusive Obergrenze für die Werte, die für diesen Bucket gezählt werden. Die Obergrenze eines Buckets muss strikt größer als die Untergrenze sein. Die Abfolge von N Buckets für eine Verteilung besteht aus einem Unterlauf-Bucket (Nummer 0), null oder mehr endlichen Buckets (Nummer 1 bis N – 2) und einem Überlauf-Bucket (Nummer N – 1). Die Buckets sind zusammenhängend: Die Untergrenze von Bucket i (i > 0) ist mit der Obergrenze von Bucket i – 1 identisch. Die Buckets erstrecken sich über den gesamten Bereich der endlichen Werte: Die Untergrenze des Unterlauf-Buckets ist "-unendlich" und die Obergrenze des Überlauf-Buckets ist +unendlich. Die endlichen Buckets heißen die, weil beide Grenzen endlich sind.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld options. Genau eines dieser drei Felder muss festgelegt werden. Für options ist nur einer der folgenden Werte zulässig:
linearBuckets

object (Linear)

Der lineare Bucket.

exponentialBuckets

object (Exponential)

Die exponentiellen Buckets.

explicitBuckets

object (Explicit)

Die expliziten Buckets

Linear

Gibt eine lineare Abfolge von Buckets an, die alle dieselbe Breite haben (außer Überlauf und Unterlauf). Jedes Bucket stellt eine konstante absolute Unsicherheit in Bezug auf den spezifischen Wert im Bucket dar.

Es gibt numFiniteBuckets + 2 (= N) Buckets. Für den Bucket i gelten die folgenden Grenzwerte:

Obergrenze (0 <= i < N-1): offset + (Breite * i).

Untergrenze (1 <= i < N): Offset + (Breite * (i - 1)).

JSON-Darstellung
{
  "numFiniteBuckets": integer,
  "width": number,
  "offset": number
}
Felder
numFiniteBuckets

integer

Muss größer als 0 sein.

width

number

Muss größer als 0 sein.

offset

number

Untergrenze des ersten Buckets.

Exponentiell

Gibt eine exponentielle Abfolge von Buckets an, deren Breite proportional zum Wert der Untergrenze ist. Jeder Bucket stellt eine konstante relative Unsicherheit bei einem bestimmten Wert im Bucket dar.

Es gibt numFiniteBuckets + 2 (= N) Buckets. Für den Bucket i gelten die folgenden Grenzwerte:

Obergrenze (0 <= i < N-1): Skalierung * (Wachstumsfaktor ^ i).

Untergrenze (1 <= i < N): Skalierung * (growthFactor ^ (i - 1)).

JSON-Darstellung
{
  "numFiniteBuckets": integer,
  "growthFactor": number,
  "scale": number
}
Felder
numFiniteBuckets

integer

Muss größer als 0 sein.

growthFactor

number

Muss größer als 1 sein.

scale

number

Muss größer als 0 sein.

Explizit

Gibt eine Reihe von Buckets mit beliebiger Breite an.

Es gibt size(bounds) + 1 (= N) Buckets. Für den Bucket i gelten die folgenden Grenzwerte:

Obergrenze (0 <= i < N-1): bounds[i] Untergrenze (1 <= i < N); bounds[i – 1]

Das Feld bounds muss mindestens ein Element enthalten. Wenn bounds nur ein Element hat, gibt es keine endlichen Buckets. Dieses einzelne Element bildet dann die gemeinsame Grenze der Überlauf- und Unterlauf-Buckets.

JSON-Darstellung
{
  "bounds": [
    number
  ]
}
Felder
bounds[]

number

Die Werte müssen kontinuierlich ansteigen.

Exemplar

Beispiele sind Beispielpunkte, mit denen aggregierte Verteilungswerte annotiert werden können. Sie sind Metadaten, die Informationen zu einem bestimmten Wert enthalten, der einem Verteilungs-Bucket hinzugefügt wurde, z. B. eine Trace-ID, die beim Hinzufügen eines Werts aktiv war. Sie können weitere Informationen enthalten, wie z. B. Beispielwerte und Zeitstempel, den Ursprung usw.

JSON-Darstellung
{
  "value": number,
  "timestamp": string,
  "attachments": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
Felder
value

number

Wert des Beispielpunkts. Dieser Wert bestimmt, zu welchem Bucket das Beispiel gehört.

timestamp

string (Timestamp format)

Die Beobachtungszeit (Stichprobenzeit) des obigen Werts.

attachments[]

object

Kontextbezogene Informationen zum Beispielwert. Beispiele:

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

Literalstring: type.googleapis.com/google.protobuf.StringValue

Bei der Aggregation verworfene Labels: type.googleapis.com/google.monitoring.v3.DroppedLabels

Es kann nur einen Anhang eines beliebigen Nachrichtentyps in einem einzelnen Beispiel geben, was vom System durchgesetzt wird.