更新时间:2023-07-26 16:57:57

AnyRobot 指标模型提供了基于指标数据(Metric)、链路数据(Trace)、日志数据(Log)及事件数据(Event)指标的统一定义、统一管理能力,能够实现指标数据的标准化及可复用性。您可根据实际场景中的数据基础,自行定义指标的计算规则、度量单位等参数,以创建基于不同数据类型的指标模型。

提示:成功创建后,AnyRobot的其他可视化分析模块(如:仪表盘图表、服务健康度等)可直接引用已创建的指标模型,根据实际场景需求对模型定义的指标数据进行多维度的高效指标分析。详情请参见 指标模型应用 章节。

指标模型管理模块支持指标模型的创建、删除、修改、查询及导入、导出等,具体操作请参考下文:

创建指标模型

进入数据管理>数据模型>指标模型配置页面,如下所示:

点击【+新建】,进入“新建指标模型”的配置页面,如下所示:

1. 配置基本信息

配置参数说明参见下表:

配置参数 参数说明 限制条件
*指标模型名称

填写指标模型的名称

• 指标模型名称不能重复,且不能为空;

• ≤40个字符

标签

根据实际需求设置指标模型的标签信息,用于业务标识,可通过键入回车键添加多个标签。

• 最多支持创建5个标签

备注 根据实际需求填写指标模型的其他属性信息

• ≤255个字符

2. 配置模型信息

在配置指标模型时,您可根据实际场景配置适用不同数据类型的指标模型,具体如下:

场景一:当数据源的数据类别(category)为指标数据(Metric),*查询语言配置项可选择“PromQL”或“DSL”,可创建基于指标数据的指标模型提示:查询语言建议选择“PromQL”,配置操作更为简易);

场景二:当数据源的数据类别(category)为链路数据(Trace)/日志数据(Log)/事件数据(Event),*查询语言配置项需选择“DSL”可创建对应数据类型的指标模型。

配置参数说明参见下表:

配置参数 参数说明 限制条件
*指标类型

在下拉框中选择指标的类型,指标类型默认为“原子指标”:

  • 原子指标:是对指标计算逻辑、具体算法的第一层抽象,可从根源上规范指标定义,保证指标的一致性。

说明:当前仅支持配置原子指标

• 指标类型不能为空

*日志分组

点击【设置日志分组】,在页面右侧弹出的"选择日志分组"抽屉中选择数据的来源日志库所属的日志分组。

说明:

1. 如找不到需要的日志分组,可点击抽屉最下方的“新建日志分组”进行创建;

2. 当前仅支持选择日志分组中的根分组。

• 日志分组不能为空;

• 仅支持选择一个分组。

*查询语言

根据数据源的数据类别(category)选择获取所需指标数据的对应查询语言,可选项:PromQL、DSL,具体如下:

  • 当数据类别(category)为指标数据(Metric)时,请根据使用偏好自行选择查询语言(“PromQL”(推荐)或“DSL”)创建指标模型。提示:推荐选择“PromQL”,配置操作较为简易;
  • 当数据类别(category)为链路数据(Trace)/日志数据(Log)/事件数据(Event)时,需选择“DSL”创建对应数据类型的指标模型。

• 查询语言不能为空


*计算公式

*查询语言选择“PromQL”时,需在此配置框中填写说明指标计算规则的PromQL查询语句(关于具体语法规则的说明,请参见右侧限制条件)。

指标模型生效后,系统会根据此处定义的计算规则,进行指标计算并得到指标数据(关于指标计算结果的详细说明,请参见 预览指标数据)。

说明:

1. 配置完成后,点击【数据预览】/【保存】后,系统将对计算公式语句的合法性进行校验,校验通过后,方可预览计算结果/成功创建指标模型。

2. 当前系统暂不对查询语句中的字段权限进行校验,若查询了日志分组中不存在的字段,数据查询结果则为空。

• 计算公式不能为空;

计算公式需遵循PromQL查询语言的语法规则进行书写。具体规范请参见AnyRobot Eyes 5 UniQuery 开发者指南》2.3 PromQL 查询语言>2.3.1-2.3.4 章节,了解PromQL查询语句的语法结构。若获取此文档失败,请联系相关技术支持人员获取。

