在https://istio.io/v1.7/docs/reference/config/policy-and-telemetry/mixer-overview/#attributes,
给定的Istio部署有一个固定的属性词汇表理解。特定的词汇表由集合决定在部署中使用的属性生成器。主Istio中的属性生成器是Envoy,尽管它是专门的Mixer适配器也可以生成属性。
我想知道istio如何从envoy(或mixer适配器)获得这些数据(Attribute Vocabulary)以及envoy如何详细导出这些数据。
因为我想开发WASM日志记录插件,我需要定义自定义日志数据,等于在遥测v1在isio中记录…
我想知道istio如何从envoy(或混合器适配器)获得这些数据(属性词汇表)以及envoy如何详细导出这些数据。
根据banzaicloud
因为Istio Telemetry V2缺乏访问K8s元数据的中心组件(Mixer),代理本身需要提供丰富度量所需的元数据。此外,必须将Mixer提供的功能添加到Envoy代理中,以取代基于Mixer的遥测功能。Istio Telemetry V2使用两个自定义Envoy插件来实现这一点。
Telemetry V2中的代理内服务级别度量由两个自定义插件提供,元数据交换和统计.
默认情况下,在Istio 1.5中,Telemetry V2是在Istio代理过滤器中编译时启用的,主要是出于性能原因。相同的过滤器也被编译为WebAssembly (WASM)模块,并随Istio代理一起发布。
你可以在上面的文档中找到更多有用的信息。
因为我想开发用于日志记录的WASM插件,我需要定义自定义日志数据,它等于istio中遥测v1的日志记录
我在envoy网站上找到了这个文档,里面有你可能用到的所有属性。
有一个关于如何在asm ABI中获取这些值的示例。
路径表达式允许通过字段名、映射和列表索引的序列访问结构化属性中的内部字段。例如,Wasm ABI中的get_property({" node ", " id "})提取节点消息属性中id字段的值,而get_property({" request ", " headers ", " my-header "})是指特定请求头的逗号连接值。