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 Menge der Werte der Population. Das Histogramm basiert auf einer Reihe 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.

Es ist zwar nicht verboten, nicht endliche Werte (Unendlich oder NaN) in die Grundgesamtheit der Werte aufzunehmen, aber es ist im Allgemeinen keine gute Idee, 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

Der arithmetische Mittelwert 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 Werte x_i gilt:

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

Knuth, „The Art of Computer Programming“, Band 2, Seite 232, 3. Auflage, beschreibt die Methode von Welford zum Erfassen dieser Summe in einem Durchgang.

Wenn count null ist, muss dieses Feld null sein.

range

object (Range)

Falls angegeben, enthält der Parameter den Bereich der Populationswerte. Das Feld darf nicht vorhanden sein, wenn count null ist.

bucketOptions

object (BucketOptions)

Definiert die Grenzen der 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 dem Wert im Feld count der Verteilung entsprechen.

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

Die Reihenfolge der Werte in bucketCounts entspricht den für die drei Bucket-Typen beschriebenen Bucket-Nummerierungsschemas. 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 Felds value angegeben werden.

Bereich

Der Bereich der Populationswerte.

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

number

Der Mindestwert der Populationswerte.

max

number

Der Maximalwert der Populationswerte.

BucketOptions

BucketOptions beschreibt die Bucket-Grenzen, die zum Erstellen eines Histogramms für die Verteilung verwendet werden. Die Buckets können in einer linearen oder exponentiellen Reihenfolge angeordnet sein. Alternativ können Sie jeden Bucket explizit angeben. BucketOptions enthält nicht die Anzahl der Werte in den einzelnen Buckets.

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 Bucket muss strikt größer als die Untergrenze sein. Die Sequenz 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 dieselbe wie die Obergrenze von Bucket i – 1. Die Buckets decken den gesamten Bereich endlicher Werte ab: Die Untergrenze des Unterlauf-Buckets ist „-unendlich“ und die Obergrenze des Überlauf-Buckets ist „+unendlich“. Die endlichen Buckets heißen so, 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 Sequenz von Buckets an, die alle dieselbe Breite haben (außer Überlauf und Unterlauf). Jeder Bucket steht für eine konstante absolute Unsicherheit für den jeweiligen Wert im Bucket.

Es gibt numFiniteBuckets + 2 (= N) Buckets. Der Bucket i hat die folgenden Grenzwerte:

Obergrenze (0 <= i < N-1): „offset“ + („width“ * i).

Untergrenze (1 <= i < N): „offset“ + („width“ * (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 Sequenz von Klassen an, deren Breite proportional zum Wert der Untergrenze ist. Jeder Bucket steht für eine konstante relative Unsicherheit für einen bestimmten Wert im Bucket.

Es gibt numFiniteBuckets + 2 (= N) Buckets. Der Bucket i hat die folgenden Grenzwerte:

Obergrenze (0 <= i < N-1): scale * (growthFactor ^ i).

Untergrenze (1 <= i < N): scale * (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 beliebigen Breiten an.

Es gibt size(bounds) + 1 (= N) Buckets. Der Bucket i hat 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 und dieses einzelne Element ist die gemeinsame Grenze der Überlauf- und Unterlauf-Buckets.

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

number

Die Werte müssen monoton steigend sein.

Exemplar

Exemplare 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 (Stichprobenerhebung) des oben genannten Werts.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30".

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

In einem einzelnen Beispiel darf es nur einen Anhang eines bestimmten Nachrichtentyps geben. Dies wird vom System erzwungen.

Ein Objekt, das Felder eines beliebigen Typs enthält. Ein zusätzliches Feld "@type" enthält einen URI zur Identifizierung des Typs. Beispiel: { "id": 1234, "@type": "types.example.com/standard/id" }.