Documentation
¶
Index ¶
- Constants
- func BuildStatusError() error
- func EnsureDaemon(repoRoot string) error
- func QueryAccessEvents(store *TelemetryStore, query ExportQuery) ([]model.AccessEvent, error)
- func RenderCSV(events []model.AccessEvent) string
- func RenderSummaryTOON(summary ExportSummary) (string, error)
- func RenderSummaryTable(summary ExportSummary) string
- func RenderTOON(events []model.AccessEvent) (string, error)
- func ResolveDaemonLogPath(fallbackRepoRoot string) string
- func SpawnBackground(repoRoot string, maxWorkers int, idleTimeout time.Duration) (model.DaemonState, bool, error)
- func SpawnBackgroundWithOptions(repoRoot string, maxWorkers int, idleTimeout time.Duration, ...) (model.DaemonState, bool, error)
- func ValidateWatchMode(mode string) error
- type AdminServer
- type BackendHistogram
- type Client
- type ClientMetrics
- type ErrorFrequency
- type ExportQuery
- type ExportSummary
- type FileWatcher
- type LogTailLine
- type Manager
- func (m *Manager) Call(ctx context.Context, workspace model.WorkspaceRegistration, ...) (model.WorkerResponse, error)
- func (m *Manager) EnsureFileWatcher(registration model.WorkspaceRegistration)
- func (m *Manager) SetTelemetryStore(ts *TelemetryStore)
- func (m *Manager) Shutdown()
- func (m *Manager) StartFileWatchers(registrations []model.WorkspaceRegistration)
- func (m *Manager) Status() []model.WorkerStatus
- func (m *Manager) StopWatchers()
- func (m *Manager) Warm(workspace model.WorkspaceRegistration) []string
- func (m *Manager) WatcherStats() model.DaemonWatcherStats
- type MetricsSummary
- type OperationMetrics
- type OperationPercentiles
- type PerfSmokeOptions
- type PerfSmokeResult
- type Server
- type StartOptions
- type TelemetryStore
- func (s *TelemetryStore) Checkpoint() error
- func (s *TelemetryStore) Close() error
- func (s *TelemetryStore) ComputeMetrics(since time.Time) ([]metricsRow, error)
- func (s *TelemetryStore) NextSeq(sessionID string) int
- func (s *TelemetryStore) PurgeAndVacuum(retentionDays int, maxBytes int64) (int, bool, error)
- func (s *TelemetryStore) PurgeOldEvents(olderThan time.Time) (int64, error)
- func (s *TelemetryStore) PurgeOldRuns(olderThan time.Time) (int64, error)
- func (s *TelemetryStore) RecentAccesses(limit int) ([]model.AccessEvent, error)
- func (s *TelemetryStore) RecordAccess(runID int64, event model.AccessEvent) error
- func (s *TelemetryStore) RecordAccessDirect(event model.AccessEvent) error
- func (s *TelemetryStore) ReplaceRuntimeSnapshots(runID int64, statuses []model.WorkerStatus) error
- func (s *TelemetryStore) StartRun(state model.DaemonState) (int64, error)
- func (s *TelemetryStore) StopRun(runID int64, stoppedAt time.Time) error
- type UsageRecommendation
- type WorkspaceMetrics
- type WorkspaceStat
Constants ¶
const ( WatchModeOff = "off" WatchModeLazy = "lazy" WatchModeEager = "eager" )
Variables ¶
This section is empty.
Functions ¶
func BuildStatusError ¶
func BuildStatusError() error
func EnsureDaemon ¶
EnsureDaemon attempts to start the daemon if it's not already running. It performs a quick health check (1s timeout) and spawns a new daemon if needed. Returns nil if the daemon is ready, or an error if startup failed or timed out. Errors are not fatal—the caller should fall back to direct mode.
func QueryAccessEvents ¶
func QueryAccessEvents(store *TelemetryStore, query ExportQuery) ([]model.AccessEvent, error)
func RenderCSV ¶
func RenderCSV(events []model.AccessEvent) string
func RenderSummaryTOON ¶ added in v0.3.0
func RenderSummaryTOON(summary ExportSummary) (string, error)
func RenderSummaryTable ¶
func RenderSummaryTable(summary ExportSummary) string
func RenderTOON ¶ added in v0.3.0
func RenderTOON(events []model.AccessEvent) (string, error)
func ResolveDaemonLogPath ¶ added in v0.3.0
func SpawnBackground ¶
func SpawnBackgroundWithOptions ¶ added in v0.3.0
func SpawnBackgroundWithOptions(repoRoot string, maxWorkers int, idleTimeout time.Duration, options StartOptions) (model.DaemonState, bool, error)
func ValidateWatchMode ¶ added in v0.3.0
Types ¶
type AdminServer ¶
type AdminServer struct {
// contains filtered or unexported fields
}
func NewAdminServer ¶
func NewAdminServer(manager *Manager, store *TelemetryStore, app *service.App, stateFn func() model.DaemonState, adminToken string) (*AdminServer, error)
func (*AdminServer) Shutdown ¶
func (a *AdminServer) Shutdown() error
func (*AdminServer) URL ¶
func (a *AdminServer) URL() string
type BackendHistogram ¶
func ComputeBackendHistogram ¶
func ComputeBackendHistogram(events []model.AccessEvent) []BackendHistogram
ComputeBackendHistogram groups events by backend and counts occurrences
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func (*Client) ExecuteWithDialTimeout ¶ added in v0.5.13
func (c *Client) ExecuteWithDialTimeout(ctx context.Context, request model.CommandRequest, dialTimeout time.Duration) (model.Envelope, error)
ExecuteWithDialTimeout executes a request with an optional timeout limited to establishing the daemon connection. Once the connection is established, the original ctx governs the request's write, read, response processing, and cancellation lifecycle.
type ClientMetrics ¶
type ErrorFrequency ¶
type ExportQuery ¶
type ExportSummary ¶
type ExportSummary struct {
TotalOps int `json:"total_ops"`
WindowLabel string `json:"window_label,omitempty"`
ByWorkspace map[string]WorkspaceStat `json:"by_workspace"`
ByOperation map[string]WorkspaceStat `json:"by_operation,omitempty"`
ByRoute map[string]WorkspaceStat `json:"by_route,omitempty"`
ByClient map[string]WorkspaceStat `json:"by_client,omitempty"`
ByHintCode map[string]WorkspaceStat `json:"by_hint_code,omitempty"`
ByFailureStage map[string]WorkspaceStat `json:"by_failure_stage,omitempty"`
TopErrors []ErrorFrequency `json:"top_errors"`
ByBackend []BackendHistogram `json:"by_backend,omitempty"`
ByOperationPercentiles []OperationPercentiles `json:"by_operation_percentiles,omitempty"`
Recommendations []UsageRecommendation `json:"recommendations,omitempty"`
}
func ComputeExportSummary ¶
func ComputeExportSummary(events []model.AccessEvent) ExportSummary
func QueryAccessSummary ¶ added in v0.3.0
func QueryAccessSummary(store *TelemetryStore, query ExportQuery) (ExportSummary, error)
type FileWatcher ¶
type FileWatcher struct {
// contains filtered or unexported fields
}
func NewFileWatcher ¶
func NewFileWatcher(registration model.WorkspaceRegistration, debounceDur time.Duration) (*FileWatcher, error)
NewFileWatcher creates a new file watcher for a workspace.
func (*FileWatcher) PendingEvents ¶ added in v0.3.0
func (fw *FileWatcher) PendingEvents() int
func (*FileWatcher) Start ¶
func (fw *FileWatcher) Start(ctx context.Context) error
Start begins watching the workspace for file changes.
func (*FileWatcher) Stop ¶
func (fw *FileWatcher) Stop()
Stop closes the watcher and stops the watch loop.
func (*FileWatcher) WatchedDirCount ¶ added in v0.3.0
func (fw *FileWatcher) WatchedDirCount() int
type LogTailLine ¶ added in v0.3.0
func FilterBenignDaemonLogNoise ¶ added in v0.3.0
func FilterBenignDaemonLogNoise(lines []LogTailLine) []LogTailLine
func ReadLogTailFile ¶ added in v0.3.0
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManagerWithOptions ¶ added in v0.3.0
func (*Manager) Call ¶
func (m *Manager) Call(ctx context.Context, workspace model.WorkspaceRegistration, request model.WorkerRequest) (model.WorkerResponse, error)
func (*Manager) EnsureFileWatcher ¶ added in v0.3.0
func (m *Manager) EnsureFileWatcher(registration model.WorkspaceRegistration)
func (*Manager) SetTelemetryStore ¶ added in v0.5.11
func (m *Manager) SetTelemetryStore(ts *TelemetryStore)
func (*Manager) StartFileWatchers ¶
func (m *Manager) StartFileWatchers(registrations []model.WorkspaceRegistration)
StartFileWatchers initializes and starts file watchers for registered workspaces.
func (*Manager) Status ¶
func (m *Manager) Status() []model.WorkerStatus
func (*Manager) StopWatchers ¶
func (m *Manager) StopWatchers()
StopWatchers stops all running file watchers.
func (*Manager) WatcherStats ¶ added in v0.3.0
func (m *Manager) WatcherStats() model.DaemonWatcherStats
type MetricsSummary ¶
type MetricsSummary struct {
Window string `json:"window,omitempty"`
WindowLabel string `json:"window_label,omitempty"`
WindowDays int `json:"window_days"`
Total int `json:"total"`
ErrorRate float64 `json:"error_rate"`
TruncRate float64 `json:"trunc_rate"`
Operations []OperationMetrics `json:"operations"`
Workspaces []WorkspaceMetrics `json:"workspaces"`
Clients []ClientMetrics `json:"clients"`
GeneratedAt time.Time `json:"generated_at"`
}
type OperationMetrics ¶
type OperationPercentiles ¶
type OperationPercentiles struct {
Operation string `json:"operation"`
Count int `json:"count"`
P50Ms int64 `json:"p50_ms"`
P95Ms int64 `json:"p95_ms"`
P99Ms int64 `json:"p99_ms"`
}
func ComputeOperationPercentiles ¶
func ComputeOperationPercentiles(events []model.AccessEvent) []OperationPercentiles
ComputeOperationPercentiles calculates p50/p95/p99 latency per operation
type PerfSmokeOptions ¶ added in v0.3.0
type PerfSmokeResult ¶ added in v0.3.0
type PerfSmokeResult struct {
Callers int `json:"callers"`
Failures int `json:"failures"`
DaemonState model.DaemonState `json:"state"`
DaemonProcess model.DaemonProcessStats `json:"daemon_process"`
Watchers model.DaemonWatcherStats `json:"watchers"`
Passed bool `json:"passed"`
Warnings []string `json:"warnings,omitempty"`
}
func RunPerfSmoke ¶ added in v0.3.0
func RunPerfSmoke(ctx context.Context, repoRoot string, options PerfSmokeOptions) (PerfSmokeResult, error)
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServerWithOptions ¶ added in v0.3.0
type StartOptions ¶ added in v0.3.0
func DefaultStartOptions ¶ added in v0.3.0
func DefaultStartOptions() StartOptions
func NormalizeStartOptions ¶ added in v0.3.0
func NormalizeStartOptions(options StartOptions) StartOptions
type TelemetryStore ¶
type TelemetryStore struct {
// contains filtered or unexported fields
}
func OpenTelemetryStore ¶
func OpenTelemetryStore() (*TelemetryStore, error)
func (*TelemetryStore) Checkpoint ¶ added in v0.5.11
func (s *TelemetryStore) Checkpoint() error
func (*TelemetryStore) Close ¶
func (s *TelemetryStore) Close() error
func (*TelemetryStore) ComputeMetrics ¶
func (s *TelemetryStore) ComputeMetrics(since time.Time) ([]metricsRow, error)
func (*TelemetryStore) NextSeq ¶ added in v0.3.0
func (s *TelemetryStore) NextSeq(sessionID string) int
NextSeq returns the next sequence number for the given session_id. Returns 0 if session_id is empty, 1 for the first event in a session.
func (*TelemetryStore) PurgeAndVacuum ¶ added in v0.5.0
PurgeAndVacuum enforces telemetry retention and reclaims space (PERF-05).
If the database exceeds maxBytes, aggressively purges to 7 days. Otherwise, respects retentionDays. Always runs VACUUM to reclaim space.
Returns (purged_count, vacuum_success, error).
func (*TelemetryStore) PurgeOldEvents ¶
func (s *TelemetryStore) PurgeOldEvents(olderThan time.Time) (int64, error)
func (*TelemetryStore) PurgeOldRuns ¶
func (s *TelemetryStore) PurgeOldRuns(olderThan time.Time) (int64, error)
func (*TelemetryStore) RecentAccesses ¶
func (s *TelemetryStore) RecentAccesses(limit int) ([]model.AccessEvent, error)
func (*TelemetryStore) RecordAccess ¶
func (s *TelemetryStore) RecordAccess(runID int64, event model.AccessEvent) error
func (*TelemetryStore) RecordAccessDirect ¶
func (s *TelemetryStore) RecordAccessDirect(event model.AccessEvent) error
func (*TelemetryStore) ReplaceRuntimeSnapshots ¶
func (s *TelemetryStore) ReplaceRuntimeSnapshots(runID int64, statuses []model.WorkerStatus) error
func (*TelemetryStore) StartRun ¶
func (s *TelemetryStore) StartRun(state model.DaemonState) (int64, error)
type UsageRecommendation ¶ added in v0.3.0
type UsageRecommendation struct {
ID string `json:"id"`
Severity string `json:"severity"`
Reason string `json:"reason"`
Command string `json:"command,omitempty"`
Evidence []string `json:"evidence,omitempty"`
}
func ComputeUsageRecommendations ¶ added in v0.3.0
func ComputeUsageRecommendations(summary ExportSummary) []UsageRecommendation