MSE微服务洞察功能支持动态采集任意方法的信息,从而生成日志并以调用链的形式存储。您只需在控制台配置规则,无需重启应用且实时生效。本文介绍如何在控制台配置微服务洞察规则。
背景信息
通过分析特定的日志信息可以帮助您排查问题或了解系统的行为。例如在全链路灰度场景下,您可以通过日志了解流量的走向是否符合预期,以及灰度流量是否发生逃逸。
在出现线上问题时,您可以通过查看日志来排查和定位问题。在一般的实践中如果要打印合适的日志,往往需要结合场景,在代码中加入对应的日志生成和输出的逻辑,然后重新部署应用,并在排查完成后去除相关逻辑并重新部署应用。该方式效率低下,对代码侵入性大且不支持在有强实效性的场景下排查问题。
使用MSE微服务洞察功能,您只需要在MSE治理中心控制台根据场景创建或开启对应的规则,就可以得到包含指定信息的日志,无需编码也无需重启应用。
概述
准备工作
创建Kubernetes集群
具体操作,请参见创建Kubernetes托管版集群或创建Kubernetes专有版集群。
接入MSE微服务治理
将ACK微服务应用接入MSE治理中心,具体操作,请参见ACK微服务应用接入MSE治理中心微服务治理。
创建微服务洞察规则
为满足不同场景对所需信息的不同需求,微服务洞察提供如下两类规则:
场景化日志规则:针对特定的场景定制化规则内容,开启后即可获取该场景下所需要的日志。目前包含无损上下线日志以及访问日志。
自定义日志规则:提供接口、实例、条件等不同维度的过滤能力以及丰富的打印内容种类,满足不同的场景下的不同需求。
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择 ,然后单击目标应用的资源量卡片。
在目标应用详情页面的左侧导航栏,选择 ,然后单击创建规则,配置相关参数,然后单击确定。
请根据需要,选择无损上下线日志、访问日志或自定义日志。
无损上下线日志规则
每个应用仅能创建一条无损上下线日志规则。创建并开启无损上下线日志规则后,微服务洞察会自动采集无损上下线流程中需要关注的信息并生成日志。
配置项 | 描述 |
流量打印 | 需要采集的流程。 |
是否开启规则 | 是否开启规则。
|
访问日志规则
每个应用仅能创建一条访问日志规则。配置后,即可完成对指定应用的全部访问日志的采集打印。
配置项 | 描述 |
流量打印 | 采集访问日志的类型。 |
是否开启规则 | 是否开启规则。
|
自定义日志规则
自定义日志规则是接口维度的流量日志规则。通过目标接口列表、目标实例以及过滤条件,支持精确地控制需要采集的接口和场景。通过流量日志行为,可以控制日志打印的内容,从而实现精细化的日志采集打印。
配置项 | 描述 |
名称 | 自定义规则名称。 说明 规则名在同一命名空间下不可重复。 |
接口列表 | 规则的目标接口。系统会采集、打印所添加的目标接口的日志。如果不填,默认采集、打印该类型的全部接口。
|
打印内容 | 系统在默认采集信息的基础上,会额外打印所勾选的内容。更多信息,请参见打印内容配置项。 说明 开启后续链路日志后,系统会自动按照当前的打印规则,打印后续涉及到的链路。 |
流量过滤条件 | 特定过滤条件开启后,系统会采集、打印符合规则的接口列表和目标实例限制且满足过滤条件的接口的日志,各个过滤条件之间的关系为或。更多信息,请参见流量过滤条件配置项。 |
目标实例 | 规则的目标实例,不填默认表示全选,如需指定实例可以根据目标实例IP地址选择需要的实例。系统会采集和打印所选目标实例的日志。 |
是否开启规则 | 是否开启日志规则。
|
配置项 | 描述 |
请求参数 | JSON格式。 |
返回值 | JSON格式。 |
线程上下文 | 字符串格式,调用点位线程ID及名称。 |
调用堆栈 | 字符串格式,调用点位的堆栈详情。开启调用堆栈采集可能会导致性能下降,请在必要时再开启。 |
Headers | JSON格式。 |
Cookies | JSON格式。 |
Attachments | JSON格式,指Dubbo调用请求中Attachments。 |
对象 | 字符串格式,打印调用当前方法的对象。 |
配置项 | 描述 |
慢调用 | 开启后,系统会采集和打印调用时间大于慢调用阈值的接口日志。 慢调用阈值:慢调用的阈值RT。仅当开启慢调用开关,才需设置慢调用阈值。 |
异常 | 开启后,系统会采集和打印存在异常的接口的日志。 |
全链路灰度标签 | 开启后,系统会采集和打印匹配指定全链路灰度标签的接口的日志。关于全链路灰度标签请参见全链路灰度之配置灰度。 |
查看日志
微服务洞察生成的日志会自动存储在本地以及远端。
存储至远端需要开通服务的依赖。如果您未开通所需的服务,请根据提示开通链路追踪专家版以及应用实时监控服务试用版。在功能公测期间,暂不收取该功能所产生的链路追踪及应用实时监控服务费用。
查看链路明细
微服务洞察生成的日志支持组织成符合OpenTelemetry标准的调用链,自动上报并存储在远端。您可以通过以下两种方式进入链路展示页面查看链路明细。
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择 ,然后单击目标应用的资源量卡片。
在目标应用详情页面的左侧导航栏,选择 ,在目标规则操作列,单击大盘,可跳转至链路展示页面,查看链路明细。
在链路展示页面筛选日志。筛选维度如下。
规则筛选:在页面上方的选择全链路流量日志规则,选择目标规则后,查询该规则所生成的日志信息。
条件筛选:在页面左侧区域,任选应用名称、接口名称以及主机地址作为筛选条件。
时间筛选:在页面右上方,按照时间筛选日志。
单击对应日志操作列的详情,查看该日志所在链路所有日志的详细信息,选中想要查看的日志,便可在附加信息中查看所采集的信息。
查看本地日志
MSE日志治理动态打印日志后,所有日志治理打印的日志会自动滚动保存至Pod本地/home/admin/.opt/ArmsAgent/logs/mse-log-governance.log。
使用OneAgent时,日志路径为/home/admin/.opt/ArmsAgent/plugins/ArmsAgent/logs/mse-log-governance.log。
默认滚动策略为:每个日志文件最大为100 MB,超过100 MB时会新建日志文件,除当前日志文件外最多存在1个滚动日志文件,旧的日志文件会被自动删除
微服务洞察规则示例
如下图所示,本示例基于A、B、C三个应用,其中A、B应用分别部署一个基线版本和一个灰度版本,其内部存在/a > /b > /c的调用链路。
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择 ,然后单击目标应用的资源量卡片。
在目标应用详情页面的左侧导航栏,选择 ,然后单击创建规则。
在创建规则页面,配置如下信息,然后单击确定。
开启后续链路日志后,系统会自动按照当前的打印规则,打印后续涉及到的链路。规则配置如下,其他选项保持默认。
开启规则后,由于/a接口存在/a > /b > /c的调用链路,因此该规则会被同时应用于/b以及/c接口。最终,日志采集的信息包含/a、/b、/c接口的基本信息以及请求参数。
在链路展示页面,/a接口的基本信息以及请求参数详情如下。
在链路展示页面,/b接口的基本信息以及请求参数详情如下。
在链路展示页面,/c接口的基本信息以及请求参数详情如下。
在创建规则页面,再次配置如下信息,然后单击确定。
增加一条新的规则打印灰度流量的Headers。规则配置如下,其他选项保持默认。
开启规则后,对于/a > /b > /c链路中的带有gray全链路灰度标签的流量,会在采集上一条规则所定义的信息的基础上,同时采集Headers信息。
- 本页导读 (1)