用於列印各種元數據 (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

extensions.formatter.metadata.v3.Metadata

[extensions.formatter.metadata.v3.Metadata proto]