统计信息(proto)
统计信息 架构概述.
config.metrics.v3.StatsSink
[config.metrics.v3.StatsSink proto]
可插拔统计信息接收器的配置。
{
"name": ...,
"typed_config": {...}
}
- 名称
(string) 要实例化的统计信息接收器的名称。名称必须与支持的统计信息接收器匹配。有关可用统计信息接收器默认列表,请参见 typed_config 下列出的扩展。接收器可以选择性地支持标记/多维指标。
- typed_config
(Any) 统计信息接收器特定配置,这取决于正在实例化的接收器。有关示例,请参见 StatsdSink。
config.metrics.v3.StatsConfig
[config.metrics.v3.StatsConfig proto]
统计信息配置,例如标记。
{
"stats_tags": [],
"use_all_default_tags": {...},
"stats_matcher": {...},
"histogram_bucket_settings": []
}
- stats_tags
(repeated config.metrics.v3.TagSpecifier) 每个统计信息名称都会独立地通过这些标记说明符进行处理。当匹配到标记时,第一个捕获组不会立即从名称中删除,因此后面的 TagSpecifiers 也可以匹配该匹配的相同部分。在所有标记匹配完成后,会生成标记提取版本的名称,并在表示标记的统计信息接收器(例如 Prometheus)中使用。
- stats_matcher
(config.metrics.v3.StatsMatcher) 用于创建统计信息名称的包含/排除匹配器。如果未提供,则所有统计信息都将按正常方式实例化。防止实例化某些统计信息族可以提高运行特别大型配置的 Envoy 的内存性能。
警告
排除统计信息可能会以未记录的方式影响 Envoy 的行为。有关更多信息,请参见 问题 #8771。如果观察到任何意外的行为变化,请立即打开一个新问题。
- histogram_bucket_settings
(repeated config.metrics.v3.HistogramBucketSettings) 定义用于设置直方图桶的规则。规则按顺序评估,第一个匹配项将被应用。如果未找到匹配项(或未设置任何规则),则使用以下默认桶
[ 0.5, 1, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 30000, 60000, 300000, 600000, 1800000, 3600000 ]
config.metrics.v3.StatsMatcher
[config.metrics.v3.StatsMatcher proto]
禁用统计信息实例化的配置。
{
"reject_all": ...,
"exclusion_list": {...},
"inclusion_list": {...}
}
- reject_all
(bool) 如果
reject_all
为 true,则所有统计信息都将被禁用。如果reject_all
为 false,则所有统计信息都将被启用。必须设置 reject_all、exclusion_list、inclusion_list 中的其中一个。
- exclusion_list
(type.matcher.v3.ListStringMatcher) 排他匹配。除了与提供的 StringMatcher proto 之一匹配的统计信息外,所有统计信息都将被启用。
必须设置 reject_all、exclusion_list、inclusion_list 中的其中一个。
- inclusion_list
(type.matcher.v3.ListStringMatcher) 包含匹配。除了与提供的 StringMatcher proto 之一匹配的统计信息外,所有统计信息都将被禁用。
必须设置 reject_all、exclusion_list、inclusion_list 中的其中一个。
config.metrics.v3.HistogramBucketSettings
[config.metrics.v3.HistogramBucketSettings proto]
指定统计信息的匹配器以及匹配统计信息应使用的桶。
{
"match": {...},
"buckets": []
}
- 匹配
(type.matcher.v3.StringMatcher, REQUIRED) 此规则适用的统计信息。该匹配应用于标记提取之前的原始统计信息名称,例如
cluster.exampleclustername.upstream_cx_length_ms
。
- 桶
(repeated double, REQUIRED) 每个值都是桶的上限。每个桶都必须大于 0 且唯一。桶的顺序无关紧要。
config.metrics.v3.StatsdSink
[config.metrics.v3.StatsdSink proto]
内置 envoy.stat_sinks.statsd
接收器的统计信息配置 proto 模式。此接收器不支持标记指标。
此扩展的限定名称为 envoy.stat_sinks.statsd
注意
此扩展不会在数据平面中运行,因此旨在对不受信任的流量具有鲁棒性。
提示
此扩展扩展并可用于以下扩展类别
此扩展必须使用以下类型 URL 中的其中一个进行配置
{
"address": {...},
"tcp_cluster_name": ...,
"prefix": ...
}
- 地址
(config.core.v3.Address) 正在运行的 statsd 兼容侦听器的 UDP 地址。如果指定,统计信息将刷新到此地址。
必须设置 address 或 tcp_cluster_name 中的其中一个。
- tcp_cluster_name
(string) 运行 TCP statsd 兼容侦听器的集群的名称。如果指定,Envoy 将连接到此集群以刷新统计信息。
必须设置 address 或 tcp_cluster_name 中的其中一个。
- 前缀
(string) StatsdSink 的可选自定义前缀。如果指定,这将覆盖默认前缀。例如
{ "prefix" : "envoy-prod" }
将更改发出的统计信息为
envoy-prod.test_counter:1|c envoy-prod.test_timer:5|ms
请注意,如果未指定前缀,将使用默认前缀“envoy”。
带有默认前缀的统计信息
envoy.test_counter:1|c envoy.test_timer:5|ms
config.metrics.v3.DogStatsdSink
[config.metrics.v3.DogStatsdSink proto]
内置 envoy.stat_sinks.dog_statsd
接收器的统计信息配置协议模式。该接收器以与 DogStatsD 兼容的标签发出统计信息。标签可以通过 StatsConfig 进行配置。
此扩展的限定名称为 envoy.stat_sinks.dog_statsd
注意
此扩展不会在数据平面中运行,因此旨在对不受信任的流量具有鲁棒性。
提示
此扩展扩展并可用于以下扩展类别
此扩展必须使用以下类型 URL 中的其中一个进行配置
{
"address": {...},
"prefix": ...,
"max_bytes_per_datagram": {...}
}
- 地址
(config.core.v3.Address, REQUIRED) 正在运行的 DogStatsD 兼容侦听器的 UDP 地址。如果指定,统计信息将刷新到此地址。
- 前缀
(string) 可选的自定义指标名称前缀。有关更多详细信息,请参阅 StatsdSink 的 prefix 字段。
- max_bytes_per_datagram
(UInt64Value) 发送 UDP 消息时使用的可选最大数据报大小。默认情况下,Envoy 将为每个数据报发出一个指标。通过指定大于单个指标的最大大小,Envoy 将发出多个以换行符分隔的指标。最大数据报大小不应超过您的网络 MTU。
请注意,如果此值小于单个指标,则可能无法遵守。
config.metrics.v3.HystrixSink
[config.metrics.v3.HystrixSink proto]
内置 envoy.stat_sinks.hystrix
接收器的统计信息配置协议模式。该接收器以 text/event-stream 格式的流发出统计信息,供 Hystrix 仪表盘 使用。
请注意,只应配置一个 HystrixSink。
流是通过管理端点 GET /hystrix_event_stream
启动的。
此扩展的限定名称为 envoy.stat_sinks.hystrix
注意
此扩展不会在数据平面中运行,因此旨在对不受信任的流量具有鲁棒性。
提示
此扩展扩展并可用于以下扩展类别
此扩展必须使用以下类型 URL 中的其中一个进行配置
{
"num_buckets": ...
}
- num_buckets
(int64) 滚动统计窗口划分的桶数。
每次接收器刷新时,都会对所有相关的 Envoy 统计信息进行采样并将其添加到滚动窗口中(在此过程中删除窗口中最旧的样本)。然后,接收器将滚动窗口的当前汇总统计信息输出到事件流中。
rolling_window(ms)
=stats_flush_interval(ms)
*num_of_buckets
可以在 Hystrix wiki 中找到更详细的说明。