监控#
Ultralytics Platform 提供已部署端点的监控功能。你可以跟踪端点请求、延迟、错误和日志。付费专用端点还提供实时预测统计数据以及可供检查并保存到数据集的临时示例。

部署控制面板#
侧边栏中的 Deploy 页面是所有部署的监控控制面板。它在一个视图中整合了世界地图、概览指标和部署管理。有关创建和管理部署的信息,请参阅专用端点。
graph TB
subgraph Dashboard
Map[World Map]:::proc --- Cards[Overview Cards]:::proc
Cards --- List[Deployments List]:::decide
end
subgraph "Per Ready Deployment"
Monitoring[Monitoring Tab: Paid Endpoints]:::out
Metrics[Metrics Row]:::out
Health[Health Check]:::out
Logs[Logs Tab]:::out
Code[Code Tab]:::out
Predict[Predict Tab]:::out
end
List --> Monitoring
List --> Metrics
List --> Health
List --> Logs
List --> Code
List --> Predict
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fff概览卡片#
页面顶部的四张摘要卡片显示:

| 指标 | 描述 |
|---|---|
| HTTP 请求 (24h) | 跨端点的 HTTP 请求,包括预测、监控和健康检查请求 |
| 活跃部署 | 当前处于 Ready 状态的端点 |
| HTTP 错误率 (24h) | 响应状态为 4xx 或 5xx 的占比,按请求量加权 |
| HTTP P95 延迟 (24h) | 按请求量加权的每小时第 95 百分位延迟平均值 |
报告 P95 而不是中位延迟,是因为健康检查会在几毫秒内返回,否则会掩盖真实推理延迟的情况。
当错误率超过 5% 时,错误率卡片会突出显示为红色。检查单个部署中的 Logs 选项卡以诊断错误。
世界地图#
交互式世界地图显示:
- 所有 42 个可用区域的区域图钉
- 具有就绪部署的区域的绿色图钉
- 正在进行活跃部署的区域的动态蓝色图钉
- 图钉大小根据部署状态和延迟而变化
点击任意区域以打开 New Deployment 对话框。小屏幕上会隐藏地图。

部署列表#
概览卡片下方的部署列表显示所有项目中的端点。使用视图模式切换控件,可在以下视图之间切换:
| 查看 | 描述 |
|---|---|
| 卡片 | 包含指标、日志、代码、预测和符合条件的监控选项卡的完整详细信息卡片 |
| 紧凑 | 包含关键指标的小型卡片网格(1–4 列) |
| 表格 | 可排序列包括 Name、Region、Status、Requests、P95、Errors 的 DataTable |
控制面板会自动刷新,并在部署处于过渡状态(creating、deploying 或 stopping)时加快更新速度。点击刷新按钮可立即更新。
每个部署的指标#
每张部署卡片(卡片视图)都会显示实时指标。下文所述的指标行、健康检查以及 Logs、Code 和 Predict 选项卡,仅在部署处于 Ready 状态时显示:
指标行#
| 指标 | 描述 |
|---|---|
| 请求 | 过去 24 小时的请求数 |
| P95 延迟 | 每小时第 95 百分位延迟的平均值(24 小时) |
| 错误率 | 4xx 和 5xx 响应的占比,仅在大于 0 时显示 |
指标会自动刷新。尚未处理过请求的端点会显示“暂无流量”,并且仅收集处于 Ready 状态的部署的指标。在部署控制面板中,指标会针对最近的 20 个部署获取。
健康检查#
正在运行的部署会显示健康检查指示器:
| 指示器 | 含义 |
|---|---|
| 绿色心形 | 健康 — 显示响应延迟 |
| 红色心形 | 不健康 — 显示错误消息 |
| 旋转图标 | 健康检查进行中 |
不健康时,健康检查会自动重试,并在端点响应后停止。点击刷新图标可手动触发健康检查;在发送流量前,这也可以用来预热缩容至零的端点。

Platform 会为健康检查提供额外时间,并重试暂时性的连接失败,从而让缩容至零的端点有时间启动。如果卡片显示“服务正在启动……”,请刷新卡片,以获取期间已完成启动的实例。
监控选项卡#
打开部署 (Deploy),切换到卡片 (Cards)视图,然后在处于就绪 (Ready)状态的付费专用端点上选择监控 (Monitoring)。通过其预测 (Predict)选项卡或端点 API 发送图像,以填充临时示例 (Temporary Examples)和预测统计数据 (Prediction Statistics)。在处理第一张图像之前,该选项卡会显示无处理的图像 (No images processed)。
监控功能需要运行支持监控的运行时的付费、按正常运行时间计费的端点。仅凭付费工作区计划,包含的端点不会自动获得此选项卡。有关资源配置,请参阅专用端点。现有端点不会随每个运行时版本自动更新,因此较旧的端点可能会显示监控不可用 (Monitoring unavailable),直到其运行时更新为止。

