idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控
使用Prometheus进行监控是Istio提供的监控能力之一。Istio提供丰富的监控能力,为网格中的服务收集遥测数据。Mixer是负责提供策略控制和遥测收集的Istio组件。
Istio通过Mixer实现流量监控的基本流程如下图:每个pod内有一个service和proxy,Envoy容器实现proxy功能,对流入和流出pod的流量进行管理、认证和控制。Mixer则主要负责访问控制和遥测信息收集。当某个服务被请求时,首先会请求istio-policy服务,来判定是否具备访问资格,若具备资格则放行,反之则请求不会被下发到服务。这一切的访问信息,都会被记录在Envoy中,之后会上报给Mixer作为原始数据,并生成具体的监测指标。
Figure 1 mixer拓扑
Mixer配合一系列后端基础设施,为运维提供丰富而深入的控制和监测,并且不额外增加服务开发人员负担。后端提供用于构建服务的支持功能,访问控制系统,遥测捕获系统,配额执行系统,计费系统等。Mixer开放了Istio服务与不同的基础设施后端的交互能力,隔离用户程序和各个基础设施后端的实现细节。Istio通过丰富组件的边界交互,减少系统复杂性,消除服务代码中的策略逻辑并将控制权交给运维。
Mixer处理不同基础设施后端的是通过使用通用插件模型实现的。每个插件都被称为 Adapter,Mixer通过它们可对接到不同的基础设施后端,这些后端可提供日志、监控、配额、ACL检查等核心运维功能。这些功能灵活可控,你既可以定制新的基础设施后端,也可以完全禁用这些功能。
Figure 2 mixer 及其适配器
Prometheus是一款开源的监控和告警系统,将所有信息存储为时间序列数据,实现监控方式,实时分析系统运行的状态、执行时间、调用次数等,以找到系统的热点,为性能优化提供依据。Prometheus系统自2016年加入CNCF,以其灵活的检索语言,高效的数据存储方式以及多维度的数据模型被越来越多的人使用。Istio自0.8版本开始默认将Prometheus包含在内,Mixer支持对接到Prometheus监控设施的Adapter。用户可以通过查询service或pod看到Prometheus的运行状态和地址。也可以通过简洁明了的Prometheus的UI界面查看监测数据。
接下来通过实践说明如何使用Prometheus查询Istio指标,使用基于网页的界面进行指标查询。
1.验证Prometheus是否在集群中运行(默认情况下Prometheus的设置包含在istio.yaml和istio-demo-auth.yaml中)。在安装istio的Kubernetes环境中,执行如下命令:
2.通过浏览器访问http://localhost:9090/graph,在网页顶部的“Expression”输入框中,输入要查询的命令,Prometheus能够根据输入自动提示可输入的命令,然后单击 Execute 按钮。
1) 查询所有服务的请求总数:istio_request_bytes_count
2) 查询指定服务的请求总数:(如查询对 productpage 服务的所有请求的总数)istio_request_bytes_count{destination_service="productpage.default.svc.cluster.local"}
3) 查询指定时间范围内对指定服务的请求总数:(如查询过去5分钟内对所有 productpage 服务的请求率)
istio_request_bytes_count {destination_service=~"productpage.*", response_code="200"}[5m])
如下图,Prometheus在图形界面中也提供了直观的显示。将鼠标放到图中的折线可以看到请求的详细信息,详细信息中的每一项都可以作为选定参考指标的特性。
同时Istio支持和允许用户自己定义新的遥测数据,用户可以自定义需要的监控指标进而再使用Prometheus查看监控数据结果。
Istio通过mixer组件无缝对接Prometheus监控服务,满足用户对路由网关、应用服务、资源使用以及自定义指标等实时监控,帮助用户在使用istio的过程中,快速实现对关键业务的运维需求。
相关服务请访问https://support.huaweicloud.com/cce/index.html?cce_helpcenter_2019
idou老师教你学Istio 24:如何在Istio使用Prometheus进行监控的更多相关文章
- idou老师教你学Istio11 : 如何用Istio实现流量熔断
在之前的最佳实践中,已经带大家通过一系列的实践任务领略了Istio的无穷魅力.今天,将向大家介绍如何用Istio实现流量熔断. 熔断机制是创建弹性微服务应用程序的重要模式.熔断可以帮助您自由控制故障影 ...
- idou老师教你学Istio 07: 如何用istio实现请求超时管理
在前面的文章中,大家都已经熟悉了Istio的故障注入和流量迁移.这两个方面的功能都是Istio流量治理的一部分.今天将继续带大家了解Istio的另一项功能,关于请求超时的管理. 首先我们可以通过一个简 ...
- idou老师教你学Istio 04:Istio性能及扩展性介绍
Istio的性能问题一直是国内外相关厂商关注的重点,Istio对于数据面应用请求时延的影响更是备受关注,而以现在Istio官方与相关厂商的性能测试结果来看,四位数的qps显然远远不能满足应用于生产的要 ...
- idou老师教你学istio1:如何为服务提供安全防护能力
之前,已为大家介绍过 Istio 第一主打功能---连接服务. 凡是产生连接关系,就必定带来安全问题,人类社会如此,服务网格世界,亦是如此. 今天,我们就来谈谈Istio第二主打功能---保护服务. ...
- idou老师教你学Istio :如何用istio实现监控和日志采集
大家都知道istio可以帮助我们实现灰度发布.流量监控.流量治理等功能.每一个功能都帮助我们在不同场景中实现不同的业务.那Istio是如何帮助我们实现监控和日志采集的呢? 这里我们依然以Bookinf ...
- idou老师教你学istio :基于角色的访问控制
istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...
- idou老师教你学Istio 17 : 通过HTTPS进行双向TLS传输
众所周知,HTTPS是用来解决 HTTP 明文协议的缺陷,在 HTTP 的基础上加入 SSL/TLS 协议,依靠 SSL 证书来验证服务器的身份,为客户端和服务器端之间建立“SSL”通道,确保数据运输 ...
- idou老师教你学Istio: 如何用Istio实现K8S Egress流量管理
本文主要介绍在使用Istio时如何访问集群外服务,即对出口流量的管理. 默认安装的Istio是不能直接对集群外部服务进行访问的,如果需要将外部服务暴露给 Istio 集群中的客户端,目前有两种方案: ...
- idou老师教你学Istio:如何用 Istio 实现速率限制
使用 Istio 可以很方便地实现速率限制.本文介绍了速率限制的使用场景,使用 memquota\redisquota adapter 实现速率限制的方法,通过配置 rule 实现有条件的速率限制,以 ...
随机推荐
- Struts 2 --ONGL介绍
先了解一下OGNL的概念 OGNL的全名称Object Graph Navigation Language.全称为对象图导航语言,是一种表达式语言.使用这种表达式语言,你可以通过某种表达式语法,存取J ...
- 【ARM-Linux开发】Rico Board DIY系列实验教程 Day 2——搭建Boa服务器
一:BOA WebServer简介 BOA WebServer是一款单任务的HTTP服务器,与其他网页服务器不同之处,是当有连接请求到来是,它既不是为每个连接都单独创建进程,也不是采用复制自身进程处理 ...
- Android 反编译技术流程
为何需要反编译 作为一名Android开发者,很多的时候需要去学习别人优秀的代码,原本在GitHub上就有很多开源的项目代码,但有的时候在使用软件时候遇到自己想要的功能时,想要学习实现的代码时,这时候 ...
- web前端常用meta整理
标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务. 页面关键词 <meta ...
- SQL数据库基础语法
SQL语句的概述 SQL语言的分类 数据定义语言(Data Definition Language)主要用于修改.创建和删除数据库对象,其中包括CREATE ALTER DROP语句. 数据查询语 ...
- Excel常见文本清洗函数
1.=LEFT(text,[num_chars]) 函数RIGHT具有相似功能 例如选出K列中,从左数前一个字符:= LEFT(k2,1) 2.=FIND(find_text,within_tex ...
- Python习题005
作业一 :任意一个数字列表,然后进行排序(冒泡排序) 方法一: def test1(): list1 = [1,23,4,6,8,55,2,9,90,35] list1.sort() # sort() ...
- Mac机安装RedisCluster
版本信息 mac版本:10.14.5 redis版本:5.0.7 Step 1 : 安装redis-cli命令 安装redis-cli命令方法有N种,这里只列举一种,参考地址:<在 Mac 上搭 ...
- VMware Workstation虚拟机安装
VMware Workstation虚拟机安装 我们缺乏资金, 所以吃土.我们想搭 hadoop 集群, redis 集群, k8s 集群, 怎么办? 用虚拟机!! 一. 安装普通版本(Worksta ...
- (十三)Activitivi5之流程控制网关:并行
一.概念 所谓排他网关 顾名思义 执行到该网关,会有多条线路同时并行执行,当都执行完才继续执行后面的: 二. 案例 此时当“学生请假”任务节点完成之后,如下图此时有两个任务,必须等到两个任务都完成才会 ...