Skip to main content

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

ParameterType
optsAIGatewayTelemetryClientOptions

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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
dimension"ai_service" | "model" | "api_key" | "provider"One of AI_GW_GROUP_DIMENSIONS. Underscore names only.
optsAIGatewayGroupOptionsWindow 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

ParameterTypeDescription
optsAIGatewayWindowOptionsWorkspace 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

ParameterTypeDescription
optsAIGatewayGroupOptionsWindow 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

ParameterTypeDescription
optsAIGatewayLogsOptionsWindow 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, ... }