PAI-Rec引擎服务支持部署在EAS上,在引擎服务运行期间将产生一系列日志。您可以利用SLS日志服务来监控引擎服务,根据业务需求设置不同的报警配置,以便及时接收SLS监控服务产生的报警提醒。本文为您介绍如何配置日志服务以及监控报警通知。
数据接入配置
EAS引擎服务可以部署在公共资源组或专属资源组中,这两种部署方式在数据接入时,仅在步骤一中的操作方法略有不同,具体操作步骤如下:
步骤一:创建机器组
使用公共资源组和使用专属资源组部署服务时,创建机器组的方式不同,具体操作,请参见配置日志采集。
步骤二:配置Logtail
登录日志服务控制台。
在Project列表中,选择要存储日志的目标Project,没有的话,可以创建一个新的Project,关于Project的概念及创建步骤可参考管理Project。
选择或创建 LogStore,关于LogStore的概念可参考管理LogStore。
在LogStore中点击数据接入,在列出来的众多接入方式中选择Docker标准输出-容器。
机器组在步骤一已经创建,这里我们直接点击使用现有机器组即可。
将步骤一中创建的机器组,从左边选择至右边即可。
Logtail配置,设置名称,打开容器过滤选项。
重要如果在步骤一使用的是公共资源组对应的机器组,那么会采集整个区域所有EAS服务的日志,如果使用的是专属资源组对应的机器组,会采集专属资源组下所有EAS服务的日志,无论是哪种方式,采集的范围都是很大的,所以我们要进行容器过滤
我们需要添加两种类型的容器过滤,一个是容器label黑名单类型,标签名为:io.kubernetes.container.name,标签值为:easworker。另一种类型是 K8s Namespace正则匹配类型,这个类型是过滤出引擎服务的日志,如果您的引擎服务名为 testing-rec,那么正则表达式可以写为:^(testing-rec*),此表达式可以保证 testing_rec 和 testing_rec_prepub两个服务的日志数据都接入进来。
如果您对引擎服务内的日志有进一步的过滤需求,比如只想看到每次请求 event=end 这一条日志,忽略其他的日志信息,那么可以在处理配置中添加处理插件,插件的类型可以选择正则过滤日志(匹配日志字段的值),我们可以在采集日志中增加一条规则,日志字段为:content,正则表达式为:^(?=.*event=end)(?=.*uri=/api/rec/feed).*。
继续单击下一步,直到配置结束。
单击查询日志,即可在日志服务控制台查看到日志详情。
开启索引
为了便于后续的监控与报警,建议启用索引统计功能。具体操作步骤如下:
进入创建索引页面。单击右上角的查询分析属性,下拉列表中单击属性。
在查询分析配置面板中,设置属性字段,然后单击确定。
配置监控报警通知
完成上述操作步骤后,您可以前往日志服务控制台配置监控报警通知。具体操作步骤如下:
进入告警监控规则页面。
登录日志服务控制台。
在Project列表区域,单击目标Project。
在页签中,单击目标Logstore。
在查询/分析页面,单击
图标。
在告警监控规则面板中,配置告警规则,配置完成后,单击确定。
支持设置的报警如下:
接口超时报警
其中关键配置说明如下,您也可以根据需要进行调整。更多参数配置说明,请参见创建告警监控规则。
查询统计:配置为
*|select COUNT(*) as count where uri='/api/rec/internal/video_feed' and cost > 700,表示在2分钟之内,当接口/api/rec/internal/video_feed耗时大于700毫秒的数量超过150时触发报警。其中的uri和cost配置,可以根据需要进行相应的调整。添加标注:${alert_name}告警触发,条数:${count}。
ERROR数量报警
其中关键配置说明如下,您也可以根据需要进行调整。更多参数配置说明,请参见创建告警监控规则。
查询统计:配置为
ERROR not exposure_history_pkey not INFO | SELECT COUNT(*) as count。表示在1分钟之内,ERROR错误数量超过800则报警。添加标注:${alert_name}告警触发,error数量:${count}。
推荐条目数量不足报警
其中关键配置说明如下,您也可以根据需要进行调整。更多参数配置说明,请参见创建告警监控规则。
查询统计:配置为
"length of items less than size"。表示在5分钟之内,items的数量少于150条时触发报警。添加标注: ${alert_name}告警触发,影响请求数量:${__count__}。