Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ClassifyProviderHealth ¶
ClassifyProviderHealth maps request/error stats to a status label.
func NormalizeModality ¶
NormalizeModality defaults empty modality to chat.
Types ¶
type Event ¶
type Event struct {
OrganizationID string `json:"organization_id"`
ProjectID string `json:"project_id"`
TeamID string `json:"team_id,omitempty"`
EnvironmentID string `json:"environment_id,omitempty"`
APIKeyID string `json:"api_key_id"`
SigningKeyID string `json:"signing_key_id,omitempty"`
SignerKeyID string `json:"signer_key_id,omitempty"`
AuthMethod string `json:"auth_method,omitempty"`
CredentialID string `json:"credential_id,omitempty"`
UsedBYOK bool `json:"used_byok"`
Model string `json:"model"`
ProviderType string `json:"provider_type"`
TargetModel string `json:"target_model"`
Status string `json:"status"`
LatencyMs int64 `json:"latency_ms"`
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
Modality string `json:"modality"`
Metrics map[string]any `json:"metrics,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
}
Event is the canonical usage record emitted by the gateway and drained by workers. Control-plane list/summary responses may enrich this with IDs, cost, and join fields.
type Filter ¶
type Filter struct {
Limit int
ProjectID string
APIKeyID string
CredentialID string
Model string
Modality string
ExcludeBYOK bool // when true, only rows where used_byok=false
BYOKOnly bool // when true, only rows where used_byok=true
From *time.Time
To *time.Time
GroupBy string // day | model | key | modality | byok (summary only)
}
Filter constrains usage list and summary queries.
type Modality ¶
type Modality string
Modality identifies the request surface that produced usage.
const ( ModalityChat Modality = "chat" ModalityMessages Modality = "messages" ModalityGenerateContent Modality = "generate_content" ModalityTTS Modality = "tts" ModalitySTT Modality = "stt" ModalityEmbedding Modality = "embedding" ModalityImage Modality = "image" ModalityMCP Modality = "mcp" ModalityA2A Modality = "a2a" )
type ModelPrice ¶
type ModelPrice struct {
ProviderType string
Model string
InputPerMTok float64
OutputPerMTok float64
}
ModelPrice is a pricing row used for cost estimation.
type ProviderHealth ¶
type ProviderHealth struct {
ProviderID string `json:"provider_id"`
Name string `json:"name"`
Type string `json:"type"`
Requests int64 `json:"requests"`
Errors int64 `json:"errors"`
ErrorRate float64 `json:"error_rate"`
AvgLatencyMs float64 `json:"avg_latency_ms"`
Status string `json:"status"` // healthy | degraded | down | unknown
}
ProviderHealth aggregates request outcomes for a provider.
type Record ¶
type Record struct {
ID int64 `json:"id"`
OrganizationID string `json:"organization_id"`
ProjectID string `json:"project_id"`
ProjectName string `json:"project_name,omitempty"`
APIKeyID string `json:"api_key_id"`
SigningKeyID string `json:"signing_key_id,omitempty"`
SignerKeyID string `json:"signer_key_id,omitempty"`
AuthMethod string `json:"auth_method,omitempty"`
CredentialID string `json:"credential_id,omitempty"`
CredentialName string `json:"credential_name,omitempty"`
UsedBYOK bool `json:"used_byok"`
Model string `json:"model"`
ProviderType string `json:"provider_type,omitempty"`
Status string `json:"status"`
LatencyMs int64 `json:"latency_ms"`
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
Modality string `json:"modality"`
Metrics map[string]any `json:"metrics"`
Tags map[string]string `json:"tags,omitempty"`
CostUSD *float64 `json:"cost_usd,omitempty"`
CreatedAt time.Time `json:"created_at"`
KeyName string `json:"key_name,omitempty"`
KeyKind string `json:"key_kind,omitempty"`
OwnerUserID string `json:"owner_user_id,omitempty"`
OwnerEmail string `json:"owner_email,omitempty"`
OwnerName string `json:"owner_name,omitempty"`
}
Record is a persisted usage row enriched for control-plane list APIs.
type SummaryBucket ¶
type SummaryBucket struct {
Bucket string `json:"bucket"`
Label string `json:"label"`
Requests int64 `json:"requests"`
CostUSD float64 `json:"cost_usd"`
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
MetricsTotals map[string]float64 `json:"metrics_totals,omitempty"`
KeyKind string `json:"key_kind,omitempty"`
OwnerEmail string `json:"owner_email,omitempty"`
OwnerName string `json:"owner_name,omitempty"`
}
SummaryBucket is one row of a usage summary aggregation.
Click to show internal directories.
Click to hide internal directories.