根据Istio官方报告,Observe(可观察性)为其重要特性。Istio提供非侵入式的自动监控,记录应用内所有的服务。

我们知道在Istio的架构中,Mixer是管理和收集遥测信息的组件。每一次当请求到达的时候,Envoy会调用Mixer进行预检查,在请求处理完毕后也会将过程上报给Mixer。

今天我们会结合开源监控插件(Jaeger)与嵌入Istio服务的应用性能管理服务来为大家展示部分Istio的全景监控能力。

1

Jaeger

Istio结合Jaeger使用可以解决端到端的分布式追踪问题。2017年Jaeger成为了CNCF(Cloud Native Computing Foundation)的一员。Jaeger主要可以使用在微服务的架构上,来完成分布式的上下文广播,事物监控,根因分析,服务依赖关系的分析等功能。

Jaeger界面简洁,颜色柔和,无过多复杂得元素在内。清晰地在左侧配置项栏中列出了用户需要设置的配置,用户需要选择想观察的服务,观察的时间段以及一些附加功能配置。点击find trace按钮后,所有符合预设条件的Trace都会被展示出来。单机某个Trace则会进入他的调用详情中。

比如从上图中的这个调用,我们就可以看出来当请求抵达productPage时,会产生两个子访问,一个去调用了details组件,另一个则去调用了reviews组件。每个Span则是体现了调用父子关系和调用持续时间,简明扼要的提供了用户关心的信息。对于收集此类监控信息,设定合适的采样频率是十分有必要的,这样一来避免了过度监控造成的数据冗余和性能影响,另一方面也避免了监控样本过少,不能足够支撑分析的情况。调整采样率可以通过Helm模板中的values.yaml对其中的traceSampling进行修改,再进行服务网格的创建。

对于运行中的服务网格,则可以对deployment istio-pilot进行修改。

Kubectl edit deployment istio-pilot 搜索并修改PILOT_TRACE_SAMPLING这个属性。

2

APM(应用性能管理)

华为云Istio服务为了方便用户了解自己应用和集群的工作状态,也在服务界面添加了监控的功能。与其他监控插件相同的是,用户依然不需要对自己代码进行任何改动和重构,直接可以使用监控服务。首先在监控概览页面可以看到应用状态,异常相应统计,时延统计以及应用拓扑图。

  • 应用概览展示的是应用的就绪状况,是否有应用未就绪或异常状态可以直观反映,异常相应和超长请求时延则展示租户下所有组件中异常数较大和时延较高的几个组件。

  • 拓扑图则展示的是应用中的访问,调用关系,以及相应的平均时延。除此之外,每个组件可以展开,看到组件中实例的工作状态。对于因延时影响或者是中断相应会有相应的连线表达方式。

点击拓扑图上任意一个组件亦或是点击异常相应与超长请求时间上的任何一个组件都可以进入流量概况页。流量概况页主要是以数字的形式展示流量情况。

针对该组件的请求总数,错误技术,平均时延和最大时延都会以数据的形式直接传递给使用者。

  • 流量监控中也包含了调用链信息。相比Jaeger,这里的调用链多了持久化的一层,可以查阅时间段更宽的数据。

随着微服务趋势的发展,越来越多的应用在架构阶段就已经解耦成多个组件,越是对于组件多的应用,监控信息就显得越发重要。精准,正确的监控信息不仅能够第一时间帮助运维人员发现并定位应用中的问题,而且还能够通过既往的数据来支持运维人员进行资源的合理分配与调度。

相关服务请访问https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019

