遥测配置可以对mesh网络流量追踪量进行配置,可以过滤特定的应用,可以对遥测后的数据标签进行添加和修改,可以根据选择器禁用某个应用的遥测功能。

注意:如果配置命名空间为istio-system,那么使用与所有的命名空间。该命名空间称之为父配置,如果配置中的信息与父配置的信息重叠则优先使用配置中的信息。

接下来直接上结构体进行讲解

type Telemetry struct {// 选择器,标明在何处使用该遥测策略,如果为设置,则应用所有的工作负载Selector *v1beta1.WorkloadSelector `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`// 跟踪配置所有的跟踪行为,以及设置采样率和自定义标签提取Tracing []*Tracing // 指标配置所有指标的行为Metrics []*Metrics // AccessLogging 为所有用户配置访问日志记录行为AccessLogging []*AccessLogging
}

接下来我们一一讲解

Tracing

tracing可以进行配置采样率,过滤工作负载,指定报告发送插件比如zipkin-alternate。

type Tracing struct {// 配置在流量经过应用的何种方向时使用该策略// CLIENT_AND_SERVER // 当工作负载是网络流量的源或目标时选择方案。// CLIENT   // 当工作负载是网络流量的来源时选择方案。// SERVER // 当工作负载是网络流量的目标时选择方案。Match *Tracing_TracingSelector // 用于遥测数据生成程序的提供者默认为istio.mesh.v1alpha1.MeshConfig.default_providers.tracingProviders []*ProviderRef `protobuf:"bytes,2,rep,name=providers,proto3" json:"providers,omitempty"`// 根据流量的百分比进行遥测,比如设置10%那么随机为流量中的百分之10%生成遥测数据。 默认为0% 可以设置到0.01%RandomSamplingPercentage *wrappers.DoubleValue // 如果为true 那么就不会向提供者发送遥测数据,但是对于遥测数据的生成依然照旧DisableSpanReporting *wrappers.BoolValue CustomTags map[string]*Tracing_CustomTag UseRequestIdForTraceSampling *wrappers.BoolValue
}

Match

配置在流量经过应用的何种方向时使用遥测策略

有三种方式

  1. CLIENT_AND_SERVER 当工作负载是网络流量的源或目标时选择方案
  2. CLIENT 当工作负载是网络流量的来源时选择方案
  3. SERVER 当工作负载是网络流量的目标时选择方案

Providers

指定了追踪要使用的应用,比如zipkin-alternate,使用zipkin进行链路追踪功能,名称在istio.MeshConfig.ExtensionProvider进行配置

默认提供了prometheus、stackdriver、envoy三种方式

为什么要设置Providers那?因为envoy仅仅追踪本pod下的流量,所以我们需要一个全局程序将这些envoy生成的span信息,记录、整合成一个完整的请求链。

CustomTags

这里修改每个跨度信息(跨度是指一个envoy生成个span到发送到链路程序的流程),比如跨度信息中的,头信息,比如为每个请求头添加标签、将环境变量的值添加到每个 span。

UseRequestIdForTraceSampling

默认为true

Envoy基于Ingress在分布式追踪中生成的Request ID的值进行链路追踪,但是由首先接收用户流量的代理生成,并不特定于Envoy,Envoy 会因为无法解释请求而中断跟踪ID。如果为false 可以防止 Envoy 采样基于请求 ID。

Metrics

对默认的指标进行覆盖

type Metrics struct {// 链路追踪提供者Providers []*ProviderRef `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"`// 这里我们就可以根据自定义配置将默认指标进行覆盖Overrides []*MetricsOverrides `protobuf:"bytes,2,rep,name=overrides,proto3" json:"overrides,omitempty"`
}

比如

为Prometheus 添加request_method、request_host这两个指标。

指标信息请访问https://istio.io/latest/docs/tasks/observability/metrics/customize-metrics/

spec:# no selector specified, applies to all workloads in the namespacemetrics:- providers:- name: prometheusoverrides:# match clause left off matches all istio metrics, client and server- tagOverrides:request_method:value: "request.method"request_host:value: "request.host"

AccessLogging

限制日志的生成策略

type AccessLogging struct {// 这里与Tracing.Match意思一致Match *AccessLogging_LogSelector `protobuf:"bytes,4,opt,name=match,proto3" json:"match,omitempty"`// 链路追踪程序提供者,这里是提供日志的生成Providers []*ProviderRef `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"`// 如果为true则不再生成日志Disabled *wrappers.BoolValue `protobuf:"bytes,2,opt,name=disabled,proto3" json:"disabled,omitempty"`// 根据CEL expression 对请求、连接进行过滤Filter *AccessLogging_Filter
}