监控是轻量且临时的:图表、预测统计数据和示例图像仅存在于服务实例的内存中。当端点关闭、停止、重新启动、重新部署、更改资源或替换模型时,这些数据可能会丢失。当端点再次启动时,历史记录不会恢复。请将有用的示例保存到数据集中,并等待引入完成,然后再更改端点。
临时示例#
图库包含带预测叠加层的已处理图像的滚动样本。打开图像即可在全屏查看器中检查预测,并使用可见性控件调整叠加层。图库最初最多显示 12 个示例;点击**显示全部 (Show all)**可将其展开。
- **采样:**最初最多两个示例,随后每分钟最多增加一个额外图像。捕获采用尽力而为原则;推理不会等待示例编码。
- **容量:**在针对压缩图像、预测元数据和相关资产的 100 MiB 共享内存预算内,最多 100 张图像。界面将此预算标为 100 MB。
- **替换:**当达到任一限制时,较旧的示例将被替换。在你查看示例时,它可能会变得不可用。
- **存储:**临时示例保留在端点内存中。将其保存到数据集会使用正常的工作区存储和处理限制。

将示例保存到数据集#
具有内容编辑权限的工作区成员可以将示例保存到端点工作区中的数据集:
- 使用复选框选择单个示例,或点击全选 (Select all)。
- 点击保存到数据集 (Save to dataset)。
- 选择与部署模型具有相同任务的现有数据集。排除连接源数据集;如果没有可用的数据集,请先创建一个兼容的数据集。
- 点击显示所选图像数量的**保存 (Save)**按钮,然后打开数据集以跟踪处理进度。
所选图像和预测将通过标准数据集上传和引入工作流进行复制。常规配额、类映射和重复项处理规则适用。保存后,临时示例仍会保留在图库中;成功引入的数据集图像在端点重新启动和删除后依然存在。在将预测标签用于训练之前,请对其进行审查。

要移除临时示例,请使用图像悬停时的垃圾桶控件,或选择示例并点击批量垃圾桶按钮,然后确认删除 (Delete)。删除示例不会改变汇总预测统计数据以及已保存到数据集的图像。
预测统计数据#
统计数据会独立于图库采样来汇总已处理的图像。删除或替换示例不会扣除其贡献。摘要显示所选期间的图像、预测以及没有预测的图像;深度模型显示图像数量。
日期选择器默认显示最近 30 天,并接受最长 365 天的时间范围。所选日期使用 UTC 边界;图表时间戳以本地时间显示。当整个范围落在最近 72 小时内时,长达三天的最近范围使用按小时计算的历史记录;其他范围使用按天计算的历史记录。日期范围用于过滤统计数据,而图库将继续显示当前的临时示例。
历史记录限制为 72 个小时存储桶和 365 个每日存储桶,并且仅在当前实例启动后可用。没有处理图像的所选期间会显示在此期间没有处理图像 (No images processed in this period)。
可用的图表取决于任务和收集的预测:
| 图表 | 显示内容 |
|---|---|
| 随时间推移的预测 (Predictions over Time) | 已处理的图像和预测总数;深度模型显示随时间推移的图像 (Images over Time) |
| 推理时间 (Inference Time) | 平均模型推理时间(以毫秒为单位),不包括网络和请求开销 |
| 主要类别 | 按类别划分的预测计数 |
| 每张图像的预测数 (Predictions per Image) | 分布情况,包括没有预测的图像以及最终的 100+ 区间;分类和深度任务会隐藏此项 |
| 预测置信度 (Prediction Confidence) | 置信度分布和平均值(当置信度分数可用时) |
| 随时间推移的置信度 (Confidence over Time) | 每个时间存储桶的平均预测置信度 |
| 预测尺寸 (Prediction Dimensions) | 相对于输入图像的预测宽度和高度(当框尺寸可用时) |
| 预测位置 (Prediction Locations) | 预测的空间热图(当位置数据可用时) |


置信度衡量的是模型的确定性,而不是正确性。在评估准确性时,请检查示例并将其与经过审查的标签进行比较。**推理时间 (Inference Time)**衡量的是模型执行情况;部署的 **P95 延迟 (P95 Latency)**包含请求处理,并且还可以反映诸如健康检查等非推理流量。
当监控面板打开且可见时,它大约每 2 秒刷新一次。当面板位于屏幕外或浏览器选项卡被隐藏时,轮询会暂停。通过部署的**预测 (Predict)**选项卡进行的成功推理也会触发统计数据刷新。
日志#
每张部署卡片都包含一个 Logs 选项卡,用于查看最近的日志条目:

