apmspan.get

描述

integer/array apmspan.get(object parameters)

此方法允许根据给定的参数检索 span。

任何类型的用户都可以使用此方法。 可以在用户角色设置中撤销调用此方法的权限。 有关更多信息,请参阅用户角色。

参数

(object) 定义所需输出的参数。

该方法支持以下参数。

参数 类型 描述
time_from timestamp 仅返回在给定时间或之后开始的跨度。

参数行为:
- 必需
time_till timestamp 仅返回在给定时间之前开始的跨度。

参数行为:
- 必需
traceids string/array 仅返回属于给定跟踪的跨度。
spanids string/array 仅返回具有给定 ID 的跨度。
parent_spanids string/array 仅返回具有给定父跨度的跨度。
resource_attributes object/array 仅返回具有给定资源属性的跨度。
格式:[{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空数组将返回所有跨度。

可能的 operator 值:
0 - (默认) 包含;
1 - 等于;
2 - 不包含;
3 - 不等于;
4 - 存在;
5 - 不存在。
resource_attributes_evaltype integer resource_attributes 中条件的评估方法。

可能的值:
0 - (默认) And/Or;
2 - Or。
span_attributes object/array 仅返回具有给定跨度属性的跨度。
格式:[{"key": "<key>", "value": "<value>", "operator": "<operator>"}, ...]。
空数组将返回所有跨度。

可能的 operator 值:
0 - (默认) 包含;
1 - 等于;
2 - 不包含;
3 - 不等于;
4 - 存在;
5 - 不存在。
span_attributes_evaltype integer span_attributes 中条件的评估方法。

可能的值:
0 - (默认) And/Or;
2 - Or。
min_duration integer 仅返回持续时间大于或等于给定值的跨度,单位为纳秒。
max_duration integer 仅返回持续时间小于给定值的跨度,单位为纳秒。
filter object 仅返回与给定过滤器完全匹配的结果。

接受一个对象,其中键为属性名称,值为要匹配的单个值或值数组。

支持的属性:traceid、spanid、parent_spanid、trace_state、span_name、span_kind、service_name、scope_name、scope_version、status_code、status_message。
search object 返回与给定模式匹配的结果(不区分大小写)。

接受一个对象,其中键为属性名称,值为要搜索的字符串。如果未提供其他选项,则执行 LIKE "%…%" 搜索。

支持的属性:trace_state、span_name、service_name、scope_name、scope_version、status_message。
sortfield string/array 按给定属性对结果进行排序。

可能的值:timestamp、traceid、spanid、parent_spanid、trace_state、span_name、span_kind、service_name、scope_name、scope_version、duration、status_code、status_message。
offset integer 返回结果前要跳过的记录数。
countOutput boolean 这些参数在参考说明中进行了描述。
excludeSearch boolean
limit integer
output query
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

返回值

(integer/array) 返回以下内容之一:

  • 对象数组;
  • 如果使用了 countOutput 参数,则返回检索到的对象数量。

示例

获取跟踪的 span 层次结构

获取跟踪 "dee625f33cb0994e86c5cd4640e3b09c" 的前四个 span,并按开始时间排序。
parent_spanid 属性显示了各个 span 之间的关系:根 span 没有父级,而其他每个 span 都引用启动它的 span。

请求:

{
    "jsonrpc": "2.0",
    "method": "apmspan.get",
    "params": {
        "output": ["spanid", "parent_spanid", "service_name", "span_name", "duration", "status_code"],
        "time_from": 1790848800,
        "time_till": 1790852400,
        "traceids": "dee625f33cb0994e86c5cd4640e3b09c",
        "sortfield": "timestamp",
        "sortorder": "ASC",
        "limit": 4
    },
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "spanid": "7c1a9e2f4b6d8a03",
            "parent_spanid": "",
            "service_name": "zabbix-nginx",
            "span_name": "POST /zabbix.php",
            "duration": "1104826531",
            "status_code": "Unset"
        },
        {
            "spanid": "3f8b2c6d1e9a7054",
            "parent_spanid": "7c1a9e2f4b6d8a03",
            "service_name": "zabbix-frontend",
            "span_name": "POST /zabbix.php",
            "duration": "1098230418",
            "status_code": "Unset"
        },
        {
            "spanid": "b3390ad41931ed08",
            "parent_spanid": "3f8b2c6d1e9a7054",
            "service_name": "zabbix-frontend",
            "span_name": "mysqli::real_connect",
            "duration": "36671360",
            "status_code": "Ok"
        },
        {
            "spanid": "e41f7a2c9d5b3086",
            "parent_spanid": "3f8b2c6d1e9a7054",
            "service_name": "zabbix-frontend",
            "span_name": "mysqli_query",
            "duration": "19704118",
            "status_code": "Ok"
        }
    ],
    "id": 1
}

另请参阅

源代码

ui/include/classes/api/services/CApmSpan.php 中的 CApmSpan::get()。