指标
E2B SDK 的 sandbox.getMetrics() 与 Sandbox.getMetrics(id) 返回 sandbox 的 CPU、内存与磁盘样本,与 E2B 相同。本页介绍两个指标接口、每个样本的字段,以及时间范围与分桶的规则。
前提条件
- 部署接入了实例指标存储,见实例指标存储。
没有接入时,两个指标接口返回 501,能力名 metrics。
重要
指标只用于观察,不是用量或计费数据。某些时段的样本可能缺失,见注意。
读取指标
下面的例子读取一个 sandbox 的样本,并打印最近一个样本的 CPU 与内存用量:
const samples = await sandbox.getMetrics();
const latest = samples.at(-1);
console.log(latest?.cpuUsedPct, latest?.memUsed);SDK 调用下面两个接口之一:
| 请求 | 返回 |
|---|---|
GET /sandboxes/{id}/metrics | 一个 sandbox 按时间分桶的样本数组。可带 start、end,单位是 Unix 秒 |
GET /sandboxes/metrics?sandbox_ids=... | 以 sandbox ID 为 key,每个 sandbox 最近的一个样本,见批量接口 |
样本字段
| 字段 | 含义 |
|---|---|
cpuCount | guest 在线的 CPU 数 |
cpuUsedPct | 相邻两次采样之间全部 CPU 的忙碌占比,0 到 100 |
memTotal、memUsed、memCache | guest /proc/meminfo 的 MemTotal、MemTotal 减 MemAvailable、Cached,单位字节 |
diskTotal、diskUsed | guest 根文件系统 / 的总容量与已用量(总量减可用量),单位字节 |
timestamp、timestampUnix | 桶的起点,分别是 UTC 的 RFC 3339 与 Unix 秒 |
时间范围与分桶
采样
- node 每 5 秒采样一次每个运行中的 sandbox。
- sandbox 启动或恢复后,第二次采样起才有样本:第一次只建立 CPU 的基准。
时间范围
- 不带
start、end时,返回保留期内这个 sandbox 的全部历史。 - 只给一端时,另一端取 sandbox 历史的起点或终点。
- 终点不晚于当前时间,起点不早于保留期的开端。
start、end必须是非负整数,start晚于end时返回 400。- 只返回已经结束、且结束时刻不晚于当前时间减去查询延迟的桶。更新的桶要等存储里的样本确定后才返回,因此最新约 30 秒的样本暂不返回。查询延迟由部署设置,默认 30 秒,见 E2B 网关的配置。
桶宽
桶宽按查询跨度选取,与 E2B 相同:
| 跨度 | 桶宽 |
|---|---|
| 小于 1 小时 | 5 秒 |
| 小于 6 小时 | 30 秒 |
| 小于 12 小时 | 1 分钟 |
| 小于 24 小时 | 2 分钟 |
| 小于 7 天 | 5 分钟 |
| 7 天及以上 | 15 分钟 |
- 每个桶的每个字段取桶内样本的最大值,时间戳是桶的起点。
- 七个字段都有值的桶才会返回。
- 第一个和最后一个桶都是完整的桶,可能包含
[start, end]之外、紧邻两端的样本。
暂停、恢复与删除
- 暂停再恢复后仍是同一条序列。每次恢复都启动新的 Instance,网关把各个 Instance 的样本按 sandbox 合并。
- 暂停期间没有样本。
- sandbox 删除后,保留期内仍可查询它的指标。
不存在的 sandbox 与空结果
- 不存在的 sandbox、属于另一个部署命名空间的 sandbox 返回 404。
- 存在但还没有样本的 sandbox 返回
[]。 - 与 E2B 不同,sandbox 所用 Platform 的 guest 早于采样接口时,node 不采样它,查询返回
[]。
批量接口
GET /sandboxes/metrics 在一个请求里返回多个 sandbox 的最新样本:
sandbox_ids用逗号分隔,最多 100 个,不能重复。缺失或为空时返回 400。- 每个 sandbox 返回截至「当前时间减去查询延迟」的最新样本。
- 因此最新样本通常是 30 到 60 秒之前的。
- 在这个时刻之前 30 秒内没有样本的 sandbox 不出现在结果里,不存在的、属于其他部署的 sandbox 也一样,请求照常返回 200。
注意
- 存储不可达、guest 没有按时应答或 node 重启时,对应时段的样本会缺失。
- 存储不可用时,两个接口返回 500,消息为
failed to fetch sandbox metrics。 - 每个网关实例把单个 sandbox 的查询结果缓存 1 秒。
- 团队指标不提供,见不支持的能力。
下一步
- 实例指标存储:为部署接入指标存储。
- Sandbox 与生命周期:暂停、恢复与删除 sandbox。
- E2B 兼容:网关支持的其他 SDK 能力。