在 Amazon 使用 Lambda 洞察 CloudWatch - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon 使用 Lambda 洞察 CloudWatch

Amazon CloudWatch Lambda 見解會為您的無伺服器應用程式收集和彙總 Lambda 函數執行時期效能指標和日誌。本頁說明如何啟用和使用 Lambda Insights 來診斷 Lambda 函數的問題。

Lambda Insights 如何監控無伺服器應用程式

CloudWatch Lambda 洞察是一種監控和故障排除解決方案,適用於在上AWS Lambda執行的無伺服 此解決方案會收集、彙總和摘要系統層級的指標,包括 CPU 時間、記憶體、磁碟和網路使用量。它也會收集、彙總和摘要診斷資訊,例如冷啟動和 Lambda 工作人員關閉,協助您隔離 Lambda 函數問題並快速加以解決。

Lambda 深入解析使用全新的 CloudWatch Lambda 見解延伸模組,該延伸模組是以 Lambda 層形式 當您在支援的執行階段的 Lambda 函數上啟用此延伸模組時,它會收集系統層級指標,並針對該 Lambda 函數的每次叫用發出單一效能記錄事件。 CloudWatch 使用內嵌指標格式從記錄事件擷取指標。如需詳細資訊,請參閱使用AWS Lambda 延伸項目

Lambda Insights 層會擴展 /aws/lambda-insights/ 日誌群組的 CreateLogStreamPutLogEvents

定價

當您為 Lambda 函數啟用 Lambda 深入解析時,Lambda 洞見會報告每個函數 8 個指標,而且每次函數呼叫都會傳送約 1 KB 的記錄資料給。 CloudWatch您只需要為 Lambda Insights 報告的函數指標和記錄付費。沒有最低費用或強制性的服務使用政策。如果未叫用函數,則不需為 Lambda Insights 支付費用。如需定價範例,請參閱 Amazon CloudWatch 定價

支援的執行期

您可以使用 Lambda Insights 搭配任何支援 Lambda 擴展功能的執行時間。

在 Lambda 主控台中啟用 Lambda Insights

您可以對新函數和現有 Lambda 函數啟用 Lambda Insights 增強型監控功能。當您在 Lambda 主控台的函數中針對支援的執行時間啟用 Lambda Insights 時,Lambda 會將 Lambda Insights 擴展功能新增至您的函數,並驗證或嘗試將 CloudWatchLambdaInsightsExecutionRolePolicy 政策連接至函數的執行角色

若要在 Lambda 主控台中啟用 Lambda Insights
  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇函數。

  3. 選擇 Configuration (組態) 索引標籤。

  4. 在左側菜單中,選擇監視和操作工具

  5. 在 [其他監視工具] 窗格中,選擇 [編輯]。

  6. CloudWatch Lambda Insights 中,開啟 Enhanced monitoring (增強型監控)。

  7. 選擇儲存

以程式設計方式啟用 Lambda Insights

您也可以使用 AWS Command Line Interface (AWS CLI)、AWS Serverless Application Model (SAM) CLI、AWS CloudFormation 或 AWS Cloud Development Kit (AWS CDK) 啟用 Lambda Insights。當您以程式設計方式在受支援的執行階段的函數上啟用 Lambda Insights 時,會將CloudWatchLambdaInsightsExecutionRolePolicy原則 CloudWatch 附加至函數的執行角色

如需詳細資訊,請參Amazon CloudWatch 使用者指南中的 Lambda 洞察入門

使用 Lambda Insights 儀表板

Lambda 見解儀表板在 CloudWatch 主控台中具有兩種檢視:多功能概觀和單一功能檢視。多函數概觀會彙總目前 AWS 帳戶和區域中 Lambda 函數的執行時間指標。單一函數檢視會顯示單一 Lambda 函數的可用執行時間指標。

您可以使用 CloudWatch 主控台中的 Lambda 見解儀表板多功能概觀來識別使用過度和未充分利用的 Lambda 函數。您可以使用 CloudWatch 主控台中的 Lambda 見解儀表板單一功能檢視,對個別請求進行疑難排解。

檢視所有函式的執行階段指標
  1. 開啟主控台中的「多功能」頁 CloudWatch 面。

  2. 從預先定義的時間範圍中選擇,或選擇自訂的時間範圍。

  3. (選擇性) 選擇「新增至儀表板」,將 Widget 新增至 CloudWatch 儀表板。

    Lambda Insights 儀表板上的多函數概觀。
檢視單一函式的執行階段指標
  1. 開啟主 CloudWatch 控台中的單一功能頁面。

  2. 從預先定義的時間範圍中選擇,或選擇自訂的時間範圍。

  3. (選擇性) 選擇「新增至儀表板」,將 Widget 新增至 CloudWatch 儀表板。

    Lambda Insights 儀表板上的單一函數檢視。

如需詳細資訊,請參閱在 CloudWatch 儀表板上建立和使用小器具

偵測函式異常的工作流程範例

您可以使用 Lambda Insights 儀表板上的多函數概觀來識別和偵測您的函數是否有運算記憶體異常。例如,如果多函式概觀指出某個函式正在使用大量記憶體,您可以在記憶體使用量窗格中檢視詳細的記憶體使用量。然後,您可以移至「指標」儀表板以啟用異常偵測或建立警示。

啟用對函式的異常偵測
  1. 開啟主控台中的「多功能」頁 CloudWatch 面。

  2. 函式摘要下方,選擇您的函式名稱。

    單一函式檢視隨即開啟,其中包含函式執行階段指標。

    Lambda Insights 儀表板上的函數摘要窗格。
  3. 記憶體使用量窗格中,選擇三個垂直點,然後選擇在指標中檢視以開啟指標儀表板。

    Memory Usage (記憶體使用量) 窗格上的選單。
  4. 圖形化指標索引標籤的動作欄中,選擇第一個圖示,以啟用對函式的異常偵測。

    Memory Usage (記憶體使用量) 窗格的 Graphed metrics (圖形化指標) 標籤。

如需詳細資訊,請參閱使用 CloudWatch 異常偵測

使用查詢故障排除函式的範例工作流程

您可以使用 Lambda Insights 儀表板上的單一函數檢視來識別函數持續時間中峰值的根本原因。例如,如果多函式概觀指出函式持續時間大幅增加,您可以暫停或選擇持續時間窗格中的每個函式,以判斷哪個函式造成增加。然後,您可以移至單一函式檢視並檢閱應用程式日誌,以判斷根本原因。

在函式上執行查詢
  1. 開啟主控台中的「多功能」頁 CloudWatch 面。

  2. 持續時間窗格中,選擇您的函式以篩選持續時間量度。

    在 Duration (持續時間) 窗格中選擇的函數。
  3. 開啟單一函式頁面。

  4. 選擇依函式名稱篩選指標下拉式清單,然後選擇您的函式。

  5. 若要檢視 最近 1000 個應用程式日誌,請選擇應用程式日誌索引標籤。

  6. 檢閱時間戳記訊息,以識別您要故障排除的叫用請求。

    最近的 1000 個應用程式日誌。
  7. 若要顯示最近的 1000 次叫用,請選擇叫用索引標籤。

  8. 針對您要故障排除的叫用請求,選取時間戳記訊息

    選取最近的叫用請求。
  9. 選擇檢視日誌的下拉式清單,然後選擇檢視效能日誌

    您的函式自動產生的查詢會在日誌深入資訊儀表板中開啟。

  10. 選擇執行查詢以產生叫用請求的日誌訊息。

    查詢 Logs Insights 儀表板中選取的函數。

後續步驟?