全部產品
Search
文件中心

Function Compute:配置日誌

更新時間:Jul 06, 2024

Function Compute支援與Simple Log Service進行整合,為函數配置日誌後,Function Compute會自動收集日誌,並把日誌投遞到指定的日誌庫。您可以在Function Compute控制台查看單請求日誌、執行個體日誌、函數日誌,也可以在Simple Log Service控制台利用日誌分析能力對日誌進行自訂檢索。

背景資訊

Log Service是阿里雲提供的針對日誌類資料的一站式服務。通過Log Service儲存函數日誌,需要在函數中配置記錄項目和日誌庫,並授予函數訪問Log Service的許可權。函數日誌會列印到配置的日誌庫中。

計費說明

Function Compute不會為配置日誌功能收取額外的費用,日誌投遞到Log Service,Log Service會收取相關費用。更多資訊,請參見計費概述

配置日誌功能

使用Function Compute控制台配置日誌

前提條件

操作步驟

  1. 登入Function Compute控制台,在左側導覽列,單擊函數

  2. 在頂部功能表列,選擇地區,然後在函數頁面,單擊目標函數。

  3. 在函數詳情頁面,選擇配置 > 日誌,單擊編輯,在日誌面板設定以下配置項,然後單擊部署

    image

    說明
    • 如果您在建立函數時啟用日誌功能,Function Compute控制台會自動建立以aliyun-fc-cn-<region_id>開頭的記錄項目和該記錄項目下的預設日誌庫。該記錄項目每個地區僅建立一個,不會重複建立,如系統查詢到該地區下曾經自動建立過記錄項目,將直接使用。

    • 如果您在建立函數時未啟用日誌功能,更新函數時需要手動選擇自訂記錄項目日誌庫

    • 控制台會自動啟用日誌分割規則請求層級指標執行個體層級指標,並建立查詢日誌需要的全部索引。

    配置項

    是否必填

    說明

    日誌功能

    是否啟用Log Service,取值說明如下:

    • 啟用:啟用後,Function Compute會將日誌匯入到您的記錄項目。您可以在Function Compute控制台、Simple Log Service控制台查詢與檢索日誌,追蹤並定位問題。

    • 禁用:不啟用日誌功能,無法持久化函數日誌,無法對問題進行追蹤和定位。

    配置方式

    選擇自動設定自訂配置。如果選擇自訂配置記錄項目日誌庫必填。

    記錄項目

    指定儲存函數調用日誌的目標記錄項目。

    日誌庫

    指定儲存函數調用日誌的目標日誌庫。

    日誌分割規則

    是否啟用日誌分割規則。取值說明如下:

    • 啟用:啟用後,Function Compute將按日誌分割規則進行切分,切分成多個日誌段,並逐條寫入Log Service。

      預設的日誌分割規則為 ^.{0,2}\d{4}-\d{2}-\d{2},即匹配符合xxxx-xx-xx格式的日期,其中x代表數字。該規則將按照行首是否帶有日期進行切分,例如您的日誌行首是2023-10-10,則該日誌將被認為是一塊日誌的首行,首行和接下來連續不帶日期的日誌將被作為一條日誌寫入到Log Service。

    • 禁用:不啟用日誌分割規則,預設使用 \n 進行日誌切分。

    請求層級指標

    是否將請求指標的日誌匯入日誌庫,強烈建議啟用此功能。

    取值說明如下:

    • 啟用:啟用後,函數每次調用執行的指標資訊如函數執行時間、函數佔用記憶體、是否執行出錯、是否出現冷啟動、冷啟動各個步驟耗時等資訊將投遞到您在日誌配置時選擇的Logstore。Function Compute的調用日誌中可以基於這些指標展示請求列表,您也可以基於指標對請求進行自訂篩選,比如篩選全部錯誤請求,篩選出現冷啟動的請求。

    • 禁用:無法查看請求執行的詳細資料。

    執行個體層級指標

    是否啟用執行個體層級指標功能。取值說明如下:

    • 啟用:啟用後,函數執行個體的指標資料將會投遞到您在日誌配置時選擇的Logstore。您可以查看函數執行個體維度效能指標,如執行個體的CPU、記憶體、網路IO等指標。Function Compute會基於執行個體層級指標資料提供執行個體粒度的觀測能力,為您提供函數執行個體端到端的監控排查路徑。更多資訊,請參見執行個體層級指標

    • 禁用:無法查看執行個體指標的詳細資料。

使用Serverless Devs工具配置日誌

前提條件

操作步驟

  1. 建立代碼目錄,目錄結構如下所示。

    .
    ├── code
    │   └── index.js
    └── s.yaml

    s.yaml檔案樣本如下。

    樣本中欄位logConfig用於配置日誌功能,其中logstore和project需修改為您帳號下已存在的記錄項目和日誌庫。您也可以直接設定logConfig:auto,Function Compute平台將自動建立logstore和project,您無需再指定。

    edition: 3.0.0
    name: hello-world-app
    access: "default"
    vars: # 全域變數
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        component: fc3 # 組件名稱
        props:
          region: ${vars.region}             
          functionName: "start-nodejs-****"
          description: 'hello world by serverless devs'
          runtime: "nodejs16"
          code: ./code
          handler: index.handler
          memorySize: 128
          timeout: 30
          logConfig: # logstore和project需按照實際修改,您也可以使用logConfig:auto,自動建立project和logstore
            enableInstanceMetrics: true
            enableRequestMetrics:  true
            logBeginRule: DefaultRegex
            logstore: 'your-logstore'
            project: 'your-project'
  2. 執行以下命令部署應用。

    sudo s deploy -y

    執行成功後,您可以登入Function Compute控制台查看函數已部署,以及日誌功能已啟用。

查看調用日誌

在函數詳情頁面,單擊日誌頁簽,查詢當前函數的調用記錄。

說明

您可以在函數詳情頁面,單擊版本別名頁簽,選擇要查詢的函數版本或別名,單擊後進入對應的版本或別名的詳情頁面,單擊日誌頁簽查詢對應的日誌。

調用請求頁簽或關鍵詞搜尋頁簽均可以查看函數調用日誌的內容。二者的區別如下所示:

  • 調用請求

    列表顯示函數調用時間、請求ID、調用結果、執行個體ID和函數的版本、別名等資訊。

    • 您可以單擊對應的Request ID,查看請求詳情和日誌詳情。

    • 您可以單擊對應的執行個體 ID,查看執行個體的指標使用方式,例如CPU使用方式、記憶體使用量情況和網路流量等。

    • 您可以單擊操作列的查看日誌查看日誌詳情,或單擊操作列的進階日誌跳轉到Log Service控制台查詢和分析日誌。

  • 關鍵詞搜尋

    列表顯示函數調用時間、日誌內容、和函數的版本、別名等資訊。您可以單擊操作列的日誌上下文尋找這條日誌的若干條上下文日誌,或單擊操作日誌庫跳轉到Log Service控制台查詢和分析日誌。

    您可以在搜尋方塊輸入關鍵詞查詢您所需的日誌資訊。例如您需要搜尋包含文本hello world的日誌,可以在搜尋方塊輸入關鍵詞hello world,搜尋結果為所有包含該關鍵詞的日誌行。更多關於查詢關鍵詞的文法,請參見查詢文法

相關文檔

您還可以通過調用SDK/API為函數配置日誌,具體操作,請參見CreateFunction - 建立函數