idou老师教你学Istio 20 : Istio全景监控与拓扑的更多相关文章

  1. idou老师教你学Istio11 : 如何用Istio实现流量熔断

    在之前的最佳实践中,已经带大家通过一系列的实践任务领略了Istio的无穷魅力.今天,将向大家介绍如何用Istio实现流量熔断. 熔断机制是创建弹性微服务应用程序的重要模式.熔断可以帮助您自由控制故障影 ...

  2. idou老师教你学Istio 07: 如何用istio实现请求超时管理

    在前面的文章中,大家都已经熟悉了Istio的故障注入和流量迁移.这两个方面的功能都是Istio流量治理的一部分.今天将继续带大家了解Istio的另一项功能,关于请求超时的管理. 首先我们可以通过一个简 ...

  3. idou老师教你学Istio 26:如何使用Grafana进行可视化监控

    使用Grafana插件进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,Grafana插件在Istio对Prometheus支持的基础上,为用户提供基于网页仪表面板的可视化监控效果 ...

  4. idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控

    使用Prometheus进行监控是Istio提供的监控能力之一.Istio提供丰富的监控能力,为网格中的服务收集遥测数据.Mixer是负责提供策略控制和遥测收集的Istio组件. Istio通过Mix ...

  5. idou老师教你学istio2:监控能力介绍

    我们知道每个pod内都会有一个Envoy容器,其具备对流入和流出pod的流量进行管理,认证,控制的能力.Mixer则主要负责访问控制和遥测信息收集. 如拓扑图所示,当某个服务被请求时,首先会请求ist ...

  6. idou老师教你学Istio :如何用istio实现监控和日志采集

    大家都知道istio可以帮助我们实现灰度发布.流量监控.流量治理等功能.每一个功能都帮助我们在不同场景中实现不同的业务.那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinf ...

  7. idou老师教你学istio :基于角色的访问控制

    istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...

  8. idou老师教你学Istio 17 : 通过HTTPS进行双向TLS传输

    众所周知,HTTPS是用来解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输 ...

  9. idou老师教你学Istio: 如何用Istio实现K8S Egress流量管理

    本文主要介绍在使用Istio时如何访问集群外服务,即对出口流量的管理. 默认安装的Istio是不能直接对集群外部服务进行访问的,如果需要将外部服务暴露给 Istio 集群中的客户端,目前有两种方案: ...

随机推荐

  1. Vue 拖拽组件 vuedraggable 、 vue-dragging 、awe-dnd

    参考链接:http://www.ptbird.cn/vue-draggable-dragging.html vue-draggable 学习和使用:https://www.jianshu.com/p/ ...

  2. nginx+keepalived主从高可用配置

    上面有4台web服务器  我们实验条件限制,就开两台web服务器1.117  1.119 一.环境准备: 系统环境:CentOS 6.5 x86_64 Nginx版本:nginx v1.6.2 Kee ...

  3. python微信服务号关注授权、消息推送流程

    阅读目录 推送的方式: 微信推送的流程: 流程分析: 给用户推送消息功能 推送的方式: 短信推送(第三方) 邮件推送 微信推送 公众号:认证的公众号(个人的认证公众号每天只能发一篇文章),粉丝可以跟公 ...

  4. APP 和小程序中通过日期格式获取时间戳的一个bug

    介绍一下背景:业务逻辑就不多说了,就说关键出问题的一步,需要将 2019-10-10 这个格式转换为时间戳.在不同平台不同场景下问题还很怪异 app上:ios 安卓线上的都有问题  ios模拟器没问题 ...

  5. The Select mechanism in linux for block mechanism

    Today, some one mention theknowledge of Select Mechanism. It's better to konw something about it ! O ...

  6. .NET细节知识总结,不断更新

    1.catch (Exception)和catch (Exception e) Exception 类包含许多子类 程序执行的时候要将每一个类都搜索一遍 以找到符合的异常类 这样是蛮消耗资源的 影响效 ...

  7. 数据结构 -- 链表(LinkedList)

    链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成. 每个结点包括两个部分 ...

  8. VirtualBox中CentOS7.2 网络配置(固定IP+联网)(亲测有效)

           https://www.linuxidc.com/Linux/2018-04/151924.htm 一.前言 用虚拟机装Linux系统时,经常会出现一些问题.比如:从主机到虚拟机之间网络 ...

  9. PHP二维数组的引用赋值容易犯的错误

    大家一起来分析一下下面这段代码: <?php $arr = array(); $arr["abc"] = array("sex" => 100, & ...

  10. 1262: 谁不爱打牌(Java)

    WUSTOJ 1262: 谁不爱打牌 转自 断-肠-人的博客 Java代码在文末 Description BobLee最近在复习考研,但是他也喜欢打牌(有谁不爱玩牌呢?).但是作为一名ACMER,斗地 ...