我有以下设置和用例:
我们注意到,在出站请求期间(当请求离开 Pod 时),EnvoyProxy 会向请求添加 W3C(OpenTelemetry) 跟踪标头(如果它们不可用)。这是我们不希望出现的行为,因为它会在某些用例中造成混乱。
为了缓解这个问题,我尝试创建几个 EnvoyFilter 来禁用 HttpConnectionManager 的跟踪,但没有任何运气。
这些是我关注的文档页面:
下面你可以找到我根据这些文档创建的两个 EnvoyFilters,机器人似乎都不起作用:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: disable-tracing
namespace: <namespace>
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
context: ANY
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
patch:
operation: MERGE
value:
typed_config:
"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"
tracing:
global_enabled:
value: 0
client_enabled:
value: 0
random_sampling:
value: 0
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: disable-tracing
namespace: <namespace>
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
context: ANY
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
patch:
operation: MERGE
value:
typed_config:
"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager"
tracing:
client_sampling:
value: 0
random_sampling:
value: 0
overall_sampling:
value: 0
创建任何这些 EnvoyFilter 并重新启动 Pod 以使 Envoy 配置与 Envoyfilter 的配置合并后,我仍然看到 Envoy 配置很僵硬
"filters": [
{
"name": "envoy.filters.network.http_connection_manager",
"typed_config": {
"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager",
"http_filters": [
{
"name": "envoy.filters.http.router",
"typed_config": {
"@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router"
}
}
],
"route_config": {
"virtual_hosts": [
{
"domains": [
"*"
],
"name": "backend",
"routes": [
{
"match": {
"prefix": "/healthz/ready"
},
"route": {
"cluster": "agent"
}
}
]
}
]
},
"stat_prefix": "agent",
"tracing": {}
}
如您所见,两个过滤器以及 typed_config 都匹配,但是,tracing 部分仍然是空的。
有人对我可能缺少的东西有任何建议/想法吗?非常感谢任何帮助。
谢谢你
您可以通过设置以下 pod 注释来禁用跟踪标头(例如
x-b3-sampled
、spanid、traacid):
proxy.istio.io/config: |
tracing: {}