istio系列:第六章-Telemetry遥测配置相关推荐

  1. ORB-SLAM2系列第六章—— 跟踪线程

    系列文章目录 ORB-SLAM2系列第一章-- 简介 ORB-SLAM2系列第二章-- ORB 特征点提取 ORB-SLAM2系列第三章-- 地图初始化 ORB-SLAM2系列第四章-- 地图点.关键 ...

  2. jQuery系列 第六章 jQuery框架事件处理

    第六章 jQuery框架事件处理 JavaScript以事件驱动来实现页面的交互,其核心是以消息为基础,以事件来驱动.虽然利用传统的JavaScript事件处理方式也能够完成页面交互,但jQuery框 ...

  3. Spring Cloud学习系列第六篇【分布式配置中心】

    今天来学习如何使用Spring Cloud Config在微服务中搭建一个分布式配置中心,使用了分布式配置中心之后,我们就可以通过它来管理应用资源与业务资源配置内容.Spring Cloud Conf ...

  4. Linux学习:第六章-Linux网络配置

    上一章的补充: 常见网络端口: 2021ftp服务文件共享 22ssh服务安全远程网络管理 23telnet服务 25smtp:简单邮件传输协议发信 110pop3:邮局协议收信 80www网页服务 ...

  5. ES系列十六、集群配置和维护管理

    一.修改配置文件 1.节点配置 1.vim elasticsearch.yml # ======================== Elasticsearch Configuration ===== ...

  6. JBoss 系列十六:JBoss7/WildFly配置domain模式

    2019独角兽企业重金招聘Python工程师标准>>> 内容概要 JBoss7/WildFly有两种模式可供选择,即standalone和dimain模式,详细请参照社区文档(链接) ...

  7. Spring Boot系列教程六:日志输出配置log4j2

    一.前言  spring boot支持的日志框架有,logback,Log4j2,Log4j和Java Util  Logging,默认使用的是logback日志框架,笔者一直在使用log4j2,并且 ...

  8. 第六章交换机及其配置总结

    文章目录 6 交换机及其配置 6.1 交换机的交换结构 矩阵交换结构 总线交换结构 共享存储器交换结构 6.2 交换机的交换模式 6.3 虚拟局域网VLAN技术 VLAN技术特点 VLAN标识 VLA ...

  9. HTML5 2D游戏引擎研发系列 第五章

    HTML5 2D游戏引擎研发系列 第五章 <Canvas技术篇-画布技术-纹理集复杂动画> 作者:HTML5游戏开发者社区-白泽 转载请注明出处:http://html5gamedev.o ...

  10. 计算机三级网络技术第六章(第一轮)

    第六章  交换机及其配置 (选择题17-20     综合类第2题(配置命令语句)) 常考知识点:交换机的基本概念.内容.交换模式.配置     虚拟局域网技术    生成树协议STP    交换机S ...

最新文章

  1. 使用卷积神经网络的自动心电图诊断
  2. 百度率先用Silverlight构建MUZONE歌手投票平台正式上线!
  3. Tensorflow tf.placeholder函数
  4. 农业银行联行号怎么查询_农行信用卡解析丨菜卡怎么提额8W?学会一招就够了!...
  5. [转]LIB和DLL的区别与使用
  6. 如何从零开始整一个高颜值 GitHub 小程序客户端?
  7. 多选框勾选 和 后台数据处理
  8. 御剑情缘服务器维护吗,御剑情缘常见问题 解决方法分享
  9. 1-4课:程序、编程和算法之间到底有什么三角关系?
  10. 在spyder怎么升级_怎么更新spyder?
  11. VirtualBox导入虚拟机错误e_invalidarg (0x80070057) 使用管理员权限打开VirtualBox
  12. 关于idea的IdeaVim插件导致的光标问题(insert键)
  13. 软件测试面试要注意的细节以及处理(自我介绍篇)
  14. SpringBoot整合Redis集群
  15. 你还在纠结器件丝印放错的烦恼么?
  16. WordPress获取文章缩略图函数:get_the_post_thumbnail
  17. 2021年三季度中国医药商业行业A股上市企业营收排行榜:运盛医疗于8月初成功摘帽(附热榜TOP33详单)
  18. 【标准规范免费下载】国家标准、行业标准、图集下载方式良心推荐
  19. 谢处方电磁场与电磁波第4版课后答案
  20. 如何做一个自动重复发消息的脚本

热门文章

  1. Spring 中 配置文件 加入 aspectj-autoproxy 项目报错
  2. 华为微认证华为云计算服务实践稳过 笔记资料
  3. STM32F1主从定时器设置
  4. ▶国务院关于延长中秋国庆放假至10天的通知
  5. 用matlab绘制幅相特性曲线(Nyquist图)
  6. 不是所有成功都值得尊重
  7. app中常见的测试点
  8. 远程服务器连接计算机和用户名填写,windos系统服务器:添加远程连接用户名方法...
  9. 动态二维码签到系统~第一节(Python动态二维码生成)
  10. LLC谐振变换器原理及变频控制