用於列印各種元數據 (proto) 的格式化器擴充功能
此擴充功能的完整名稱為 envoy.formatter.metadata
注意
此擴充功能可以運作,但尚未經過大量的生產環境測試,使用時請注意此點。
此擴充功能旨在針對不受信任的下游和上游流量都具有強健性。
提示
此擴充功能擴展了以下擴充功能類別,且可與之搭配使用
必須使用下列其中一個類型 URL 來組態此擴充功能
元數據格式化器擴充功能實作了 METADATA 命令運算子,該運算子會列印所有類型的元數據。METADATA 運算子採用的第一個參數定義了元數據的類型。支援下列類型的元數據(區分大小寫)
DYNAMIC
CLUSTER
ROUTE
UPSTREAM_HOST
LISTENER
VIRTUAL_HOST
如需關於存取日誌組態的更多資訊,請參閱此處。
- %METADATA(TYPE:NAMESPACE:KEY):Z%
元數據資訊,其中 TYPE 是元數據的類型(請參閱上述支援的類型),NAMESPACE 是設定元數據時使用的篩選器命名空間,KEY 是命名空間中的選用查閱鍵,並可選用指定以「:」分隔的巢狀鍵,Z 是一個選用參數,表示字串截斷至最多 Z 個字元長度。資料將記錄為 JSON 字串。例如,對於下列 ROUTE 元數據
com.test.my_filter: {"test_key": "foo", "test_object": {"inner_key": "bar"}}
%METADATA(ROUTE:com.test.my_filter)% 將記錄:
{"test_key": "foo", "test_object": {"inner_key": "bar"}}
%METADATA(ROUTE:com.test.my_filter:test_key)% 將記錄:
foo
%METADATA(ROUTE:com.test.my_filter:test_object)% 將記錄:
{"inner_key": "bar"}
%METADATA(ROUTE:com.test.my_filter:test_object:inner_key)% 將記錄:
bar
%METADATA(ROUTE:com.unknown_filter)% 將記錄:
-
%METADATA(ROUTE:com.test.my_filter:unknown_key)% 將記錄:
-
%METADATA(ROUTE:com.test.my_filter):25% 將記錄(截斷至 25 個字元):
{"test_key": "foo", "test
注意
對於類型化的 JSON 日誌,當參照的鍵是簡單值時,此運算子會使用字串、數值或布林類型來呈現單一值。如果參照的鍵是結構或清單值,則會呈現 JSON 結構或清單。結構和清單可以是巢狀的。在任何情況下,都會忽略最大長度。
注意
METADATA(DYNAMIC:NAMESPACE:KEY):Z 等效於 DYNAMIC_METADATA(NAMESPACE:KEY):Z METADATA(CLUSTER:NAMESPACE:KEY):Z 等效於 CLUSTER_METADATA(NAMESPACE:KEY):Z METADATA(UPSTREAM_HOST:NAMESPACE:KEY):Z 等效於 UPSTREAM_METADATA(NAMESPACE:KEY):Z