
# 调用链拓扑图 - ShowTopology
#### 功能介绍
调用链拓扑图。
#### 调用方法
请参见[如何调用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::getTopology | Read | -           | -   | - apm:apm2BusinessTopology:get  - apm:apm2TraceTopology:get   | -      |
     
  
 
#### URI
GET /v1/apm2/openapi/view/trace/topology
 表1Query参数 
| 参数       | 是否必选 | 参数类型   | 描述          |
|:---|:---|:---|:---|
| trace_id | 是    | String | 调用链traceId。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 从IAM服务获取的用户Token。 |
   
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数              | 参数类型                                                                            | 描述           |
|:---|:---|:---|
| global_trace_id | String                                                                          | 全局traceId。   |
| line_list       | Array of [TraceTopologyLine] objects | 组件之间调用指向线列表。 |
| node_list       | Array of [TraceTopologyNode] objects | 组件节点列表。      |
   
 表4TraceTopologyLine 
| 参数            | 参数类型                                                                          | 描述          |
|:---|:---|:---|
| start_node_id | Long                                                                          | 开始节点id。     |
| end_node_id   | Long                                                                          | 结束节点id。     |
| span_id       | String                                                                        | 调用跨度id。     |
| client_info   | [TraceTopologyLineInfo] object | 客户端看到的信息。   |
| server_info   | [TraceTopologyLineInfo] object | 服务端信息。      |
| id            | String                                                                        | id。         |
| hint          | String                                                                        | 获取一条线的提示信息。 |
   
 表5TraceTopologyLineInfo 
| 参数         | 参数类型   | 描述                |
|:---|:---|:---|
| start_time | Long   | 开始时间。             |
| time_used  | Long   | 耗时。               |
| argument   | String | 参数信息，比如调用的url信息等。 |
| event_id   | String | event的id。         |
   
 表6TraceTopologyNode 
| 参数        | 参数类型   | 描述      |
|:---|:---|:---|
| node_id   | Long   | 节点id。   |
| node_name | String | 节点名称。   |
| hint      | String | 节点提示字段。 |
   
#### 请求示例
查询trace_id为16-1666684411910-1326的调用链拓扑图。
```
/v1/apm2/openapi/view/trace/topology?region=xxx-roma-2&trace_id=16-1666684411910-1326
```
#### 响应示例
**状态码： 200**
OK，请求响应成功。
```
{
  "node_list" : [ {
    "node_id" : 11,
    "node_name" : "apm-pu-task:xxx-roma-2",
    "hint" : null
  } ],
  "line_list" : [ {
    "start_node_id" : null,
    "end_node_id" : 11,
    "span_id" : "1",
    "client_info" : null,
    "server_info" : {
      "start_time" : 1666684411910,
      "time_used" : 1,
      "argument" : "(GET)(/apm2/health/v1/health-check)(200)",
      "event_id" : "1"
    },
    "hint" : "(1)((GET)(/apm2/health/v1/health-check)(200))",
    "id" : "1+1"
  } ],
  "global_trace_id" : null
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK，请求响应成功。            |
| 400 | Bad Request，语义或参数有误。  |
| 401 | Unauthorized，没有权限。    |
| 403 | Forbidden，禁止访问。       |
| 404 | Not Found，没有找到要请求的资源。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-apm/ErrorCode.html)。
