Class: AIGatewayTelemetryClient
Defined in: src/ai-gateway/telemetry-client.ts:82
Client for AI Gateway runtime telemetry — the data behind the SCM Observability tabs.
Endpoint slugs are bespoke and inconsistent (user-trends is plural, cache-hit-trend
is singular, cache-hits-trend 404s). They are hardcoded, not derived.
Constructors
Constructor
new AIGatewayTelemetryClient(opts): AIGatewayTelemetryClient;
Defined in: src/ai-gateway/telemetry-client.ts:88
Parameters
| Parameter | Type |
|---|---|
opts | AIGatewayTelemetryClientOptions |
Returns
AIGatewayTelemetryClient
Methods
cost()
cost(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:128
Total and per-day spend. Values are in cents.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Cost series plus the period total, in cents.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const cost = await gw.telemetry.cost({ workspaceSlug: 'ws-main-a-349e0e', days: 7 });
console.log(`$${(cost.data.total / 100).toFixed(2)}`); // => "$4110.83"
requests()
requests(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:145
Per-day request counts.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Request-count series plus the period total.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const r = await gw.telemetry.requests({ workspaceSlug: 'ws-main-a-349e0e' });
// r.data.total => 25746
latency()
latency(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:162
Latency in milliseconds. Percentiles are returned per-bucket and for the period.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
p50: ZodNumber;
p90: ZodNumber;
p99: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Latency series with p50/p90/p99; data.total is the period mean, not a sum.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const l = await gw.telemetry.latency({ workspaceSlug: 'ws-main-a-349e0e' });
// l.data.p99 => 8329.14
tokens()
tokens(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:179
Token usage, split into request and response units.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
avg: ZodNumber;
total_request_units: ZodNumber;
total_response_units: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Token series plus request/response unit totals.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const t = await gw.telemetry.tokens({ workspaceSlug: 'ws-main-a-349e0e' });
// t.data.total_request_units => 4919015459
errors()
errors(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:196
Per-day error counts.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Error-count series plus the period total.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const e = await gw.telemetry.errors({ workspaceSlug: 'ws-main-a-349e0e' });
// e.data.total => 125
users()
users(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:213
Per-day distinct end-user counts.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Unique-user series plus the period total.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const u = await gw.telemetry.users({ workspaceSlug: 'ws-main-a-349e0e' });
// u.data.total => 1
cacheSummary()
cacheSummary(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:230
Cache hit count, speedup, and average cached-response latency.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
cacheHits: ZodNumber;
avgCacheLatency: ZodNullable<ZodNumber>;
totalRequests: ZodNumber;
cacheSpeedup: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Cache summary; avgCacheLatency is null when there were no hits.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const c = await gw.telemetry.cacheSummary({ workspaceSlug: 'ws-main-a-349e0e' });
// c.data.summary => { cacheHits: 0, avgCacheLatency: null, totalRequests: 25621, cacheSpeedup: 0 }
cacheHitTrend()
cacheHitTrend(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:248
Cache hit-rate trend and cumulative savings.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
simpleHits: ZodNumber;
semanticHits: ZodNumber;
hitRate: ZodNumber;
cumulativeSimpleHitSavings: ZodNumber;
cumulativeSemanticHitSavings: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
summary: ZodObject<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
totalCacheHits: ZodNumber;
hitRate: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Per-bucket hits and cumulative savings in cents — the last non-zero bucket is the period total.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const t = await gw.telemetry.cacheHitTrend({ workspaceSlug: 'ws-main-a-349e0e' });
const last = t.data.trend.at(-1);
const savedUsd = ((last?.cumulativeSimpleHitSavings ?? 0) + (last?.cumulativeSemanticHitSavings ?? 0)) / 100;
userTrends()
userTrends(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:265
Requests-per-user trend.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
total: ZodNumber;
unique: ZodNumber;
avg: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Daily request counts plus summary.avg (requests per user).
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const t = await gw.telemetry.userTrends({ workspaceSlug: 'ws-main-a-349e0e' });
// t.data.summary => { total: 25748, unique: 1, avg: 25748 }
errorTrends()
errorTrends(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
errorPercent: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
errorPercent: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
errorPercent: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:282
Error-rate trend as a percentage.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
errorPercent: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
errorPercent: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
summary: ZodObject<{
errorPercent: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
errorPercent: ZodNumber;
}, ZodTypeAny, "passthrough">>;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Daily error percentages plus summary.errorPercent for the period.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const t = await gw.telemetry.errorTrends({ workspaceSlug: 'ws-main-a-349e0e' });
// t.data.summary.errorPercent => 0.485
rescuedRetries()
rescuedRetries(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
trends: ZodArray<ZodObject<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">>, "many">;
retryTotal: ZodNumber;
fallbackTotal: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
trends: ZodArray<ZodObject<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
retryTotal: ZodNumber;
fallbackTotal: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
trends: ZodArray<ZodObject<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
retryTotal: ZodNumber;
fallbackTotal: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:299
Gateway auto-retry and fallback resilience. Sparse — only populated on upstream failures.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
trends: ZodArray<ZodObject<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">>, "many">;
retryTotal: ZodNumber;
fallbackTotal: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
trends: ZodArray<ZodObject<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
retryTotal: ZodNumber;
fallbackTotal: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
trend: ZodArray<ZodObject<{
x: ZodString;
y: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
trends: ZodArray<ZodObject<{
x: ZodString;
retry: ZodArray<ZodUnknown, "many">;
fallback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
retry: ZodArray<..., ...>;
fallback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
retryTotal: ZodNumber;
fallbackTotal: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Retry/fallback trends; note trend[].y is an array, not a scalar.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const r = await gw.telemetry.rescuedRetries({ workspaceSlug: 'ws-main-a-349e0e' });
// r.data.retryTotal => 0
feedbackTrend()
feedbackTrend(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:316
Daily count of feedback submissions.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Feedback-count series plus the period total.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const f = await gw.telemetry.feedbackTrend({ workspaceSlug: 'ws-main-a-349e0e' });
// f.data.total => 61
feedbackWeighted()
feedbackWeighted(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:333
Weighted average feedback score, averaged over days.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodNumber;
avg: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Weighted score series; data.total is null when there is no feedback.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const f = await gw.telemetry.feedbackWeighted({ workspaceSlug: 'ws-main-a-349e0e' });
// f.data.total => -2.58
feedbackScoreDistribution()
feedbackScoreDistribution(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodNumber;
y: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodNumber;
y: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodNumber;
y: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:350
Distribution of feedback scores. Feedback is binary: +5 (thumbs up) or -5 (thumbs down).
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodNumber;
y: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodNumber;
y: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodNumber;
y: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodNumber;
y: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNullable<ZodNumber>;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Score histogram as {x: score, y: count} records.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const d = await gw.telemetry.feedbackScoreDistribution({ workspaceSlug: 'ws-main-a-349e0e' });
// d.data.records => [{ x: 5, y: 30 }, { x: -5, y: 33 }]
feedbackModels()
feedbackModels(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ZodNumber;
feedbackCount: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, ZodTypeAny, "passthrough">>, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:369
Feedback broken down by AI model.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ZodNumber;
feedbackCount: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, ZodTypeAny, "passthrough">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, ZodTypeAny, "passthrough">>, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
x: ZodString;
y: ZodObject<{
avgWeightedFeedback: ...;
feedbackCount: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
x: ZodString;
y: ZodObject<..., ..., ..., ..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Records where x is the model and y is an object, not a number.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const m = await gw.telemetry.feedbackModels({ workspaceSlug: 'ws-main-a-349e0e' });
// m.data.records[0] => { x: 'claude-sonnet-5', y: { avgWeightedFeedback: 4.2, feedbackCount: 12 } }
groupBy()
groupBy(dimension, opts): Promise<objectOutputType<{
object: ZodString;
is_quota_exceeded: ZodBoolean;
total: ZodNumber;
data: ZodArray<ZodObject<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, "passthrough", ZodTypeAny, objectOutputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">, objectInputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:390
Aggregate requests by a dimension.
Parameters
| Parameter | Type | Description |
|---|---|---|
dimension | "ai_service" | "model" | "api_key" | "provider" | One of AI_GW_GROUP_DIMENSIONS. Underscore names only. |
opts | AIGatewayGroupOptions | Window plus optional extra columns. |
Returns
Promise<objectOutputType<{
object: ZodString;
is_quota_exceeded: ZodBoolean;
total: ZodNumber;
data: ZodArray<ZodObject<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, "passthrough", ZodTypeAny, objectOutputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">, objectInputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>
One row per distinct dimension value.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const byModel = await gw.telemetry.groupBy('model', {
workspaceSlug: 'ws-main-a-349e0e',
columns: ['cost', 'total_tokens'],
});
// byModel.data[0] => { model: 'claude-sonnet-5', requests: 10506, cost: 29704.16, ... }
byUser()
byUser(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:421
Requests and cost per end user.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayWindowOptions | Workspace slug and time window. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
_user: ZodString;
count: ZodNumber;
cost: ZodNumber;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
One record per user; _user: '' means calls with no end-user id. Costs in cents.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const users = await gw.telemetry.byUser({ workspaceSlug: 'ws-main-a-349e0e' });
// users.data.records[0] => { _user: '', count: 25748, cost: 411060.85 }
byStatusCode()
byStatusCode(opts): Promise<objectOutputType<{
object: ZodString;
is_quota_exceeded: ZodBoolean;
total: ZodNumber;
data: ZodArray<ZodObject<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, "passthrough", ZodTypeAny, objectOutputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">, objectInputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:449
Requests grouped by HTTP status code.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayGroupOptions | Window plus optional extra columns. |
Returns
Promise<objectOutputType<{
object: ZodString;
is_quota_exceeded: ZodBoolean;
total: ZodNumber;
data: ZodArray<ZodObject<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, "passthrough", ZodTypeAny, objectOutputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">, objectInputType<{
requests: ZodNumber;
cost: ZodOptional<ZodNumber>;
avg_latency: ZodOptional<ZodNumber>;
avg_tokens: ZodOptional<ZodNumber>;
total_tokens: ZodOptional<ZodNumber>;
success_rate: ZodOptional<ZodNumber>;
last_seen: ZodOptional<ZodString>;
object: ZodString;
}, ZodTypeAny, "passthrough">>, "many">;
}, ZodTypeAny, "passthrough">>
One row per status. 446 = AIRS security block (cost 0, never reached the LLM).
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
const codes = await gw.telemetry.byStatusCode({
workspaceSlug: 'ws-main-a-349e0e',
columns: ['cost', 'avg_latency'],
});
// codes.data => [{ status_code: 200, requests: 25623, ... }, { status_code: 446, ... }]
logs()
logs(opts): Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
capturedTotal: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
capturedTotal: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
capturedTotal: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/ai-gateway/telemetry-client.ts:487
Raw per-request log rows — the deepest granularity this API offers.
Parameters
| Parameter | Type | Description |
|---|---|---|
opts | AIGatewayLogsOptions | Window plus pageSize / traceId / statusCode filters. |
Returns
Promise<objectOutputType<{
success: ZodBoolean;
data: ZodObject<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">, objectInputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
capturedTotal: ZodNumber;
}, "passthrough", ZodTypeAny, objectOutputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
capturedTotal: ZodNumber;
}, ZodTypeAny, "passthrough">, objectInputType<{
isQuotaExceeded: ZodBoolean;
records: ZodArray<ZodObject<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<ZodString, "many">;
metadataValue: ZodArray<ZodString, "many">;
prompt_slug: ZodString;
feedback: ZodArray<ZodUnknown, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
id: ZodString;
workspace_slug: ZodString;
ai_model: ZodString;
_user: ZodString;
total_units: ZodNumber;
cost: ZodNumber;
trace_id: ZodString;
is_proxy_call: ZodNumber;
created_at: ZodString;
is_success: ZodNumber;
cache_status: ZodString;
retry_success_count: ZodNumber;
mode: ZodString;
last_used_option_index: ZodNumber;
response_status_code: ZodNumber;
request_url: ZodString;
request_method: ZodString;
ai_org: ZodString;
api_key_id: ZodString;
license_id: ZodString;
log_store_file_path_format: ZodString;
metadataKey: ZodArray<..., ...>;
metadataValue: ZodArray<..., ...>;
prompt_slug: ZodString;
feedback: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>, "many">;
total: ZodNumber;
capturedTotal: ZodNumber;
}, ZodTypeAny, "passthrough">>;
}, ZodTypeAny, "passthrough">>
Log records plus the full-period total (which you cannot page to).
Remarks
Upstream pagination is broken: only pageSize works, and an unfiltered call always
returns the same most-recent batch (~50 rows) regardless of offset. To read beyond that,
filter by statusCode, which bypasses the cap and returns every match in the window.
Example
import { AIGatewayClient } from '@cdot65/prisma-airs-sdk';
const gw = new AIGatewayClient();
// Every AIRS security block in the window, not just the most recent page.
const blocked = await gw.telemetry.logs({
workspaceSlug: 'ws-main-a-349e0e',
statusCode: 446,
});
// blocked.data.records[0] => { response_status_code: 446, cost: 0, is_success: 0, ... }