Documentation
¶
Overview ¶
Package observability provides tracing and metrics middleware for Nexus.
Index ¶
- type Counter
- type MetricsExtension
- func (e *MetricsExtension) Name() string
- func (e *MetricsExtension) OnBudgetExceeded(_ context.Context, _ id.TenantID) error
- func (e *MetricsExtension) OnBudgetWarning(_ context.Context, _ id.TenantID, _ float64) error
- func (e *MetricsExtension) OnChunkReceived(_ context.Context, _ id.RequestID, _ provider.EventKind, byteSize int) error
- func (e *MetricsExtension) OnCircuitOpened(_ context.Context, _ string) error
- func (e *MetricsExtension) OnFallbackTriggered(_ context.Context, _, _ string) error
- func (e *MetricsExtension) OnGuardrailBlocked(_ context.Context, _ string, _ id.RequestID) error
- func (e *MetricsExtension) OnGuardrailRedacted(_ context.Context, _, _ string) error
- func (e *MetricsExtension) OnKeyCreated(_ context.Context, _ id.KeyID, _ id.TenantID) error
- func (e *MetricsExtension) OnKeyRevoked(_ context.Context, _ id.KeyID) error
- func (e *MetricsExtension) OnProviderFailed(_ context.Context, _, _ string, _ error) error
- func (e *MetricsExtension) OnRequestCached(_ context.Context, _ id.RequestID, _ string) error
- func (e *MetricsExtension) OnRequestCompleted(_ context.Context, _ id.RequestID, _, _ string, _ time.Duration, _, _ int) error
- func (e *MetricsExtension) OnRequestFailed(_ context.Context, _ id.RequestID, _ string, _ error) error
- func (e *MetricsExtension) OnRequestReceived(_ context.Context, _ id.RequestID, _, _ string) error
- func (e *MetricsExtension) OnStreamCompleted(_ context.Context, _ id.RequestID, _, _ string, _ time.Duration, ...) error
- func (e *MetricsExtension) OnStreamFailed(_ context.Context, _ id.RequestID, _ string, _ error) error
- func (e *MetricsExtension) OnStreamStarted(_ context.Context, _ id.RequestID, _, _ string) error
- func (e *MetricsExtension) OnTenantCreated(_ context.Context, _ id.TenantID) error
- func (e *MetricsExtension) OnTenantDisabled(_ context.Context, _ id.TenantID) error
- type NoopTracer
- type SpanAttribute
- type SpanFinisher
- type Tracer
- type TracingMiddleware
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Counter ¶
type Counter struct {
// contains filtered or unexported fields
}
Counter is a simple atomic counter for metrics. In a full integration, this would be backed by gu.Counter or Prometheus.
type MetricsExtension ¶
type MetricsExtension struct {
RequestsReceived Counter
RequestsCompleted Counter
RequestsFailed Counter
RequestsCached Counter
ProviderFailures Counter
CircuitOpens Counter
Fallbacks Counter
GuardrailBlocks Counter
GuardrailRedacts Counter
TenantsCreated Counter
TenantsDisabled Counter
KeysCreated Counter
KeysRevoked Counter
BudgetWarnings Counter
BudgetExceeded Counter
// Stream lifecycle
StreamsStarted Counter
StreamsCompleted Counter
StreamsFailed Counter
ChunksEmitted Counter
ChunkBytes Counter
}
MetricsExtension tracks operational metrics via counters. Follows the dispatch/observability pattern.
func NewMetricsExtension ¶
func NewMetricsExtension() *MetricsExtension
NewMetricsExtension creates a new metrics extension.
func (*MetricsExtension) Name ¶
func (e *MetricsExtension) Name() string
func (*MetricsExtension) OnBudgetExceeded ¶
func (*MetricsExtension) OnBudgetWarning ¶
func (*MetricsExtension) OnChunkReceived ¶
func (*MetricsExtension) OnCircuitOpened ¶
func (e *MetricsExtension) OnCircuitOpened(_ context.Context, _ string) error
func (*MetricsExtension) OnFallbackTriggered ¶
func (e *MetricsExtension) OnFallbackTriggered(_ context.Context, _, _ string) error
func (*MetricsExtension) OnGuardrailBlocked ¶
func (*MetricsExtension) OnGuardrailRedacted ¶
func (e *MetricsExtension) OnGuardrailRedacted(_ context.Context, _, _ string) error
func (*MetricsExtension) OnKeyCreated ¶
func (*MetricsExtension) OnKeyRevoked ¶
func (*MetricsExtension) OnProviderFailed ¶
func (*MetricsExtension) OnRequestCached ¶
func (*MetricsExtension) OnRequestCompleted ¶
func (*MetricsExtension) OnRequestFailed ¶
func (*MetricsExtension) OnRequestReceived ¶
func (*MetricsExtension) OnStreamCompleted ¶
func (*MetricsExtension) OnStreamFailed ¶
func (*MetricsExtension) OnStreamStarted ¶
func (*MetricsExtension) OnTenantCreated ¶
func (*MetricsExtension) OnTenantDisabled ¶
type NoopTracer ¶
type NoopTracer struct{}
NoopTracer is a tracer that does nothing.
func (NoopTracer) StartSpan ¶
func (NoopTracer) StartSpan(ctx context.Context, _ string, _ ...SpanAttribute) (context.Context, SpanFinisher)
type SpanAttribute ¶
SpanAttribute is a key-value pair for span metadata.
type SpanFinisher ¶
type SpanFinisher interface {
// Finish completes the span. If err is non-nil, the span is marked as errored.
Finish(err error)
// SetAttribute adds an attribute to the span.
SetAttribute(key string, value any)
}
SpanFinisher completes a span.
type Tracer ¶
type Tracer interface {
// StartSpan begins a new span. Returns a context with the span and a finish func.
StartSpan(ctx context.Context, name string, attrs ...SpanAttribute) (context.Context, SpanFinisher)
}
Tracer creates spans for request tracing.
type TracingMiddleware ¶
type TracingMiddleware struct {
// contains filtered or unexported fields
}
TracingMiddleware adds distributed tracing to the pipeline.
func NewTracingMiddleware ¶
func NewTracingMiddleware(tracer Tracer) *TracingMiddleware
NewTracingMiddleware creates a tracing middleware with the given tracer.
func (*TracingMiddleware) Name ¶
func (m *TracingMiddleware) Name() string
func (*TracingMiddleware) Priority ¶
func (m *TracingMiddleware) Priority() int