在 Amazon CloudWatch 中使用 Lambda Insights - AWS Lambda

在 Amazon CloudWatch 中使用 Lambda Insights

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

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

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

Lambda Insights 使用新的 CloudWatch Lambda Insights 擴展功能,提供它作為一個 Lambda 層。當您在 Lambda 函數上為支援的執行時間啟用此擴展功能時,它會收集系統層級指標,並對 Lambda 函數的每個叫用發出單一效能日誌事件。CloudWatch 使用內嵌的指標格式,從日誌事件中擷取指標。如需詳細資訊,請參閱使用AWS Lambda 延伸項目

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

Pricing

當您為 Lambda 函數啟用 Lambda Insights 時,Lambda Insights 會針對每個函數報告 8 個指標,而每個函數呼叫都會傳送約 1KB 的記錄資料至 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 主控台中的 Functions (函數) 頁面

  2. 選擇函數。

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

  4. 監控工具窗格上,選擇編輯

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

  6. 選擇 Save (儲存)。

以程式設計方式啟用 Lambda Insights

您也可以使用 AWS Command Line Interface (AWS CLI)、AWS Serverless Application Model (SAM) CLI、AWS CloudFormation 或 AWS Cloud Development Kit (CDK) 啟用 Lambda Insights。當您以程式設計方式在函數中對受支援的執行時間啟用 Lambda Insights 時,CloudWatch 會將 CloudWatchLambdaInsightsExecutionRolePolicy 政策連接至函數的執行角色

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

使用 Lambda Insights 儀表板

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

您可以使用 CloudWatch 主控台中的 Lambda Insights 儀表板多函數概觀來識別過度使用和使用不足的 Lambda 函數。您可以使用 CloudWatch 主控台中的 Lambda Insights 儀表板單一函數檢視來對個別請求進行故障排除。

檢視所有函式的執行階段指標

  1. 在 CloudWatch 主控台中開啟多函數頁面。

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

  3. (選用) 選擇 Add to dashboard (新增至儀表板),將小工具新增至 CloudWatch 儀表板。

    
            Lambda Insights 儀表板上的多函數概觀。

檢視單一函式的執行階段指標

  1. 在 CloudWatch 主控台中開啟單一函數頁面。

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

  3. (選用) 選擇 Add to dashboard (新增至儀表板),將小工具新增至 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 儀表板中選取的函數。

後續步驟?