cmind/metering/v1/platform_usage_service.proto
Package: cmind.metering.v1
Messages
GetPlatformTokenUsageSeriesRequest
| Field | Type | Number | Description |
|---|---|---|---|
window | TimeWindow | 1 | |
step | google.protobuf.Duration | 2 | The bucket width the caller is asking for. The server picks the width it actually returns and may coarsen this one, so read each point's window rather than assuming the request was honoured. |
tenantIds | repeated string | 3 | Selects which tenants are counted. Empty means every tenant. Independent of group_by: filtering to three tenants and grouping by NONE sums those three. |
groupBy | TokenUsageGroupBy | 4 | Grouping by API key is rejected here: keys belong to a tenant. |
modelIds | repeated string | 5 | Empty means every model. |
userIds | repeated string | 6 | Empty means every user. |
GetPlatformTokenUsageSeriesResponse
| Field | Type | Number | Description |
|---|---|---|---|
series | repeated TokenUsageSeries | 1 |
GetPlatformCallCountSeriesRequest
| Field | Type | Number | Description |
|---|---|---|---|
window | TimeWindow | 1 | |
step | google.protobuf.Duration | 2 | |
tenantIds | repeated string | 3 | Empty means every tenant. |
kind | CallKind | 4 | One kind per query: counts of different kinds do not sum, so a total over several would be a number that means nothing. |
groupBy | CallGroupBy | 5 | Grouping by API key is rejected here: keys belong to a tenant. |
resourceIds | repeated string | 6 | Empty means every resource. |
userIds | repeated string | 7 | Empty means every user. |
GetPlatformCallCountSeriesResponse
| Field | Type | Number | Description |
|---|---|---|---|
series | repeated CallCountSeries | 1 |
ListPlatformTokenUsageRequest
| Field | Type | Number | Description |
|---|---|---|---|
window | TimeWindow | 1 | |
groupBy | TokenUsageGroupBy | 2 | Grouping by API key is rejected here: keys belong to a tenant. |
limit | uint32 | 3 | Cap on the rows returned, highest total first. 0 = no cap. |
tenantIds | repeated string | 4 | Empty means every tenant. |
modelIds | repeated string | 5 | Empty means every model. |
userIds | repeated string | 6 | Empty means every user. |
ListPlatformTokenUsageResponse
| Field | Type | Number | Description |
|---|---|---|---|
window | TimeWindow | 1 | Echoed because a row carries no time of its own. |
groups | repeated TokenUsageGroup | 2 |
GetPlatformApiTrafficSeriesRequest
| Field | Type | Number | Description |
|---|---|---|---|
window | TimeWindow | 1 | |
step | google.protobuf.Duration | 2 | |
service | string | 3 | Restrict to one service by name, as listed on the response. Empty = all. |
GetPlatformApiTrafficSeriesResponse
| Field | Type | Number | Description |
|---|---|---|---|
series | repeated ApiTrafficSeries | 1 | |
services | repeated string | 2 | Distinct service names seen in the window (unfiltered), for the picker. |
Services
PlatformUsageService
PlatformUsageService reads metered usage for a platform operator: across every tenant by default, or narrowed to some of them. The write side is cmind.cluster.metering.v1.InternalUsageService. Every method is gated on can_manage_tenants, whatever the filter says. That is why the platform and tenant views are separate services rather than one service with a tenant parameter: the same question asked by an operator and by a tenant's own admin needs a different answer to "who may ask", and one service per audience keeps each gate static instead of derived from the shape of the request.
GetPlatformTokenUsageSeries
GetPlatformTokenUsageSeries returns token totals per time bucket, as one series per tenant, per model, or one summed series.
Request: GetPlatformTokenUsageSeriesRequest
Response: GetPlatformTokenUsageSeriesResponse
GetPlatformCallCountSeries
GetPlatformCallCountSeries returns the number of distinct metered calls per time bucket, grouped as on GetPlatformTokenUsageSeries.
Request: GetPlatformCallCountSeriesRequest
Response: GetPlatformCallCountSeriesResponse
ListPlatformTokenUsage
ListPlatformTokenUsage returns token totals for the window, grouped by tenant, by model, or not at all.
Request: ListPlatformTokenUsageRequest
Response: ListPlatformTokenUsageResponse
GetPlatformApiTrafficSeries
GetPlatformApiTrafficSeries returns HTTP traffic per time bucket. It counts every request the platform served, including ones that never reached a model, and has no tenant dimension.
Request: GetPlatformApiTrafficSeriesRequest
Response: GetPlatformApiTrafficSeriesResponse