當您需要通過日志服務調用統計記錄,對采集的函數調用進行實時查詢與分析統計,并可以可視化地查看監控信息時,您可以將函數調用信息統計實時導入到您創建的日志倉庫。通過日志服務的查詢分析和圖表展示可以實時查看函數調用的情況,更好地掌控函數的服務狀態。

注意

由于函數計算控制臺做了重構,在新版控制臺內已下線關于日志大盤的相關操作配置。本文介紹的日志大盤的相關功能僅適用于舊版控制臺。

由此帶來的不便,敬請諒解!

前提條件

您已完成以下操作:

收集導入日志

  1. 登錄函數計算控制臺
  2. 在頂部菜單欄,選擇地域。
  3. 在左側導航欄,單擊概覽
  4. 概覽(圖示中①)頁面右下方的快速入口處,單擊配置日志大盤(圖示中②)。fc-image3
  5. 配置日志大盤頁面,單擊新建關聯2
  6. 自定義日志分析面板,執行以下操作。3
    1. 日志工程日志倉庫字段中,分別選擇該地域中已存在的日志工程及日志倉庫。
    2. 選擇需要關聯的服務,您可以關聯多個服務到同一個日志倉庫。
    3. 角色創建方式下拉列表中,選擇新建角色,單擊點擊授權
    4. 角色快捷創建頁面,信息核對無誤后,單擊同意授權
    5. 自定義日志分析面板,單擊確定

查詢分析日志

  1. 函數計算控制臺配置日志大盤頁面,選擇需要查詢的日志,單擊日志庫列表下關聯的日志庫
  2. 在關聯的日志倉庫頁面輸入查詢語句分析日志,示例如下:
    • 通過requestID來獲得一個請求被調用的詳細信息。
      requestID:e9870cbd-2ab2-6c78-3486-cd164015b889
    • 查詢異步調用請求。
      mode:async and operation:InvokeFunction
    • 查詢調用時長超過5000毫秒的請求信息。
      operation:InvokeFunction and durationMs > 5000

    日志字段詳細說明如下表所示。

    字段 類型 說明 示例值
    accountID String 賬號ID。 188********23420
    asyncInvocationFinished String 調用完成。 true
    concurrentCount Long 當前實際并發度。 10
    concurrentReqLimit Long 最大并發度。 100
    durationMs Double 函數執行,單位:毫秒。 5012.025
    errorType String 錯誤類型。 HandledError
    externalServiceVersion String 使用的服務版本,更多信息,請參見函數版本 1
    fcStatus Long 內部狀態碼。 200
    forwardedFor String 原始IP地址,使用CDN Trigger時該IP地址代表調用函數計算端的IP地址。 200.***.***.100
    functionErrors Long 非系統函數錯誤。 0
    functionName String 函數名。 ReservedFunction
    functionTimeoutInSec Long 函數超時限制,單位:秒。 300
    host String 請求Host。 1234567890.cn-shanghai.fc.aliyun-inc.com
    isDarkLaunch String 是否使用了別名和灰度版本,請參見以下文檔: true
    ip String 請求客戶端IP地址。 172.***.***.118
    isHTTPS String 是否使用HTTPS協議。 false
    isHTTPTrigger String 是否為HTTP Trigger觸發。 false
    latency Double 函數調用延遲,單位:毫秒。 5017.347
    maxMemoryUsage Double 函數實例最大使用內存,單位:MB。 17.25
    memoryLimitInMB Long 函數實例內存使用限制,單位:MB。 512
    meteredRespSize Long 計費流量,單位:字節。 0
    method String HTTP請求方法。 POST
    mode String 調用類型的取值說明如下:
    • sync:同步
    • async:異步
    sync
    operation String 日志分類。 InvokeFunction
    path String 函數調用URL Path。 /2016-08-15/services/MeteringService/functions/ReservedFunction/invocations
    qualifier String 使用的服務版本信息,詳情請參見獲取執行函數版本 版本號或者別名
    region String 集群所在地域。 cn-shanghai
    requestID String 函數Request ID。 e9870cbd-2ab2-6c78-3486-cd164015b889
    requestOriginalURI String 原始URI(使用域名綁定后無/2016-08-15等字樣)。 /2016-08-15/services/MeteringService/functions/ReservedFunction/invocations
    requestSize Long 函數請求大小,單位:字節。 912
    resolveQualifierLatency Long 解析服務版本使用的時間。 0
    responseSize Long 函數返回大小,單位:字節。 0
    runtime String 函數Runtime。 python2.7
    serviceName String 服務名。 test-service-name
    status Long 客戶端將收到的HTTP狀態碼。 200
    timestamp Long 函數開始處理請求時間戳,單位:秒。 1538137847
    userAgent String 請求端userAgent。 go-sdk-0.1