*查询语言选择“DSL”时,此配置框中默认提供了公式的预输入框架,您需根据实际指标需求自行配置用于说明指标聚合方式、聚合规则的DSL查询语句。查询语句需遵循DSL的语法规范及其他约束条件,关于具体约束条件的说明,请参见右侧限制条件

指标模型生效后,系统会根据此处定义的计算规则,进行指标计算并得到指标数据(关于指标计算结果的详细说明,请参见 预览指标数据)。

说明:

1. 配置完成后,点击【数据预览】/【保存】后,系统将对计算公式语句的合法性进行校验,校验通过后,方可预览计算结果/成功创建指标模型。

2. 当前系统暂不对查询语句中的字段权限进行校验,若查询了日志分组中不存在的字段,数据查询结果则为空。

• 计算公式不能为空;

计算公式的书写需遵循DSL的基本语法规则及其他约束条件。关于DSL语法结构,请参见OpenSearch官网中DSL相关文档。其他约束条件具体如下:

1. 特定参数约束:

  • DSL语句中的 size 需设置为 0

2. 聚合方式及层数约束:

  • 当前不支持并行聚合(Multiple aggregation)查询;
  • 当前支持的聚合方式如下:
    • 分桶聚合:date_histogram(日期直方图)、terms(词条)、filters(过滤)、range(范围)、date_range(日期范围)
    • 值聚合: value_count(计数)、cardinality(去重计数) 、sum(求和)、avg(均值)、max(最大值)、min(最小值)、top_hits(桶内排序取 Top N)
  • 支持配置的分桶聚合层数需≤7,值聚合层数需=1,各层聚合的聚合名称不能重复。

3. 子聚合约束:

  • date_histogram(日期直方图)
    • 计算公式中必须包含date_histogram,且只能有一个;
    • date_histogram 分桶聚合下的子聚合需是一个值聚合类型;
    • date_histogram 聚合方式中的 fixed_interval 参数需设置为变量,格式为 {{__interval}},表示 fixed_interval 将随分析动态调整时间分桶的间隔。
  • top_hits(桶内排序取 Top N)
    • top_hits 需满足如下结构:

"size": <number>,
"sort": [
    {
        "<sort_field_name>": {
            "order": "desc | asc"
        }
    }
],
"_source": {
    "includes": [
        "<field_name1>",
        "<field_name2>",
        ......
    ]
}

*度量字段

仅当*查询语言选择“DSL”时,此项可配置且为必选项,配置说明如下:

  • 当计算公式中的值聚合方式为top_hits时,此处配置的度量字段应为top_hits中_source所包含的字段名称,且此字段名称对应的字段类型应为数值字段,不兼容日期。
  • 当计算公式中的值聚合方式为其他类型时,此处配置的度量字段应为计算公式(即DSL查询语句)中的值聚合名称,若配置的度量字段与值聚合名称不匹配,系统将会报错。

• 度量字段不能为空

*单位类型

根据实际指标需求设置输出指标(即“度量值”)的度量单位类型,可选项包括:数值单位、存储单位、时间单位、传输速率。

-
*度量单位

根据实际指标需求设置输出指标(即“度量值”)的度量单位,不同单位类型下可选择的具体度量单位如下:

  • 数值单位:无, 千, 百万, 十亿, 万亿,%
  • 存储单位:bit(s), Byte(s), KB, MB, GB, TB, PB
  • 时间单位:微秒,毫秒, 秒, 分, 时, 天, 周, 月, 年
  • 传输速率:bps, Kbps, Mbps
-

注意:当前版本仅支持DSL的时序分析。

预览指标数据

完成指标模型各项参数的配置后,点击表单下方的【数据预览】,可在页面右侧弹出的抽屉中预览此模型定义的指标数据,包括指定统计周期内的指标趋势图、指标数据,如下所示:

