istio系列:第六章-Telemetry遥测配置
遥测配置可以对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
配置在流量经过应用的何种方向时使用遥测策略
有三种方式
- CLIENT_AND_SERVER 当工作负载是网络流量的源或目标时选择方案
- CLIENT 当工作负载是网络流量的来源时选择方案
- 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遥测配置相关推荐
- ORB-SLAM2系列第六章—— 跟踪线程
系列文章目录 ORB-SLAM2系列第一章-- 简介 ORB-SLAM2系列第二章-- ORB 特征点提取 ORB-SLAM2系列第三章-- 地图初始化 ORB-SLAM2系列第四章-- 地图点.关键 ...
- jQuery系列 第六章 jQuery框架事件处理
第六章 jQuery框架事件处理 JavaScript以事件驱动来实现页面的交互,其核心是以消息为基础,以事件来驱动.虽然利用传统的JavaScript事件处理方式也能够完成页面交互,但jQuery框 ...
- Spring Cloud学习系列第六篇【分布式配置中心】
今天来学习如何使用Spring Cloud Config在微服务中搭建一个分布式配置中心,使用了分布式配置中心之后,我们就可以通过它来管理应用资源与业务资源配置内容.Spring Cloud Conf ...
- Linux学习:第六章-Linux网络配置
上一章的补充: 常见网络端口: 2021ftp服务文件共享 22ssh服务安全远程网络管理 23telnet服务 25smtp:简单邮件传输协议发信 110pop3:邮局协议收信 80www网页服务 ...
- ES系列十六、集群配置和维护管理
一.修改配置文件 1.节点配置 1.vim elasticsearch.yml # ======================== Elasticsearch Configuration ===== ...
- JBoss 系列十六:JBoss7/WildFly配置domain模式
2019独角兽企业重金招聘Python工程师标准>>> 内容概要 JBoss7/WildFly有两种模式可供选择,即standalone和dimain模式,详细请参照社区文档(链接) ...
- Spring Boot系列教程六:日志输出配置log4j2
一.前言 spring boot支持的日志框架有,logback,Log4j2,Log4j和Java Util Logging,默认使用的是logback日志框架,笔者一直在使用log4j2,并且 ...
- 第六章交换机及其配置总结
文章目录 6 交换机及其配置 6.1 交换机的交换结构 矩阵交换结构 总线交换结构 共享存储器交换结构 6.2 交换机的交换模式 6.3 虚拟局域网VLAN技术 VLAN技术特点 VLAN标识 VLA ...
- HTML5 2D游戏引擎研发系列 第五章
HTML5 2D游戏引擎研发系列 第五章 <Canvas技术篇-画布技术-纹理集复杂动画> 作者:HTML5游戏开发者社区-白泽 转载请注明出处:http://html5gamedev.o ...
- 计算机三级网络技术第六章(第一轮)
第六章 交换机及其配置 (选择题17-20 综合类第2题(配置命令语句)) 常考知识点:交换机的基本概念.内容.交换模式.配置 虚拟局域网技术 生成树协议STP 交换机S ...
最新文章
- 使用卷积神经网络的自动心电图诊断
- 百度率先用Silverlight构建MUZONE歌手投票平台正式上线!
- Tensorflow tf.placeholder函数
- 农业银行联行号怎么查询_农行信用卡解析丨菜卡怎么提额8W?学会一招就够了!...
- [转]LIB和DLL的区别与使用
- 如何从零开始整一个高颜值 GitHub 小程序客户端?
- 多选框勾选 和 后台数据处理
- 御剑情缘服务器维护吗,御剑情缘常见问题 解决方法分享
- 1-4课:程序、编程和算法之间到底有什么三角关系?
- 在spyder怎么升级_怎么更新spyder?
- VirtualBox导入虚拟机错误e_invalidarg (0x80070057) 使用管理员权限打开VirtualBox
- 关于idea的IdeaVim插件导致的光标问题(insert键)
- 软件测试面试要注意的细节以及处理(自我介绍篇)
- SpringBoot整合Redis集群
- 你还在纠结器件丝印放错的烦恼么?
- WordPress获取文章缩略图函数:get_the_post_thumbnail
- 2021年三季度中国医药商业行业A股上市企业营收排行榜:运盛医疗于8月初成功摘帽(附热榜TOP33详单)
- 【标准规范免费下载】国家标准、行业标准、图集下载方式良心推荐
- 谢处方电磁场与电磁波第4版课后答案
- 如何做一个自动重复发消息的脚本