使用表盤與解讀數據指標

  1. 登錄函數計算控制臺
  2. 在左側導航欄,單擊概覽
  3. 概覽(圖示中①)頁面右下方的快速入口處,單擊配置日志大盤(圖示中②)。配置路徑
  4. 配置日志大盤頁面,單擊目標日志操作列下的分析日志,可以看到以下相關圖表。
    5
    參數 說明
    計費調用次數 您的函數被執行的次數。除了正確執行,還包含函數內部異常的調用。
    資源使用量 函數實例內存×函數執行時間。
    公網流出流量 該部分流量僅計算函數返回所產生的計費流量,不包含函數內部通過TCP、UDP等Client發起的請求所產生的流量。
    流入流量 僅計算函數接受請求所產生的流入流量,該流量不計入費用。
    服務質量
    • 用戶錯誤率:反映由于非系統原因導致函數執行失敗的比例。非系統錯誤包括4xx錯誤(除去429流控錯誤)以及函數執行錯誤,正常值為0。
    • 流控錯誤率:反映流控導致函數執行失敗的比例。流控錯誤包括非系統配額導致的流控(429)和函數計算系統原因導致的流控(503),正常值為0。
    • 系統錯誤率:反映函數計算系統導致函數執行失敗的比例。系統錯誤包括5xx錯誤(除去503流控),正常值為0。
    計費執行及函數執行錯誤
    • 計費調用數:被實際執行并計費的函數調用。
    • 函數錯誤數:被實際執行了但由于非系統原因導致執行失敗的函數調用。
    執行時間(毫秒) 平均值:單位時間內,函數的平均執行時間。
    函數并發度
    • 并發度限制:您在該地域下賬戶的并發度配額。
    • 實際并發度:單位時間內實際使用最大并發數。
    HTTP函數狀態
    • 執行HTTP函數返回給客戶端的狀態碼。
    • 不同狀態段代表各段狀態碼的返回總數目,例如Status_4xx代表單位時間內HTTPStatus的總數,HTTPStatus的取值范圍是[400,499]。
    Top N函數 默認按資源使用量從大到小排序。
    • 資源使用量(GB-秒):函數實例內存×函數執行時間。
    • 公網流出流量(GB):該部分流量僅計算函數返回所產生的計費流量,不包含函數內部通過TCP、UDP等Client發起的請求所產生的流量。
    • 執行次數:函數調用執行次數。
    • 函數錯誤數:函數錯誤數。
    • 最大內存(MB):函數實際使用內存的最大值。

定制個性化Dashboard指南

您可以使用查詢分析語句,得到圖表后,將其添加為一個新的Dashboard,方便后續查看。更多信息,請參見:
注意 以下查詢語句及圖表制作僅供參考,若作為商業使用請謹慎對待。
  • 用戶IP地址來源分析

    • 中國訪問分布圖

      使用以下查詢分析語句,并選擇統計圖表類型中的中國地圖

      operation:InvokeFunction | SELECT ip_to_province(IF(forwardedFor = '', ip, forwardedFor)) AS“省份”, approx_distinct(IF(forwardedFor = '', ip, forwardedFor)) AS“請求”GROUP BY“省份”LIMIT 50           
    • 世界訪問分布圖

      使用以下查詢分析語句,并選擇統計圖表類型中的世界地圖

      operation:InvokeFunction | SELECT ip_to_country(IF(forwardedFor = '', ip, forwardedFor)) AS“國家”, approx_distinct(IF(forwardedFor = '', ip, forwardedFor)) AS“請求”GROUP BY“國家”LIMIT 50  
    • 熱力分布圖

      使用以下查詢分析語句,并選擇統計圖表類型中的熱力圖

      operation:InvokeFunction | SELECT ip_to_geo(IF(forwardedFor = '', ip, forwardedFor)) AS geo, count(1) AS count GROUP BY geo order BY count desc LIMIT 30         
  • userAgent比例分析

    使用以下查詢分析語句,并選擇圖表類型中的餅圖

    operation:InvokeFunction | SELECT userAgent, COUNT(userAgent) AS count GROUP BY userAgent ORDER BY count DESC LIMIT 20
    用戶餅圖
  • HTTP函數熱門訪問鏈接TOP 20

    使用以下查詢分析語句,并選擇圖表類型中的表格

    operation:InvokeFunction and isHTTPTrigger:true | SELECT requestOriginalURI, COUNT(requestOriginalURI) AS count GROUP BY requestOriginalURI ORDER BY count LIMIT 20

設定報警規則

為了更好地掌控函數健康程度,您可以通過添加釘釘機器人,結合日志服務的報警規則來監控健康服務狀況。更多信息,請參見設置告警