函数监控#
问题排查#
有关排查部署失败问题,请参阅 部署失败。
有关排查调用失败问题,请参阅 状态和错误。
请参阅下文,了解如何向您的推理容器添加日志记录,以及如何查看指标。
日志记录和指标#
本节概述了 Cloud Functions UI 中可用的指标和日志。请注意,为了全面监控生产工作负载,建议从您的容器中将日志、指标、分析数据等发送到第三方监控工具。
发送和查看推理容器日志#
在 Cloud Functions UI 中,通过函数详情页面的“日志”选项卡查看推理容器日志。要访问此页面,请从“函数”列表中点击任何函数版本,然后点击右侧边栏上的“查看详情”。

日志目前可查看长达 48 小时的历史记录,并且可以展开行进行扫描,或者以“窗口”视图方便复制和粘贴。每个容器每分钟最多记录 3000 行日志。如果超出此限制,则最新消息将被替换为警告,并且所有后续消息都将被丢弃,直到下一个窗口打开(即进入下一分钟)。
警告
请注意,作为前提条件,您的推理容器必须经过检测才能发送日志。强烈建议这样做。
如何向您的推理容器添加日志#
以下是添加 NVCF 兼容日志的示例。下面的日志记录辅助函数以及其他辅助函数可以从 辅助函数 存储库导入。
1 import logging
2
3 def get_logger() -> logging.Logger:
4 """
5 gets a Logger that logs in a format compatible with NVCF
6 :return: logging.Logger
7 """
8 sys.stdout.reconfigure(encoding="utf-8")
9 logging.basicConfig(
10 level=logging.INFO,
11 format="%(asctime)s [%(levelname)s] [INFERENCE] %(message)s",
12 handlers=[logging.StreamHandler(sys.stdout)],
13 )
14 logger = logging.getLogger(__name__)
15 return logger
16
17 class MyServer:
18
19 def __init__(self):
20 self.logger = get_logger()
21
22 def _infer_fn(self, request):
23 self.logger.info("Got a request!")
查看函数指标#
NVCF 默认公开以下指标。
实例计数(当前、最小和最大)
调用活动和队列深度
总调用次数、成功率和失败次数
平均推理时间
点击“函数”列表页面中的任何函数即可查看指标。函数概览页面将显示所有函数版本的聚合值。

当点击函数版本的详情页面时,您将看到此特定函数版本的指标。

警告
指标摄取可能最多有 5 分钟的延迟。 页面内的任何时间序列查询都以 5 分钟的间隔聚合,步长设置为显示 500 个数据点。所有统计查询均基于所选的总时间段,并简化为显示最新的总值或平均值。
使用 OpenTelemetry 进行检测#
用户可以使用 OpenTelemetry SDK(自动)检测其 容器 函数,并将信号(日志、跟踪和指标)发送到可观测性后端,例如 Grafana Cloud。
有关 容器 函数的示例,请参阅 GitHub。