监视 AWS Lambda

要在 Instana UI 中查看与 AWS Lambda 相关的指标,您需要安装并配置 Instana AWS 代理 ,它是在专门的 AWS 模式下运行的 Instana 主机代理。

要在Instana用户界面中查看Lambda的运行轨迹,您需要将Instana Lambda跟踪器添加到您的 AWS Lambda函数中。

监控 AWS Lambda 需要在 AWS 环境中安装 Instana AWS 代理,并将 Instana Lambda 跟踪器与 AWS Lambda 功能集成。

每个 AWS 账户和区域安装一个Instana AWS 代理,它监控该账户和区域的所有 AWS Lambda功能以及其他 AWS 服务。 欲了解更多信息, 请咨询 Amazon Web Services ( AWS )与 Amazon Web Services ( AWS )代理商。 该传感器为您的 AWS Lambda功能收集基础设施指标。 您还需要在您的 AWS Lambda函数中添加一个Instana Lambda跟踪器,以收集函数的跟踪信息。 根据Lambda函数的运行时间,跟踪器可以作为一层安装在 AWS Lambda函数中,也可以手动安装。

支持的运行时

AWS 代理人

用于Lambda监控的 AWS 代理可收集所有Lambda函数的版本详细信息和指标,无论运行时如何。

AWS Lambda 本地跟踪

AWS Lambda原生跟踪可用于以下运行时:

配置 AWS Lambda 监视

要使用Instana监控 AWS Lambda函数,请完成以下步骤:

  1. 配置 AWS 代理进行Lambda监控
  2. 在您的Lambda函数中安装Instana Lambda跟踪器
  3. 可选:为 Instana Lambda 跟踪器配置更多设置

配置 AWS 代理进行Lambda监控

要配置 AWS 代理,请完成以下步骤:

  1. 为 AWS 设置 AWS 代理,用于监测λ值
  2. 如有需要, 请使用代理配置

更多信息,请参阅为Lambda监控配置 AWS 代理

在 AWS Lambda函数中安装Instana Lambda跟踪器

要捕获跟踪数据(请求级数据)并发送到Instana后端,您需要在 AWS Lambda函数中安装特定于运行时的Instana Lambda跟踪器。 要在 AWS Lambda函数中安装Instana Lambda跟踪器,请参阅以下运行环境的安装说明:

可选:为 Instana Lambda 追踪器配置更多设置

您可以配置本地 Lambda 跟踪通常支持的可选环境变量,如下表所示:

不要将 INSTANA_DISABLE_CA_CHECK 变量设置为 true ,除非您在公司内部使用Instana,并且无法使用具有已知根证书颁发机构(CA)的证书操作Instana后端。 如果启用此变量,您的 Lambda 在此连接上容易受到中间人攻击(MITM)。

环境变量 描述
INSTANA_TIMEOUT 为向Instana后台报告数据的 HTTP 请求设置超时。
INSTANA_ENDPOINT_PROXY 将此变量设置为 http://my-proxy.tldhttp://user:password@my-proxy.tld ,通过 HTTP 或 HTTPS 代理( Node.js 支持, Python 不支持)将数据报告路由到Instana后端。
INSTANA_EXTRA_HTTP_HEADERS 将此变量设置为以分号分隔的 HTTP 标头名称列表(用于触发器类型API网关与Lambda代理集成或应用程序负载均衡器),以捕获 HTTP 标头。
INSTANA_SERVICE_NAME 自定义服务名称。
INSTANA_LOG_LEVEL 设置Instana软件包的日志级别。 可能的值有 debuginfowarnerror (默认: info )。
INSTANA_DEBUG 将此变量设置为任意值,即可将日志级别设置为 debug
INSTANA_DISABLE_CA_CHECK 将此变量设置为 true ,以在连接到Instana后端时,不根据Lambda运行时中包含的证书颁发机构(CA)列表验证服务器证书。 (适用于 @instana/aws-lambda@1.93.0/层版本 25 及更高版本)

查看Lambda函数配置、指标、版本和触发器

您可以通过Instana查看所有关于Lambda函数的信息。

要查看Lambda函数的 HTTP 属性、触发器和指标以及版本详细信息,请完成以下步骤:

  1. 在Instana用户界面的侧边栏中,选择基础设施
  2. 点击特定的受监控的 Lambda 函数。

您可以看到主机仪表板,上面显示了所有收集的指标和Lambda版本。 更多信息,请参阅 Lambda 配置、指标、版本和触发器

启用冷启动或超时警报

可以为 Lambda 函数的过度冷启动或超时配置智能警报

运行时 冷启动 超时数 注释
执行
Node.js 超时检测默认处于关闭状态。 要启用超时检测,请参阅附加环境变量
.NET或.NET Core
Java
Python
Ruby

要配置智能警报,请转到应用程序透视文档 ,其中包含您希望收到警报的Lambda函数,然后添加智能警报:

  1. 在Instana用户界面的导航面板中,点击 “应用程序 ”。
  2. 选择应用程序。
  3. 单击添加智能警报
  4. 点击切换到高级模式
  5. 在作用域部分的 “选择服务/端点”字段中,添加以下筛选器之一:
    • Cloud Function As A Service > Cold Start is true
    • Cloud Function As A Service > Suspected Timeout is true
  6. “触发器”部分“选定蓝图”字段中,选择 “吞吐量 ”。
  7. 阈值部分 ,选择适合您使用情况的阈值。 使用1表示每次出现,使用更高的数值表示在特定数量的冷启动或超时后违反规则。
  8. 使用时间阈值设置微调警报行为。

层

使用Lambda扩展

NodeJS 第71版及更高版本包含 Lambda扩展

通过将数据发送到Instana后端的流程与其他Lambda函数流程分开,该扩展可以提高受监控Lambda函数的性能。 要利用这些性能改进,请将 Instana 层升级到包含此扩展的版本。

在内部,扩展程序与语言库配合,缓冲并代理所有对Instana后端的请求。 在正常操作下,扩展不会延长Lambda函数的寿命。 仅在以下情况下,使用寿命才会延长:

  • 关闭请求,以确保缓冲区中所有数据都传送到后端。
  • Lambda函数出现故障并停止发送跨度的情况。 在等待下一次调用之前,请等待 3 秒以查看是否发送了根范围。

要禁用扩展,请将 INSTANA_DISABLE_LAMBDA_EXTENSION 变量设置为 TRUE

Lambda监控的性能和运行时间考虑因素

工件尺寸

添加Instana的Lambda监控功能可增加已部署Lambda函数的大小。 附加的大小取决于特定语言的层或库。 要获取特定 Instana Lambda 层版本的大小,请使用以下 shell 命令:

aws lambda get-layer-version --layer-name <layer_arn> --version-number <target_version> | jq .Content.Location | xargs -L 1 curl --output layer.zip
unzip -l layer.zip

性能影响

当您使用Instana监控Lambda函数时,性能影响主要取决于Lambda函数与Instana后端通信所花费的时间。 每次执行结束时,Instana提供的库都会向Instana AWS Lambda扩展或您的Instana租户单元发出阻塞调用,以报告执行结果。

对于使用Lambda扩展的功能,此过程在后台进行,一旦被监控的代码准备就绪,被监控的功能即可返回响应。

对于未使用 Lambda 扩展的功能,只有当数据发送到您的租户单元时,此过程才允许报告执行结果。