本文介绍什么是调用分析,包括调用分析的概念、使用场景及注意事项、函数指标及日志查询。

什么是调用分析

概念

调用分析功能是函数请求级别的执行状态汇总。开启调用分析功能后,系统会收集函数每次执行的指标信息,包括性能指标、异常指标及追踪指标,并将这些指标信息投递到您在日志配置时选择的日志仓库中。
  • 性能指标:内存使用情况、函数执行时间、初始化时间及冷启动信息等。
  • 异常指标:是否执行失败、错误详情等。
  • 追踪指标:链路追踪详情、是否采样等。

开启调用分析后可以洞察每一次的函数调用,帮助您掌握函数执行情况。

使用场景

  • 查看函数执行详情、性能指标及错误信息等。
  • 与函数日志结合,创建自定义监控大盘。

    您可以在函数中记录一些业务相关日志,结合业务日志与分析日志来创建自定义监控大盘。更多信息,请参见基于请求级别指标创建Grafana大盘

注意事项

  • 生效范围

    调用分析是服务的配置项,开启调用分析将对服务下的所有函数生效,每个函数的每次执行都会记录一条日志。

  • 前提条件

    开启调用分析前,需要开启日志配置。调用分析的日志会被记录到您配置的日志库中,如果您没有配置日志,需要配置日志

  • 费用

    日志投递到日志服务中,会产生一定的日志存储费用。关于日志服务定价,请参见产品定价

函数指标

开启调用分析功能后,系统会收集函数每次执行的指标信息。同时,这些指标信息将被投递到您在配置日志时选择的日志仓库中。如果您没有配置日志,则无法开启调用分析功能。

调用分析会将指标信息记录到您的Logstore中,具体形式如下:Insights

调用分析会采集以下指标。

指标名称 描述 示例值 是否每次调用都会记录
serviceName 服务名称 my-service
functionName 函数名称 my-function
versionId 版本名称 12
qualifier 服务别名 prod 是,默认为LATEST。
requestId 请求ID db72ce53-ccbe-4216-af55-642622e01494
operation 操作名称 invocation
memoryMB 函数的内存限制 512
memoryUsageMB 函数执行使用的内存 410
durationMs 函数执行时间 20.20
isColdStart 是否冷启动 false 是,默认值为false。
hasFunctionError 函数执行是否出错 false 是,默认值为false。
errorType 函数错误类型,包含以下三种:
  • FunctionOOMError:内存溢出。
  • FunctionTimeoutError:执行时间超限。
  • FunctionUnhandledError:未捕获的其他异常。
FunctionUnhandledError 否,仅在函数执行出现错误即hasFunctionError:true时记录。
initializationDurationMs 初始化函数执行时间 99.00 否,仅当发生冷启动且配置初始化函数时记录。
traceContext 链路追踪上下文信息 371d3ff242fcee9:371d3ff242fcee9:0:1 否,仅当配置链路追踪时记录。
isSampled 请求是否被链路追踪采样 true 否,仅当配置链路追踪时记录。

日志查询

调用分析的日志主题遵循以下格式:FCInsights:serviceName/functionName

您可以在日志服务中通过查询条件 __topic__: "FCInsights:test-insights/test" 筛选出所有调用分析产生的日志。更多信息,请参见查询和分析日志