日志条目#
每个日志条目显示:
| 字段 | 描述 |
|---|---|
| 严重性 | 按颜色编码的条(见下文) |
| 时间戳 | 请求时间(本地格式) |
| 消息 | 日志内容 |
| HTTP 信息 | 状态码和延迟(如适用) |
每个条目都带有按颜色编码的严重性条:
| 级别 | 颜色 | 描述 |
|---|---|---|
| DEBUG | 灰色 | 调试消息 |
| INFO | 蓝色 | 正常请求 |
| WARNING | 琥珀色 | 非关键问题 |
| ERROR | 红色 | 失败的请求 |
| CRITICAL | 红色 | 严重故障 |
API 接受完整的日志严重性集合,可使用逗号分隔的筛选器:DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT 和 EMERGENCY。
界面显示最近的 20 个条目,并隐藏空条目。API 默认每次请求返回 50 个条目(最多 200 个),并返回一个 nextPageToken 以便继续向前翻页。
调查错误时:先点击 Errors,筛选出 ERROR 和 WARNING 条目,然后查看时间戳和 HTTP 状态码。将日志复制到剪贴板,与团队成员共享。
代码示例#
每个部署卡片都包含一个 Code 标签页,其中显示已填入端点 URL、可直接使用的 API 代码。对于工作区所有者,部署绑定的 API 密钥也会插入其中,可直接复制并运行。非所有者会看到一个 YOUR_API_KEY 占位符:
import requests
# Deployment endpoint
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
# Headers with your deployment API key
headers = {"Authorization": "Bearer YOUR_API_KEY"}
# Inference parameters
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
# Send image for inference
with open("image.jpg", "rb") as f:
response = requests.post(url, headers=headers, data=data, files={"file": f})
print(response.json())部署预测#
每个部署卡片上的 Predict 标签页都提供内联预测面板——其界面与模型的 Predict 标签页相同,但会通过部署端点而不是共享服务运行推理。这对于直接在浏览器中测试已部署端点非常有用。请参阅推理以了解参数详情和响应格式。
API 端点#
每个部署通过其所有者和部署名称进行寻址,并且每条路由都需要 API 密钥。请参阅 API 参考 了解身份验证详情。
部署指标#
GET /api/deployments/{owner}/{deployment}/metrics?range=24hPython SDK: client.deployments.metrics(owner, deployment, range="24h")
返回部署的完整指标负载:一个包含请求总数、错误数量和错误率,以及平均延迟、P50、P95 和 P99 延迟的 summary 区块,另外还包含用于请求、错误、P50 和 P95 延迟、CPU 和内存利用率以及实例数量的 timeSeries 数组。
| 参数 | 类型 | 描述 |
|---|---|---|
range | string | 时间范围:1h、6h、24h、7d 或 30d(默认值为 24h) |
sparkline | bool | 返回精简的仪表板摘要,而不是完整负载 |
使用 sparkline=true 时,响应为部署卡片使用的精简格式——24 个每小时请求计数,以及请求总数、错误率和平均延迟。这是每 60 秒刷新的调用。
部署日志#
GET /api/deployments/{owner}/{deployment}/logs?limit=50&severity=ERROR,WARNINGPython SDK: client.deployments.logs(owner, deployment, limit=50, severity="ERROR,WARNING")
返回最近的日志条目,并支持可选的严重性筛选和分页。
| 参数 | 类型 | 描述 |
|---|---|---|
limit | int | 要返回的最大条目数(默认值:50,最大值:200) |
severity | string | 以逗号分隔的严重性筛选条件 |
pageToken | string | 来自上一响应的分页令牌 |
部署运行状况#
GET /api/deployments/{owner}/{deployment}/healthPython SDK: client.deployments.health(owner, deployment)
Ping 部署并返回其运行状况,以及测得的往返延迟:
{
"healthy": true,
"status": 200,
"latencyMs": 142
}当端点完全无法访问时,不健康响应会省略 status,并添加一条 error 消息。
Deploy 页面上的聚合数值无法通过单个 REST 端点获取。你可以为 GET /api/deployments/{owner}(client.deployments.list(owner))返回的每个部署调用指标路由来复现这些数值。
性能优化#
使用监控数据优化你的部署:
如果延迟过高:
- 确认模型大小是否合适
- 考虑使用距离更近的区域
- 检查每个请求发送的图像大小
尝试使用更小的 imgsz 值,并比较由此产生的延迟和模型精度。将部署到距离调用方更近的区域,以降低网络延迟。
常见问题#
预测统计数据和临时示例仅在服务实例的生命周期内有效,且在上述存储桶和图库限制范围内。停止、重新启动、重新部署、调整大小或替换模型可能会清除它们。只有成功保存到数据集的示例才会独立于端点持久保存。
运营指标和日志具有独立的历史记录窗口。指标 API 支持从 1 小时到 30 天的可选窗口,随着窗口变大,采样会变得更加粗略 —— 1 小时内为 1 分钟存储桶,30 天内最高为 4 小时存储桶。部署卡片显示最近 20 条日志条目;日志 API 每次请求最多可返回 200 条条目并支持分页。
指标和日志仅在部署存在期间保留,因此删除部署也会终止对其历史记录的访问。删除端点前,请导出你需要保留的内容。
可以,部署页面会显示所有端点及其聚合概览卡片。使用表格视图比较各部署之间的性能。
不会。指标和运行状况检查仅针对处于 Ready 状态的部署收集。已停止的端点会保留其卡片和历史窗口,但在你重新启动之前不会显示实时数值。