OSS-first docs
These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.
Retrieves aggregated metrics for runs within a time period.
Goal
Monitor and analyze agent usage.
Context
Analytics dashboard.
Source Definition
import {
defineCommand,
defineQuery,
} from '@lssm-tech/lib.contracts-spec/operations';
import { defineSchemaModel, ScalarTypeEnum } from '@lssm-tech/lib.schema';
import { GranularityEnum, LogLevelEnum, RunStatusEnum } from './run.enum';
import {
RunInputModel,
RunLogModel,
RunModel,
RunStepModel,
RunSummaryModel,
TimelineDataPointModel,
} from './run.schema';
export const GetRunMetricsQuery = defineQuery({
meta: {
key: 'agent.run.getMetrics',
version: '1.0.0',
stability: 'stable',
owners: ['@agent-console-team'],
tags: ['run', 'metrics'],
description: 'Retrieves aggregated metrics for runs within a time period.',
goal: 'Monitor and analyze agent usage.',
context: 'Analytics dashboard.',
},
io: {
input: defineSchemaModel({
name: 'GetRunMetricsInput',
fields: {
organizationId: {
type: ScalarTypeEnum.String_unsecure(),
isOptional: false,
},
agentId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
startDate: { type: ScalarTypeEnum.DateTime(), isOptional: false },
endDate: { type: ScalarTypeEnum.DateTime(), isOptional: false },
granularity: {
type: GranularityEnum,
isOptional: true,
defaultValue: 'day',
},
},
}),
output: defineSchemaModel({
name: 'GetRunMetricsOutput',
fields: {
totalRuns: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
completedRuns: {
type: ScalarTypeEnum.Int_unsecure(),
isOptional: false,
},
failedRuns: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
totalTokens: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
totalCostUsd: {
type: ScalarTypeEnum.Float_unsecure(),
isOptional: false,
},
averageDurationMs: {
type: ScalarTypeEnum.Float_unsecure(),
isOptional: false,
},
successRate: {
type: ScalarTypeEnum.Float_unsecure(),
isOptional: false,
},
timeline: {
type: TimelineDataPointModel,
isArray: true,
isOptional: false,
},
},
}),
},
policy: { auth: 'user' },
acceptance: {
scenarios: [
{
key: 'get-run-metrics-happy-path',
given: ['Organization has run history'],
when: ['User requests metrics for date range'],
then: ['Aggregated metrics are returned'],
},
],
examples: [
{
key: 'get-daily-metrics',
input: {
organizationId: 'org-123',
startDate: '2025-01-01',
endDate: '2025-01-31',
granularity: 'day',
},
output: {
totalRuns: 100,
completedRuns: 90,
failedRuns: 10,
totalTokens: 50000,
totalCostUsd: 5.0,
averageDurationMs: 2500,
successRate: 0.9,
timeline: [],
},
},
],
},
});