
# 查询span数据 - ShowSpanSearch
#### 功能介绍
span数据查询接口。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-apm/apm_04_0007.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-apm/apm_04_0021.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                            | 访问级别  | 资源类型（\*为必须） | 条件键                   | 别名                                                                                                                                                                                                                                                                                                                            | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | apm:application:getTraceEvents | Write | -           | g:EnterpriseProjectId | - apm:apm2TraceEvent:get  - apm:apm2TraceEvents:get  - apm:apm2BusinessSpanSearch:get   | -      |
     
  
 
#### URI
POST /v1/apm2/openapi/view/trace/span-search
#### 请求参数
表1请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                |
|:---|:---|:---|:---|
| x-business-id | 是    | Long   | 应用id。             |
| X-Auth-Token  | 是    | String | 从IAM服务获取的用户Token。 |
   
 表2请求Body参数 
| 参数                     | 是否必选 | 参数类型                                                     | 描述                                                                       |
|:---|:---|:---|:---|
| region                 | 是    | String                                                   | region名称。                                                                |
| order_param            | 否    | [OrderParam] object | 排序参数。                                                                    |
| real_source_full_match | 否    | Boolean                                                  | 是否为精确搜索。                                                                 |
| source_full_match      | 否    | Boolean                                                  | 全匹配搜索。                                                                   |
| tags_content           | 否    | String                                                   | header或body体，或自定义参数，或其他tags里字段的关键词搜索。                                    |
| start_time_string      | 否    | String                                                   | 开始时间。                                                                    |
| end_time_string        | 否    | String                                                   | 结束时间。                                                                    |
| time_used_min          | 否    | Long                                                     | 最小耗时。                                                                    |
| time_used_max          | 否    | Long                                                     | 最大耗时。                                                                    |
| contain_tags_content   | 否    | Boolean                                                  | 搜索结果是否包含tags内容详情。                                                        |
| page_size              | 否    | Integer                                                  | 每一页返回的行数。                                                                |
| page                   | 否    | Integer                                                  | 查询第几页的数据,默认查询第一页。                                                        |
| parameters             | 否    | String                                                   | 查询span的参数信息。                                                             |
| codes                  | 否    | Array of integers                                        | 字符串格式的的状态码，用于支持多个状态码查询。                                                  |
| global_trace_id        | 否    | String                                                   | vTraceId，虚拟traceId，一个vTraceId对应多个实际的traceId，vTraceId会从开始一直往下应用传输。        |
| global_path            | 否    | String                                                   | 虚拟traceId经过的path路径。                                                      |
| trace_id               | 否    | String                                                   | 在root的span调用产生的全局id，以此往后透传。                                              |
| span_id                | 否    | String                                                   | 代表一次rpc的调用的id，对于root的调用，值为字符串1，对于当前span调用的下一个spanId编号为1-1，1-2等格式，以此往后类推。 |
| env_id                 | 否    | Long                                                     | 环境id。                                                                    |
| instance_id            | 否    | Long                                                     | 实例id。                                                                    |
| app_id                 | 否    | Long                                                     | 组件id。                                                                    |
| biz_id                 | 是    | Long                                                     | 应用id。                                                                    |
| domain_id              | 否    | Integer                                                  | 租户id。                                                                    |
| source                 | 否    | String                                                   | 只有是根event也就是span的时候有值。                                                   |
| real_source            | 否    | String                                                   | 根event的时候存在，实际调用的url。                                                    |
| start_time             | 否    | Long                                                     | 开始时间。                                                                    |
| time_used              | 否    | Long                                                     | 耗时。                                                                      |
| code                   | 否    | Integer                                                  | 状态码，针对http的调用有效。                                                         |
| class_name             | 否    | String                                                   | 类名。                                                                      |
| is_async               | 否    | Boolean                                                  | 是否异步的event。                                                              |
| tags                   | 否    | Map\<String,String\>                                     | 包含用户自定义参数，header或body体里的内容，httpMethod，bizCode，以及后续可能新增参数。                |
| has_error              | 否    | Boolean                                                  | 是否有错误。                                                                   |
| error_reasons          | 否    | String                                                   | 错误类型。                                                                    |
| type                   | 否    | String                                                   | 类型。                                                                      |
| http_method            | 否    | String                                                   | 这里的method实际上是tags里面的http_method，只有url监控项才有。                              |
| biz_code               | 否    | String                                                   | 业务状态码的采集。                                                                |
   
 表3OrderParam 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| field | 否    | String | timeUsed：响应时间，startTime：产生时间。                                                                                                                                                                                                                                                                               |
