統計資料 (proto)
統計資料 架構概述。
config.metrics.v3.StatsSink
[config.metrics.v3.StatsSink proto]
可外掛統計資料接收器的組態。
{
"name": ...,
"typed_config": {...}
}
- 名稱
(字串) 要實例化的統計資料接收器的名稱。此名稱必須與支援的統計資料接收器相符。請參閱下方 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
(重複 config.metrics.v3.TagSpecifier) 每個統計資料名稱都會透過這些標籤指定器進行獨立處理。當標籤符合時,第一個捕獲群組不會立即從名稱中移除,因此稍後的TagSpecifiers也可以比對名稱的相同部分。完成所有標籤比對後,會產生已擷取標籤版本的名稱,並用於代表標籤的統計資料接收器中,例如 Prometheus。
- stats_matcher
(config.metrics.v3.StatsMatcher) 用於統計資料名稱建立的包含/排除比對器。如果未提供,則會正常實例化所有統計資料。防止實例化某些統計資料系列可以改善執行特別大型組態的 Envoy 的記憶體效能。
警告
排除統計資料可能會以未記錄的方式影響 Envoy 的行為。請參閱issue #8771以取得更多資訊。如果觀察到任何非預期的行為變更,請立即開啟新問題。
- histogram_bucket_settings
(重複 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
(布林值) 如果
reject_all
為 true,則會停用所有統計資料。如果reject_all
為 false,則會啟用所有統計資料。
- exclusion_list
(type.matcher.v3.ListStringMatcher) 獨佔比對。會啟用所有統計資料,但比對提供的 StringMatcher proto 之一的統計資料除外。
- inclusion_list
(type.matcher.v3.ListStringMatcher) 包含比對。不會啟用任何統計資料,但比對提供的 StringMatcher proto 之一的統計資料除外。
config.metrics.v3.HistogramBucketSettings
[config.metrics.v3.HistogramBucketSettings proto]
指定統計資料的比對器,以及符合的統計資料應使用的儲存區。
{
"match": {...},
"buckets": []
}
- match
(type.matcher.v3.StringMatcher,必要) 此規則適用的統計資料。比對會套用至原始統計資料名稱 (在標籤擷取之前),例如
cluster.exampleclustername.upstream_cx_length_ms
。
- buckets
(重複 double,必要) 每個值都是儲存區的上限。每個儲存區必須大於 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": ...
}
- address
(config.core.v3.Address) 正在運行的符合 statsd 標準的監聽器的 UDP 位址。如果指定,統計數據將會刷新到這個位址。
必須設定 address 或 tcp_cluster_name 其中之一。
- tcp_cluster_name
(string) 正在運行符合 TCP statsd 標準的監聽器的叢集名稱。如果指定,Envoy 將會連線到這個叢集以刷新統計數據。
必須設定 address 或 tcp_cluster_name 其中之一。
- prefix
(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
sink 的統計數據配置 proto 架構。此 sink 會發出帶有 DogStatsD 相容標籤的統計數據。標籤可透過 StatsConfig 設定。
此擴充功能的完整名稱為 envoy.stat_sinks.dog_statsd
注意
此擴充功能不在資料平面上運作,因此旨在針對不受信任的流量保持強健性。
提示
此擴充功能擴展以下擴充功能類別,並可與之搭配使用
此擴充功能必須設定以下其中一個類型 URL
{
"address": {...},
"prefix": ...,
"max_bytes_per_datagram": {...}
}
- address
(config.core.v3.Address, 必填) 正在運行的符合 DogStatsD 標準的監聽器的 UDP 位址。如果指定,統計數據將會刷新到這個位址。
- prefix
(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
sink 的統計數據配置 proto 架構。此 sink 會以 text/event-stream 格式化的串流發出統計數據,供 Hystrix 儀表板 使用。
請注意,只能設定單一 HystrixSink。
串流會透過管理端點 GET /hystrix_event_stream
啟動。
此擴充功能的完整名稱為 envoy.stat_sinks.hystrix
注意
此擴充功能不在資料平面上運作,因此旨在針對不受信任的流量保持強健性。
提示
此擴充功能擴展以下擴充功能類別,並可與之搭配使用
此擴充功能必須設定以下其中一個類型 URL
{
"num_buckets": ...
}
- num_buckets
(int64) 滾動統計視窗劃分的儲存區數量。
每次刷新 sink 時,都會對所有相關的 Envoy 統計數據進行取樣,並將其加入滾動視窗中 (在此過程中移除視窗中最舊的樣本)。然後,sink 會將目前滾動視窗中的彙總統計數據輸出到事件串流。
rolling_window(ms)
=stats_flush_interval(ms)
*num_of_buckets
更多詳細說明請參閱 Hystrix wiki。