idou老师教你学istio:监控能力介绍
经过了一年多的开发和测试,istio 于北京时间7月31日发布了1.0版本,并且宣布1.0版本已经可以成熟的应用于生产环境。对于 istio 的各项主要功能,之前的文章已经介绍的非常详细,并且还会有更多的文章来分析原理和实践功能。今天我们主要介绍的服务是 istio 流量监控能力。
我们知道每个 pod 内都会有一个 Envoy 容器,其具备对流入和流出pod的流量进行管理,认证,控制的能力。Mixer 则主要负责访问控制和遥测信息收集。

1.Prometheus 的应用和指标介绍
Prometheus 是一款开源的监控和告警系统,2016年加入 CNCF,以其灵活的检索语言,高效的数据存储方式以及多维度的数据模型使得越来越多的人使用。Istio 自0.8开始就默认的将 Prometheus 包含在内,我们可以通过查询 service 或者 pod 看到普罗的运行状态和地址。点开 Prometheus 界面,UI 十分简洁明了。

istio_requests_total
,点击 Execute,在图形界面中,将鼠标放到图中的折线可以看到请求的详细信息。


2.Jaeger UI 的使用和介绍
Istio 配合 jaeger 可以解决端到端的分布式追踪问题。Jaeger 于2017年9月成为 CNCF 的成员。Jaeger 是一款开源的分布式追踪系统,由 Google Dapper 和 OpenZipkin 社区联合推动。





istio/chart/pilot/templates/deployment.yaml
可以看到一个简单的赋值过程。

deployment istio-pilot
进行编辑。首先查看所有的deployment:

PILOT_TRACE_SAMPLING
这个属性,并对其值进行修改:

jaeger UI
确定过去一个小时没有任何对productpage的访问。

PILOT_TRACE_SAMPLING
的值从原有的100改为50。修改并保存后会有提示信息显示istio-pilot已经被修改。

稍等片刻后,我们使用脚本 curl productpage
10次。再次在jaeger UI上选择productpage
选择过去一小时,点击Find Trace
,会发现这次只检测到4个trace。我们在用相同的脚本再运行一次,发现检测到10个trace。至此我们一共curl product page
20次总共获得10次 trace,符合总次数的50%。

现在我们用相同的方法,将 PILOT_TRACE_SAMPLING
改为100%并且稍等片刻。使用相同的脚本 curl 10次 product page,再点击 Find trace,现在总共有20个 Trace,也就是先前的10个 trace 加上后来 curl 的10次,证明 PILOT_TRACE_SAMPLING
修改完毕会采集所有的请求。

3.华为云istio服务中简明监控介绍
在组件详情界面中除去 CPU 使用率,内存使用这种基本的监控外,华为云提供了另外两项简明流量监控,分别是 RPS (平均处理请求次数)和 RT(平均响应时延)。RPS 以分钟基本时间单位,纵轴则以处理请求次数为单位,用户可以直观的看到自己的应用单位时间内需要处理的请求数量。若 RPS 过高,则用户可以适当的采用相应措施,报障请求的高效处理。


Istio提供很多即插即用的服务,用户不需要修改自己的代码,也不需要重新构建自己的应用便可以直接享用istio带来的“红利”。可视化的监控服务,可修改的监控内容,可以更好地让用户了解自己应用的工作状态。本文只介绍了入门级的istio监控内容,除上文内容外,监控服务还有更多的功能等待用户去研究和使用。Istio就像一座金矿,而金子只属于勤奋的淘金工人。
转载自:https://juejin.cn/post/6844903669901557774