| order | 否    | String | ASC：正序，DESC：逆序。填入时需要同时保证参数field填入。 枚举值： - **ASC**  - **DESC**   |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数             | 参数类型                                                                        | 描述      |
|:---|:---|:---|
| total          | Integer                                                                     | 返回的总数。  |
| span_info_list | Array of [ClientSpanInfo] objects | span信息。 |
   
 表5ClientSpanInfo 
| 参数                  | 参数类型                 | 描述                                                        |
|:---|:---|:---|
| global_trace_id     | String               | vTraceId，虚拟traceI。                                        |
| global_path         | String               | 虚拟traceId经过的path路径。                                       |
| trace_id            | String               | traceId。                                                  |
| span_id             | String               | span id。                                                  |
| env_id              | Long                 | 环境Iid。                                                    |
| instance_id         | Long                 | 实例id。                                                     |
| app_id              | Long                 | 组件id。                                                     |
| biz_id              | Long                 | 应用id。                                                     |
| biz_name            | String               | 应用名称。                                                     |
| display_name        | String               | 应用别名。                                                     |
| domain_id           | Integer              | 租户id。                                                     |
| source              | String               | 只有是根event也就是span的时候有值。                                    |
| real_source         | String               | 根event的时候存在，实际调用的url。                                     |
| start_time          | Long                 | 开始时间。                                                     |
| time_used           | Long                 | 耗时。                                                       |
| code                | Integer              | 状态码，针对http的调用有效。                                          |
| class_name          | String               | 类名。                                                       |
| is_async            | Boolean              | 是否异步。                                                     |
| tags                | Map\<String,String\> | 包含用户自定义参数，header或body体里的内容，httpMethod，bizCode，以及后续可能新增参数。 |
| has_error           | Boolean              | 是否报错。                                                     |
| error_reasons       | String               | 报错原因。                                                     |
| type                | String               | 类型，mysql，kafka等。                                          |
| http_method         | String               | 这里的method实际上是tags里面的http_method，只有url监控项才有。               |
| biz_code            | String               | 业务状态码的采集。                                                 |
| project_id          | String               | 项目id。                                                     |
| log_group_id        | String               | LTS日志组ID。                                                 |
| print_trace_id_flag | Boolean              | 是否打印traceId。                                              |
| log_stream_id       | String               | LTS日志流ID。                                                 |
| env_name            | String               | 环境名称。                                                     |
| instance_name       | String               | 实例名称。                                                     |
| app_name            | String               | 应用名称。                                                     |
| region              | String               | 区域。                                                       |
| project_name        | String               | LTS服务项目名称。                                                |
| app_type            | String               | 应用类型。                                                     |
   
#### 请求示例
分页查询region ID为xxx-roma-2，应用ID为162，指定起止时间的span数据。
```
/v1/apm2/openapi/view/trace/span-search
{
  "region" : "cn-north-7",
  "biz_id" : 162,
  "page" : 1,
  "page_size" : 15,
  "start_time_string" : "2022-10-25 10:03:16",
  "end_time_string" : "2022-10-25 10:23:16",
  "codes" : [ ]
}
```
#### 响应示例
**状态码： 200**
OK，请求响应成功。
```
{
  "total" : 1,
  "span_info_list" : [ {
    "global_trace_id" : "421422-1745466413564-3952254",
    "trace_id" : "421422-1745466413564-3952254",
    "span_id" : "1",
    "env_id" : 194456,
    "instance_id" : 421422,
    "app_id" : 204292,
    "biz_id" : 108903,
    "domain_id" : 2,
    "source" : "/{{alphaNumeric}}/{{alphaNumeric}}/v1/health-check",
    "real_source" : "/apm2/health/v1/health-check",
    "start_time" : 1745466413564,
    "time_used" : 0,
    "code" : 200,
    "class_name" : "org/apache/catalina/core/StandardHostValve",
    "is_async" : false,
    "tags" : { },
    "has_error" : false,
    "type" : "Tomcat",
    "http_method" : "GET",
    "project_id" : "fc6d40abe7e54492b7c7aa5a29d6cbab",
    "log_group_id" : "9902226b-1a7f-4709-9bdc-54d13f3d6757",
    "print_trace_id_flag" : true,
    "log_stream_id" : "cc60abf5-abed-4cee-8cd2-f95c468dab3a",
    "env_name" : "wulan",
    "instance_name" : "apm2-lubanops-open-api-6689b46fdb-tkhhz(172.16.0.83)",
    "app_name" : "lubanops-open-api",
    "region" : "cn-north-7",
    "project_name" : "cn-north-7",
    "app_type" : "JAVA"
  } ]
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK，请求响应成功。            |
| 400 | Bad Request，语义或参数有误。  |
| 401 | Unauthorized，没有权限。    |
| 403 | Forbidden，禁止访问。       |
| 404 | Not Found，没有找到要请求的资源。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-apm/ErrorCode.html)。