说明:数据预览抽屉默认展示最近30分钟的数据,数据的默认步长会因指标模型已配置的查询语言及计算公式中的数据间隙(interval)值的不同而有所不同,具体如下:

1. 当指标模型的查询语言为“PromQL”,预览数据时默认步长为6min;

2. 当指标模型的查询语言为“DSL”:

    • 若计算公式中配置的间隙(interval)值为常量,预览数据的默认步长为已配置的间隙(interval)值;
    • 若计算公式中配置的间隙(interval)值为变量,预览数据的默认步长为5min。

提示:在时序数据中,“步长”指的是时间序列相邻数据点之间的时间间隔或间距,步长的设置对于时序数据的分析、建模非常重要,需要结合具体场景及数据特征进行设置,较小的步长可以提供更为详细和动态变化的数据,同时也会导致数据量激增从而提高对计算性能的要求。

指标模型数据预览项说明:

  参数 参数说明
筛选 查询类型

必选项。设置筛选的类型,可选项:范围查询、即时查询。

时间范围/时间

必选项。设置筛选的时间范围或时间点,具体如下:

  • 当查询类型选择“范围查询”时,需配置具体的“时间范围”,默认为“最近30分钟”。筛选成功生效后,预览抽屉下方的<指标趋势图>、<指标数据预览表>区域将只展示匹配此时间范围的数据预览结果。
  • 当查询类型选择“即时查询”时,需配置具体的“时间”点,默认为当前日期及当前时刻。筛选成功生效后,预览抽屉下方的<指标数据预览表>区域将展示此时间点的数据预览结果。

提示:选择“即时查询”后,仅可查看指定时间点的<指标数据预览表>。

筛选条件

选填项。设置筛选的维度(lables字段值)及维度值,如设置的筛选维度为“cpu”、维度值为“1”,下方的<指标趋势图>、<指标数据预览表>区域将展示维度包含“cpu=1”的统计结果。点击“+添加筛选条件”可添加多个维度条件。

指标趋势图预览 指标趋势图

仅当选择【范围查询】时,可查看此趋势图。<指标趋势图>以时间为横轴,以度量值(度量值单位为系统自动转换的单位)为纵轴,展示了符合筛选条件的指标在指定时间范围内的趋势。通过预览指标趋势,您可根据实际指标需求及时调整指标模型的相关参数。

指标数据预览 指标数据预览表

<指标数据预览表>展示了指定时间周期/时间点内符合筛选条件的指标数据,具体如下:

  • 维度:即指标模型执行计算公式(即查询语句)后,在来源日志库中查询到的指标数据的lables字段值。
  • 时间:即指标模型执行计算公式(即查询语句)后,在来源日志库中查询到的指标数据的@timestamp字段值。
  • 度量值:即指标模型执行计算公式(即查询语句)后得到的计算结果。为便于展示且方便用户查看,在预览时,此度量值的单位为系统自动转换的单位。

 

► 其他管理操作

 批量导入创建指标模型

进入指标模型配置页面,点击列表上方的【导入】按钮,在弹出的窗口中选中包含指标模型配置信息的文件,点击【打开】后即可批量导入并创建指标模型。

注意:

1. 仅支持导入json格式的文件;

2. 支持导入多个指标模型:导入时,若指标模型的日志分组名称不存在,则导入操作失败。您需在完成对应日志分组的创建后,再进行导入操作;若AnyRobot中存有重名的指标模型对象,则导入动作将会停止,导入操作失败;

3. 批量导入失败后,您可在审计日志中查看对应的“失败”记录。

在指标模型列表中勾选某一指标模型后,点击列表上方的【导出】按钮,可将已创建的指标模型以“.json”格式导出,如下所示:

提示:支持导出多个指标模型。

  查看/编辑/删除指标模型

指标模型配置页面,选中列表中需查看/修改/删除的指定模型后,点击列表操作列的“查看/编辑/删除”按钮后,系统可分别执行对应操作。

说明:

1. 支持删除已被系统其他模块引用的指标模型,删除后,引用该模型的其他分析模块将会报错提示;

2. 指标模型被删除后,您可在审计日志中查看相应的“删除”日志。