本文介绍如何使用SmartMetrics,包括创建预测任务、查询指标和配置告警。
功能入口
登录ARMS控制台,在左侧导航栏选择 。
在工作区管理页面,单击目标工作区右侧的访问地址url链接进入Grafana。
说明如果需要登录Grafana,可以使用Grafana的Admin账号和创建工作区时设置的密码登录Grafana,或单击Sign in with Alibaba Cloud直接使用当前购买工作区的阿里云账号登录Grafana。
创建动态阈值任务
在Grafana左侧导航栏选择 。
在Datasource右侧下拉框选择合适的数据源。
在Metrics browser区域选择所需要动态监控的指标。
说明SmartMetrics目前只支持添加一条指标的任务,因此需要明确指标中的Label Value, 或者通过算子(如Sum、Count),实现单个指标的查询。
单击Metrics browser,然后在Select a metric区域选择具体的指标。
在Select labels to search in区域选择具体维度,然后在Select (multiple) values for your labels区域选择对应维度下的选项。
单击Use query生成对应的查询语句。
选择完成后,单击Run Query,查询到对应的指标曲线。
设定合适的模型参数,建议使用默认即可。
说明灵敏度:低灵敏度表示预测出来的上下边界之间的距离比较大,高灵敏度则表示上下边界之间的距离比较小。对波动性较强的指标,建议配置低灵敏度。
输入预测名称和描述内容。
重要预测名称不可以和已有的预测名称重复。
预测名称会成为当前动态阈值任务的名称,也是后续查询指标的名称。
单击创建预测,完成创建。
查看指标
在Grafana左侧导航栏选择 。
说明新预测任务创建后,任务立即启动, 完成数据拉取、计算、存储等任务,该过程需要等待1~2分钟左右。
根据预测名称找到预测任务,然后单击查看大盘,查看具体的指标和对应上下边界情况。
大盘提供了原始指标时间序列数据和对应的上下边界组合成的正常区域。指标值在边界之内的则可以理解为算法判定的正常,超出上下边界的则可以理解为算法判定的异常。
SmartMetrics会对指标的正常变化范围做出预测,生成未来一段时间的上下边界,并自动写入Prometheus。但Prometheus不会提前显示未来数据,而是根据实际时间自动获取对应数据,实时显示在大盘上。
单击面板名称,然后单击Edit。
当前指标和上下边界统一保存在cloud_product_prometheus_cn-hangzhou_aiops_userId组合成的数据源中。指标名称即为创建任务时的名称,对应的
label: smart_metric
取值为actual(原始指标)、upper(上边界指标)、 lower(下边界指标)。例如:如果您想单独查看上边界,则只需要在对应的cloud_product_prometheus_cn-hangzhou_aiops_userId数据源中,编辑指标为
名称{smart_metric="upper"}
,在本例中即为test{smart_metric="upper"}
。
异常检测
在Edit页面的Query页签。
B、C区域预置了上边界指标的和下边界指标对应的查询语句。
D、E区域预置了指标实际值超出上边界的和低于下边界的查询语句。
您可以根据需要复制这些查询语句配置其它大盘,用于分析、告警等后续的操作。
告警配置
在Grafana左侧导航栏选择 。
根据预测名称找到预测任务,然后单击查看大盘。
单击面板名称,然后单击Edit。
单击Alert页签,然后单击Create alert rule from this panel。
按照实际需求选择关注的指标。
需求
指标
实际值超出上边界时告警
指标D:my_metric_8{smart_metric="actual"} > ignoring (smart_metric) my_metric_8{smart_metric="upper"}
实际值低于下边界时告警
指标E:my_metric_8{smart_metric="actual"} < ignoring (smart_metric) my_metric_8{smart_metric="lower"}
实际值超出上边界的1.5倍时告警
修改指标D为:my_metric_8{smart_metric="actual"} > ignoring (smart_metric) my_metric_8{smart_metric="upper"}*1.5
实际值低于下边界的0.8倍时告警
修改指标E为:my_metric_8{smart_metric="actual"} < ignoring (smart_metric) my_metric_8{smart_metric="lower"}*0.8
实际值超出上边界或低于下边界时告警
修改D指标或E指标或新增一个指标:my_metric_8{smart_metric="actual"} > ignoring (smart_metric) my_metric_8{smart_metric="upper"} or my_metric_8{smart_metric="actual"} < ignoring (smart_metric) my_metric_8{smart_metric="lower"}
单击任意指标右侧的Run queries,检测查询语句是否合规。
在区域G,配置告警条件:
When:选择聚合函数。
OF :选择您关注的指标 。指标选择D、E或是您自定义的指标,可参考上述步骤5罗列的指标表格。
说明SmartMetrics默认如果指标没有超出上边界,D指标返回空值,所以IS ABOVE后面的值用默认的0就好。
如果您的需求是“当指标实际值超出上边界,就告警”,那么您可以如图所示的参数配置示例,其表示当指标D的平均值大于0,就告警。
在区域②的第一个下拉框中选择OK(图标①),表示当D是空数据时无需告警,是正常状态。
说明由于SmartMetrics默认如果指标没有超出上边界,D指标返回空值。如果没有选择OK选项,则会一直收到告警。
在区域③设置一个通知组。
单击页面右上角Save and Exit,保存并退出。完成后可以在大盘下方的Alert页签查看已配置好的告警。
后续告警处理流程,如选择钉钉告警、电话告警以及压缩策略等,请参见推送Grafana 8.2.x版原生告警事件到ARMS告警和告警管理(ARMS告警)。
任务管理
对于不需要的动态阈值检测任务,您可以在
页面单击右侧图标进行删除。