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控制台配置日誌
前提條件
Function Compute
可選:Log ServiceSLS
操作步驟
登入Function Compute控制台,在左側導覽列,單擊函數。
在頂部功能表列,選擇地區,然後在函數頁面,單擊目標函數。
在函數詳情頁面,選擇 ,單擊編輯,在日誌面板設定以下配置項,然後單擊部署。
說明如果您在建立函數時啟用日誌功能,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工具配置日誌
前提條件
操作步驟
建立代碼目錄,目錄結構如下所示。
. ├── 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'
執行以下命令部署應用。
sudo s deploy -y
執行成功後,您可以登入Function Compute控制台查看函數已部署,以及日誌功能已啟用。
查看調用日誌
在函數詳情頁面,單擊日誌頁簽,查詢當前函數的調用記錄。
您可以在函數詳情頁面,單擊版本或別名頁簽,選擇要查詢的函數版本或別名,單擊後進入對應的版本或別名的詳情頁面,單擊日誌頁簽查詢對應的日誌。
調用請求頁簽或關鍵詞搜尋頁簽均可以查看函數調用日誌的內容。二者的區別如下所示:
調用請求
列表顯示函數調用時間、請求ID、調用結果、執行個體ID和函數的版本、別名等資訊。
您可以單擊對應的Request ID,查看請求詳情和日誌詳情。
您可以單擊對應的執行個體 ID,查看執行個體的指標使用方式,例如CPU使用方式、記憶體使用量情況和網路流量等。
您可以單擊操作列的查看日誌查看日誌詳情,或單擊操作列的進階日誌跳轉到Log Service控制台查詢和分析日誌。
關鍵詞搜尋
列表顯示函數調用時間、日誌內容、和函數的版本、別名等資訊。您可以單擊操作列的日誌上下文尋找這條日誌的若干條上下文日誌,或單擊操作的日誌庫跳轉到Log Service控制台查詢和分析日誌。
您可以在搜尋方塊輸入關鍵詞查詢您所需的日誌資訊。例如您需要搜尋包含文本
hello world
的日誌,可以在搜尋方塊輸入關鍵詞hello world
,搜尋結果為所有包含該關鍵詞的日誌行。更多關於查詢關鍵詞的文法,請參見查詢文法。
相關文檔
您還可以通過調用SDK/API為函數配置日誌,具體操作,請參見CreateFunction - 建立函數。