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控制台查詢與檢索日誌,追蹤並定位問題。
說明啟用日誌功能時,需要在當前頁面的角色配置地區選取項目一個可以訪問Log Service的角色。服務角色的更多資訊,請參見授予Function Compute訪問其他雲端服務的許可權。
禁用:不啟用日誌功能,無法持久化函數日誌,無法對問題進行追蹤和定位。
配置方式
是
選擇自動設定或自訂配置。如果選擇自訂配置,記錄項目和日誌庫必填。
記錄項目
是
指定儲存函數調用日誌的目標記錄項目。
日誌庫
是
指定儲存函數調用日誌的目標日誌庫。
日誌分割規則
否
是否啟用日誌分割規則。取值說明如下:
啟用:啟用後,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: 1.0.0 name: hello-world-app access: "default" vars: region: "cn-hangzhou" service: name: "hello-world-service" description: 'hello world by serverless devs' logConfig: # logstore和project需按照實際修改,您也可以使用logConfig:auto,自動建立project和logstore project: 'your-project' logstore: 'your-logstore' enableRequestMetrics: true enableInstanceMetrics: true role: 'acs:ram::<accountID>:role/aliyunfcdefaultrole' services: helloworld: component: fc props: region: ${vars.region} service: ${vars.service} function: name: "hello-world" description: 'hello world by serverless devs' runtime: nodejs14 codeUri: ./code handler: index.handler memorySize: 128 timeout: 60
執行以下命令部署應用。
sudo s deploy -y
執行成功後,您可以登入Function Compute控制台查看函數已部署,以及日誌功能已啟用。
查看調用日誌
在函數詳情頁面,單擊調用日誌,查詢當前函數的調用記錄。
您可以在頁面上方切換版本或別名,查詢指定函數版本或別名的日誌。
調用請求列表頁簽或關鍵詞搜尋頁簽均可以查看函數調用日誌的內容。二者的區別如下所示:
調用請求列表
列表顯示函數調用時間、請求ID、調用結果、執行個體ID和函數的版本、別名等資訊。如下圖所示:
您可以單擊對應的Request ID,查看請求詳情和日誌詳情。
您可以單擊對應的執行個體 ID,查看執行個體的指標使用方式,例如CPU使用方式、記憶體使用量情況和網路流量等。
您可以單擊操作列的查看日誌查看日誌詳情,或單擊操作列的進階日誌跳轉到Log Service控制台查詢和分析日誌。
關鍵詞搜尋
列表顯示函數調用時間、日誌內容和函數的版本、別名等資訊,如下圖所示。您可以單擊操作列的日誌上下文尋找這條日誌的若干條上下文日誌,或單擊操作的日誌庫跳轉到Log Service控制台查詢和分析日誌。
您可以在搜尋方塊輸入關鍵詞查詢您所需的日誌資訊。例如您需要搜尋包含文本
hello world
的日誌,可以在搜尋方塊輸入關鍵詞hello world
,搜尋結果為所有包含該關鍵詞的日誌行,如下圖所示。更多關於查詢關鍵詞的文法,請參見查詢文法。
相關文檔
您還可以通過調用SDK/API為函數配置日誌,具體操作,請參見CreateService - 建立服務和LogConfig。