Distribution 包含总体值的汇总统计信息。它还可以根据需要包含一个直方图,用于表示这些值在一组分桶中的分布情况。
汇总统计信息是总体值集的数量、平均值、与平均值的平方偏差之和、最小值和最大值。直方图基于一系列分桶,并提供每个分桶中值的数量。分桶的边界以明确方式指定,也可以通过公式指定,用于宽度固定或呈指数增长的桶。
虽然不禁止在总体值中包含非有限值(无穷大或 NaN),但这样做通常不是一个好主意,因为这会使 mean 和 sumOfSquaredDeviation 字段变得毫无意义。
| JSON 表示法 |
|---|
{ "count": string, "mean": number, "sumOfSquaredDeviation": number, "range": { object ( |
| 字段 | |
|---|---|
count |
总体中值的数量。必须为非负数。 如果提供了直方图,则此值必须等于 |
mean |
总体中值的算术平均值。如果 |
sumOfSquaredDeviation |
总体中各值与平均值的平方差之和。对于值 x_i,方法为: Knuth 的《计算机程序设计艺术》第 2 卷第 232 页(第 3 版)介绍了 Welford 的方法,该方法可在一次遍历中累积此总和。 如果 |
range |
如果指定,则包含总体值的范围。如果 |
bucketOptions |
定义直方图分桶边界。如果分布不包含直方图,则省略此字段。 |
bucketCounts[] |
直方图中每个分桶的值的数量,如 如果存在,
|
exemplars[] |
必须按 |
Range
总体值的范围。
| JSON 表示法 |
|---|
{ "min": number, "max": number } |
| 字段 | |
|---|---|
min |
总体值的最小值。 |
max |
总体值的最大值。 |
BucketOptions
BucketOptions 描述了用于为分布创建直方图的分桶边界。分桶可以按线性序列或指数序列排列,也可以明确指定每个分桶。BucketOptions 不包含每个分桶中的值数量。
分桶的下限值(含)和上限值(不含)之间的值会被计入该分桶。分桶的上限必须严格大于下限。分布的 N 个分桶的序列包括一个下溢分桶(编号为 0)、零个或多个有限分桶(编号为 1 到 N - 2)和一个上溢分桶(编号为 N - 1)。分桶是连续的:分桶 i(i > 0)的下限与分桶 i - 1 的上限相同。分桶涵盖了整个有限值范围:下溢分桶的下限为 -infinity,上溢分桶的上限为 +infinity。之所以称为有限分桶,是因为其上下限都是有限的。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段 options。必须设置以下三个字段中的一个。options 只能是下列其中一项: |
|
linearBuckets |
线性分桶。 |
exponentialBuckets |
指数分桶。 |
explicitBuckets |
显式分桶。 |
线性
指定一个线性分桶序列,这些桶都具有相同的宽度(溢出分桶和下溢分桶除外)。每个分桶都表示相应分桶中特定值的绝对不确定性保持不变。
有 numFiniteBuckets + 2 (= N) 个分桶。分桶 i 的边界如下:
上限 (0 <= i < N-1):offset + (width * i)。
下限 (1 <= i < N):offset + (width * (i - 1))。
| JSON 表示法 |
|---|
{ "numFiniteBuckets": integer, "width": number, "offset": number } |
| 字段 | |
|---|---|
numFiniteBuckets |
必须大于 0。 |
width |
必须大于 0。 |
offset |
第一个分桶的下限。 |
Exponential
指定一个指数分桶序列,其宽度与下限值成正比。每个分桶都表示相应分桶中特定值的相对不确定性保持不变。
有 numFiniteBuckets + 2 (= N) 个分桶。分桶 i 的边界如下:
上限(0 <= i < N-1):scale * (growthFactor ^ i)。
下限(1 <= i < N):scale * (growthFactor ^ (i - 1))。
| JSON 表示法 |
|---|
{ "numFiniteBuckets": integer, "growthFactor": number, "scale": number } |
| 字段 | |
|---|---|
numFiniteBuckets |
必须大于 0。 |
growthFactor |
必须大于 1。 |
scale |
必须大于 0。 |
露骨内容
指定一组宽度任意的分桶。
有 size(bounds) + 1 (= N) 个分桶。分桶 i 的边界如下:
上限 (0 <= i < N-1):bounds[i] 下限 (1 <= i < N);bounds[i - 1]
bounds 字段必须至少包含一个元素。如果 bounds 只有一个元素,则没有有限分桶,并且该单个元素是上溢分桶和下溢分桶的共同边界。
| JSON 表示法 |
|---|
{ "bounds": [ number ] } |
| 字段 | |
|---|---|
bounds[] |
值必须单调递增。 |
Exemplar
Exemplar 是可用于对汇总分布值进行注解的示例点。它们是元数据,可提供有关添加到分布分桶中的特定值的信息,例如添加值时处于活跃状态的跟踪记录 ID。它们可能包含更多信息,例如示例值和时间戳、来源等。
| JSON 表示法 |
|---|
{ "value": number, "timestamp": string, "attachments": [ { "@type": string, field1: ..., ... } ] } |
| 字段 | |
|---|---|
value |
范例点的值。此值用于确定范例属于哪个分桶。 |
timestamp |
上述值的观测(采样)时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
attachments[] |
有关示例值的上下文信息。示例包括: 跟踪记录:type.googleapis.com/google.monitoring.v3.SpanContext 字面量字符串:type.googleapis.com/google.protobuf.StringValue 在汇总期间丢弃的标签:type.googleapis.com/google.monitoring.v3.DroppedLabels 一个范例中只能包含一个指定消息类型的附件,这是由系统强制执行的。 此对象可以包含任意类型的字段。附加字段 |