Kibotos

指标

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 最近的一个样本,见批量接口

样本字段

字段含义
cpuCountguest 在线的 CPU 数
cpuUsedPct相邻两次采样之间全部 CPU 的忙碌占比,0 到 100
memTotal、memUsed、memCacheguest /proc/meminfo 的 MemTotal、MemTotal 减 MemAvailable、Cached,单位字节
diskTotal、diskUsedguest 根文件系统 / 的总容量与已用量(总量减可用量),单位字节
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 秒。
  • 团队指标不提供,见不支持的能力。

下一步

本页内容