
# 配置和查看函数的调用链信息
#### 概述
用户在函数的"监控"页签，开启调用链能力。开启后可以在函数"监控 \> 调用链"页面或跳转至APM服务"应用监控 \> 调用链"页面，查看函数调用链信息。当前仅支持Java8和Java11函数。
#### 约束与限制
当前特性仅"中东-利雅得"、"华北-北京四"、"华东-上海一"、"华南-广州"、"亚太-雅加达"、"土耳其-伊斯坦布尔"区域支持。
#### 前提条件
- 调用链只支持512MB内存以上的函数，若函数内存低于512MB，无法使用调用链功能，请在"设置 \> 常规信息"中，扩大函数"内存"后再使用调用链功能。
- 已开通应用性能管理APM服务的使用权限，具体请参见[APM权限管理](https://support.huaweicloud.com/productdesc-apm2/apm_01_0007.html)。若未开通，则无法获取调用链相关数据。
 
#### 开通调用链
1. 登录[函数工作流控制台](https://console.huaweicloud.com/functiongraph/?locale=zh-cn)，在左侧的导航栏选择"函数 \> 函数列表"。
2. 单击函数名称，进入函数详情界面。
3. 选择"监控 \> 调用链"。
4. 单击"点击开通"。 
   图1开通调用链监控   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117778413.png "点击放大")
   
   
5. 此时调用链会从应用性能管理APM服务自动获取一个访问密钥AK/SK，如[图2]。
   
   图2获取访问密钥   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117778401.png "点击放大")
   - 已有访问密钥：在"访问密钥ID"的下拉列表中选择"访问密钥ID"，选择完成后单击"确定"，完成开通。
   
   - 无访问密钥：单击"创建"进入APM控制台，参见[新增访问密钥](https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html#section1)，新增后的AK/SK会同步至函数工作流控制台。
   
   
   
   
6. 管理调用链。 
   - 单击右上方"关闭调用链"，可以直接关闭调用链,关闭调用链后将不能查看函数调用链。
   
   - 若在APM控制台对AK/SK进行了编辑修改，返回函数工作流控制台，单击右上方"更新AKSK"，在弹框中更新AK/SK。
   
   
   
   
 
#### 查询调用链详情
1. 返回函数工作流控制台，在左侧导航栏选择"函数 \> 函数列表"，单击已开启调用链的函数，进入函数详情页面。
2. 在"监控"页签下，选择"调用链"。
3. 在左侧设置查询条件，完成后单击"查询Trace"。 
   图3设置查询条件   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117778405.png "点击放大")
   - 时间：设置查询时间，注意起止查询时间间隔不能超过24小时。
   
   
   
   - 响应时间：设置响应时间。
   
   - 执行结果：选择"全部/执行成功/执行失败"。
   
   - Trace ID：调用链的TraceID，填写该搜索条件后，其他搜索条件全部失效，只根据该TraceID搜索。
   
   
   
   
4. 在右侧查看调用链详情。 
   查看单条调用链详情：在查询到的调用链结果中，单击调用链名称，进入APM控制台查看。
   图4单击调用链名称   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117693353.png "点击放大")
   图5单条详情   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117693337.png "点击放大")
   查看所有调用链信息：单击"前往查看"，到APM进行完整的路径分析等更多操作。
   图6前往APM   
   ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117778393.png "点击放大")
   **示例**
   1. 如下是在函数A（DemoTestA）中通过HTTP请求方式调用函数B（DemoTestB）的完整函数执行过程。
      图7函数A调用函数B详情   
      ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117693345.png "点击放大")
      ①函数A方法的总耗时。
      ②通过HTTP请求调用函数B。
      ③进入函数B。
      ④执行executeQuery。
      ⑤执行Select查询语句。
      
   
   2. 如下是在函数首次调用包含冷启动的的完整函数执行过程。
      图8示例   
      ![](https://support.huaweicloud.com/usermanual-functiongraph/zh-cn_image_0000002117693329.png "点击放大")
      
      Spans动作说明如下：
      - **load**：是下载解压用户函数代码文件和依赖包的时间。
      
      - **preload**：运行时加载用户函数代码和初始化函数执行环境的时间。
      
      - **init**：初始化函数的执行时间，初始化函数只有在冷启动时才会被执行。
      
      - **processInvoke**：函数的执行时间。
      
      
      ![](https://support.huaweicloud.com/usermanual-functiongraph/public_sys-resources/note_3.0-zh-cn.png)
      您可以参见[调用链](https://support.huaweicloud.com/usermanual-apm2/apm_07_0018.html)，进一步了解调用链详情。
      
   
   
   
   
 
