要理解策略和遥测,首先要理解 Mixer 的架构;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sUuojjzC-1664190859192)(https://istio.io/docs/concepts/policies-and-telemetry/topology-with-cache.svg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NghRMvEl-1664190859194)(https://istio.io/docs/concepts/policies-and-telemetry/machine.svg)]
适配器和模板(Template)
适配器 封装了 Mixer 和特定基础设施后端之间的接口,把 Mixer 和基础设施后端连接起来。Istio已经实现了多个适配器。各种适配器都需要参数配置才能工作。例如日志适配器可能需要 IP 地址和端口来进行日志的输出。Istio使用处理器(Handler)来给适配器配置参数来生成一个适配器实例;。
模板 定义了从特定请求的属性到适配器输入的映射关系。一个适配器可以支持任意数量的模板。一个模板代表了一条check或者report的data item;
TEMPLATE_VARIETY_CHECK
TEMPLATE_VARIETY_REPORT
TEMPLATE_VARIETY_QUOTA
TEMPLATE_VARIETY_ATTRIBUTE_GENERATOR
策略和遥控功能的控制能力包含了三种类型资源的配置:
配置一组处理器(Handler),用于确定正在使用的适配器组及其操作方式。处理器配置的一个例子如:为 Statsd 后端提供带有 IP 地址的 statsd 适配器。
配置一组实例(Instance),描述如何将请求属性映射到适配器输入。实例表示一个或多个适配器将操作的各种数据。例如,运维人员可能决定从诸如 destination.service 和 response.code 之类的属性中生成 requestcount 指标的实例。
配置一组规则(Rule),这些规则描述了何时调用特定适配器及哪些实例。规则包含 match 表达式和 action。match 表达式控制何时调用适配器,而 action 决定了要提供给适配器的一组实例。例如,规则可能会将生成的 requestcount 实例发送到 statsd 适配器。
Instance对应Template
Handler对应Adapter
参考
Mixer Out Of Process Adapter Dev GuideMixer Out of Process Adapter WalkthroughMixer Template Dev Guide