用量查询与配额限制
用量查询端点、计量粒度、并发配额、硬限制与超限行为。
这一页只有一件事:把硬限制列清楚,避免你在压测时才发现。所有数字都能在代码里找到(括号内是位置),不是文档里“大约”的说法。
项目级配额(可在控制台调整)
| 配额 | 默认值 | 上限 | 超限返回 | 位置 |
|---|---|---|---|---|
| 录制并发任务 | 5 | 1000 | 429 recording_quota_exceeded(details.limit/details.active) | 控制面配额配置 |
| 推流并发任务(Media Push / 旁路推流 / 云转码共享) | 5 | 1000 | 429 streaming_quota_exceeded | media-push.ts、streaming.ts、cloud-transcoding.ts |
| 频道数上限 | 0(不限) | 1,000,000 | 503 no_server_resources(消息:project channel quota exceeded) | tokens.ts |
调整方式:POST /console/projects/{projectId}(quotas.recordingConcurrent / streamingConcurrent / maxChannels), 或控制台项目设置页。设为 0 表示不限(仅 maxChannels 支持 0)。
产品级硬限制(代码常量,不可调)
| 限制 | 值 | 说明 |
|---|---|---|
| 每个项目的 converter 上限 | 500 | Media Push(CONVERTER_QUOTA) |
| 每个项目的 cloud player 上限 | 500 | Media Pull(PLAYER_QUOTA) |
| 每个项目的 stream template 上限 | 10 | Media Gateway(TEMPLATE_LIMIT) |
| builderToken 有效期 | 5 分钟,单次使用 | 云转码(过期/复用/未知 → 401 invalid_token;重新申请 token 再重试) |
| 录制 resourceId 租约 | 30 秒 TTL | acquire 后必须在这个窗口内 start |
请求级限流
| 项 | 默认值 | 环境变量 |
|---|---|---|
| 每调用方每分钟请求数 | 600 | NIMEET_RATE_LIMIT_PER_MINUTE |
| 突发桶容量 | 60 | NIMEET_RATE_LIMIT_BURST |
| 关闭限流 | NIMEET_RATE_LIMIT=off | 仅测试环境使用 |
超限返回 429 + Retry-After 头(秒)与 details.retryAfterSeconds / details.limitPerMinute / details.burst。 限流键由凭证与来源决定(rateLimitKey),因此同一客户的不同项目共享一个桶——不要用暴力重试绕过,退避即可。
字段级限制
| 字段 | 限制 | 超限返回 |
|---|---|---|
channelName | 1–128,[A-Za-z0-9_-] | 400 invalid_channel_name |
uid | 1–2147483647 的整数 | 400 invalid_parameter |
ttlSeconds | ≥ 60,最终被项目 tokenTtlSeconds 夹紧 | 400 invalid_parameter |
列表 page_size | 1–500,默认 100 | 400 invalid_parameter |
| 写请求 | 必须 Content-Type: application/json | 415 unsupported_media_type |
用量查询
# 当前项目某时间窗的用量与金额
curl -s "$NIMEET_API_BASE/v1/analytics/usage?from=$FROM&to=$TO&granularity=day" \
-H "Authorization: Basic $NIMEET_CUSTOMER_BASIC"
# 实时监控(近 30 分钟,1 分钟桶)
curl -s "$NIMEET_API_BASE/v1/analytics/realtime" \
-H "Authorization: Basic $NIMEET_CUSTOMER_BASIC"指标口径与告警阈值见 水晶球,计费单价与计算方式见 计费模型。
超限时的正确反应
| 场景 | 错误码 | 处理 |
|---|---|---|
| 并发任务满 | recording_quota_exceeded / streaming_quota_exceeded | 排队重试(指数退避)或提高配额;不要立刻重试 |
| 请求过频 | rate_limited | 按 Retry-After 退避 |
| 频道数满 | no_server_resources(503) | 清理旧频道或提高 maxChannels |
| builderToken 过期 | token_invalid | 现场重新申请 |